AprÚs plus de deux ans de développement, l'implémentation de référence Yggdrasil 0.5 est disponible. Elle permet le déploiement d'un réseau IPv6 privé, décentralisé et distinct, superposé au réseau mondial classique, et utilise le chiffrement de bout en bout pour garantir la confidentialité. Toutes les applications compatibles IPv6 existantes peuvent s'exécuter sur le réseau Yggdrasil. Cette implémentation est écrite en Go et distribuée sous licence LGPLv3. Plateformes prises en charge Linux, OpenWRT, Windows, macOS, FreeBSD, OpenBSD, VyOS et Ubiquiti EdgeRouter.
Yggdrasil dĂ©veloppe un nouveau concept de routage pour crĂ©er un rĂ©seau dĂ©centralisĂ© global, dans lequel les nĆuds peuvent se connecter directement les uns aux autres en mode rĂ©seau maillĂ© (par exemple, via Wi-Fi ou Bluetooth), ou interagir sur les rĂ©seaux IPv6 ou IPv4 existants (rĂ©seau sur haut du rĂ©seau) . Une caractĂ©ristique distinctive d'Yggdrasil est son auto-organisation du travail, qui ne nĂ©cessite pas de configuration explicite du routage - les informations sur les itinĂ©raires sont calculĂ©es en fonction de l'emplacement d'un nĆud dans le rĂ©seau par rapport aux autres nĆuds. Les appareils sont adressĂ©s via une adresse IPv6 standard, qui ne change pas si un nĆud se dĂ©place (Yggdrasil utilise la plage d'adresses inutilisĂ©e 0200::/7).
L'ensemble du rĂ©seau Yggdrasil n'est pas considĂ©rĂ© comme un ensemble de sous-rĂ©seaux disparates, mais comme un seul arbre couvrant structurĂ© avec une « racine » et chaque nĆud ayant un parent et un ou plusieurs enfants. Une telle structure arborescente vous permet de construire un itinĂ©raire vers le nĆud de destination, par rapport au nĆud source, Ă l'aide du mĂ©canisme « localisateur », qui dĂ©termine le chemin optimal vers le nĆud Ă partir de la racine. Les informations sur l'arborescence sont rĂ©parties entre les nĆuds et ne sont pas stockĂ©es de maniĂšre centralisĂ©e.
Pour se protĂ©ger contre l'analyse du trafic sur le rĂ©seau, un cryptage de bout en bout est utilisĂ© (les nĆuds de transit ne peuvent pas dĂ©terminer le contenu), mais l'anonymat n'est pas garanti - lors de la connexion via Internet, les pairs avec lesquels une interaction directe est effectuĂ©e peuvent dĂ©terminer le rĂ©el Adresse IP, donc pour l'anonymat, il est recommandĂ© de connecter les nĆuds via Tor ou I2P.
Bien que le projet soit encore en phase de développement alpha, il est déjà suffisamment stable pour une utilisation quotidienne, mais la compatibilité ascendante entre les versions n'est pas garantie. La communauté assure la maintenance d'un ensemble de services pour Yggdrasil, notamment une plateforme d'hébergement. Linux-conteneurs pour hébergement leurs sites web, le moteur de recherche YaCy, le serveur de communications Matrix, un serveur IRC, un DNS, un systÚme VoIP, un traqueur BitTorrent, une carte des points de connexion, une passerelle IPFS et des proxys pour accéder aux réseaux Tor, I2P et clearnet.
Dans la nouvelle version:
- Ajout de la possibilité d'authentifier les connexions aux pairs à l'aide d'un mot de passe. Le mot de passe est spécifié via le paramÚtre « password= », par exemple « tls://abcd:12345?password=123456abcdef ».
- Ajout de la possibilité d'utiliser le protocole QUIC basé sur UDP pour interagir avec des pairs. Pour utiliser QUIC, vous devez spécifier le schéma d'URI quic:// dans les directives Listen et Peers, mais la prise en charge de QUIC n'est pas encore aussi bien testée que TCP et TLS.
- Ajout de l'option PrivateKeyPath, qui permet de stocker la clé privée au format PEM, séparément du fichier de configuration principal. Pour exporter la clé vers un fichier séparé, vous pouvez utiliser l'option « -exportkey ».
- Un nouveau schĂ©ma de routage a Ă©tĂ© implĂ©mentĂ©, qui n'est pas rĂ©trocompatible avec les versions prĂ©cĂ©dentes (les nĆuds avec Yggdrasil 0.5 ne peuvent pas communiquer avec les hĂŽtes basĂ©s sur Yggdrasil 0.4), mais rĂ©sout la plupart des problĂšmes de stabilitĂ© et d'Ă©volutivitĂ© prĂ©sents dans la branche 0.4, et rĂ©duit Ă©galement considĂ©rablement la consommation de mĂ©moire et rĂ©duit le trafic en l'absence d'activitĂ© rĂ©seau.
La nouvelle implĂ©mentation utilise une structure probabiliste de filtre Bloom pour suivre les liens et les nĆuds. La table de hachage distribuĂ©e (DHT) n'est plus utilisĂ©e pour Ă©changer des informations de routage et lier des clĂ©s publiques dans un rĂ©seau arborescent.
Pour maintenir la cohĂ©rence locale et rĂ©duire la dĂ©pendance aux routes vers les nĆuds racine, les nĆuds communiquent dĂ©sormais sĂ©parĂ©ment les informations sur chaque lien, qui sont suivies dans les structures CRDT. Au lieu du routage source, un routage glouton est utilisĂ© (les requĂȘtes sont envoyĂ©es au voisin le plus proche).
Les formats utilisés pour la négociation de connexion et le multicast ont été repensés pour une meilleure extensibilité. Le code de traitement de la connexion a été retravaillé pour suivre de maniÚre plus fiable le statut des pairs. Fournit un suivi séparé des intervalles entre les reconnexions pour chaque homologue configuré.
Pour détecter les pannes, au lieu d'envoyer périodiquement des demandes keepalive distinctes, des messages confirmant la réception du trafic sont utilisés, ce qui vous permet de vous débarrasser du trafic pendant l'inactivité du réseau (ce qui, par exemple, réduit la consommation d'énergie des appareils mobiles en raison de l'exclusion du trafic en mode veille).
Source: opennet.ru
