Efter mer Àn tvÄ Ärs utveckling har en referensimplementation av protokollet Yggdrasil 0.5 publicerats, vilket möjliggör att lansera ett separat decentraliserat privat IPv6-nÀtverk ovanpÄ det vanliga globala nÀtverket för att skydda integriteten, dÀr slut-till-slut-kryptering anvÀnds. I Yggdrasil-nÀtverket kan alla befintliga applikationer som stöder IPv6 anvÀndas. Implementationen Àr skriven i Go och distribueras under LGPLv3-licensen. Plattformar som stöds inkluderar Linux, OpenWRT, Windows, macOS, FreeBSD, OpenBSD, VyOS och Ubiquiti EdgeRouter.
Yggdrasil utvecklar ett nytt routingkoncept för att skapa ett globalt decentraliserat nĂ€tverk dĂ€r noder kan ansluta direkt till varandra i ett mesh-nĂ€t (till exempel via Wi-Fi eller Bluetooth) samt interagera ovanpĂ„ befintliga IPv6- eller IPv4-nĂ€tverk (nĂ€tverk ovanpĂ„ nĂ€tverket). En framtrĂ€dande egenskap hos Yggdrasil Ă€r dess sjĂ€lvorganiserande funktion som inte krĂ€ver manuell routingkonfiguration â information om rutter berĂ€knas baserat pĂ„ en nods position i nĂ€tverket i förhĂ„llande till andra noder. Enheter adresseras med en vanlig IPv6-adress som inte förĂ€ndras nĂ€r noden flyttas (Yggdrasil anvĂ€nder ett oanvĂ€nt adressomrĂ„de 0200::/7).
Hela Yggdrasil-nÀtverket betraktas inte som en samling av avskilda delnÀt, utan som ett enhetligt strukturerat spÀnnande trÀd som har en "rot", dÀr varje nod har en förÀlder och en eller flera efterkommande. Denna trÀdstruktur gör det möjligt att bygga en rutt till destinationens nod frÄn kÀllnod, med hjÀlp av en "locator"-mekanism som definierar den optimala vÀgen till noden frÄn roten. Information om trÀdet distribueras mellan noderna och lagras inte centralt.
För att skydda mot trafikanalys tillĂ€mpas slut-till-slut-kryptering i nĂ€tverket (genomgĂ„ngsnoder kan inte faststĂ€lla innehĂ„llet), men anonymitet garanteras inte â nĂ€r man ansluter via internet kan peer-noder som har direkt interaktion identifiera den verkliga IP-adressen, sĂ„ för anonymitet rekommenderas det att ansluta noder via Tor eller I2P.
Trots att projektet Àr i alpha-utvecklingsstadiet Àr det redan tillrÀckligt stabilt för daglig anvÀndning, men det garanterar inte bakÄtkompatibilitet mellan versionerna. För Yggdrasil stöds en uppsÀttning tjÀnster av communityn, inklusive en plattform för att hysa Linux-containrar för hosting sina webbplatser, sökmotorn YaCy, kommunikationsservern Matrix, IRC-server, DNS, VoIP-system, BitTorrent-tracker, hotspot-karta, gateway till IPFS och proxy för att komma Ät Tor, I2P och clearnet-nÀtverken.
I den nya versionen:
- Möjligheten att autentisera anslutningen till noder med hjÀlp av lösenord har lagts till. Lösenordet anges med parametern "password=", till exempel "tls://a.b.c.d:12345?password=123456abcdef".
- Möjligheten att anvÀnda QUIC-protokollet, som baseras pÄ UDP, för interaktion med noder har lagts till. För att anvÀnda QUIC bör URI-schemat quic:// anges i direktiven Listen och Peers, men stöd för QUIC har Ànnu inte testats lika bra som TCP och TLS.
- Alternativet PrivateKeyPath har lagts till, vilket gör att den privata nyckeln kan lagras i PEM-format, separat frÄn huvudkonfigurationsfilen. För att exportera nyckeln till en separat fil kan alternativet "-exportkey" anvÀndas.
- En ny rutnÀtsstruktur har implementerats, som inte Àr bakÄtkompatibel med tidigare versioner (noder med Yggdrasil 0.5 kan inte interagera med vÀrdar baserade pÄ Yggdrasil 0.4), men den löser det mesta av stabilitets- och skalbarhetsproblemen som fanns i version 0.4 och minskar dessutom minnesanvÀndning och minskar trafik vid avsaknad av nÀtverksaktivitet.
I den nya implementationen anvÀnds en probabilistisk Bloom-filterstruktur för att spÄra relationer och noder. Distribuerad hash-tabell (DHT) anvÀnds inte lÀngre för att utbyta ruttinformation och koppla öppna nycklar i det trÀdliknande nÀtverket.
För att upprÀtthÄlla lokal konsistens och minska beroendet av rutter till rot-noder skickar nu noder separata uppgifter om varje lÀnk, som spÄras i CRDT-strukturer. IstÀllet för routning frÄn kÀllan anvÀnds en grÄdig algoritmbaserad routning (förfrÄgningar riktas till nÀrmaste granne).
De format som anvÀnds vid överenskommelse av anslutningar och multicast-utskick har omarbetats för bÀttre skalbarhet. Koden för relationshantering har reviderats för mer tillförlitlig övervakning av peers. Separat övervakning av intervall mellan Äterkommande anslutningar har sÀkerstÀllts för varje konfigurerad peer.
För att upptÀcka fel anvÀnds inledande bekrÀftelsemeddelanden för trafik istÀllet för periodisk sÀndning av isolerade keepalive-förfrÄgningar. Detta eliminerar trafik vid nÀtverksinaktivitet (vilket till exempel minskar energiförbrukningen pÄ mobila enheter genom att utesluta trafik i vilolÀge).
KĂ€lla: opennet.ru
