Публикуван етап на еталонна реализация на протокола Yggdrasil 0.4, който позволява изграждането на отделна децентрализирана частна IPv6 мрежа върху обикновена глобална мрежа, като за защита на конфиденциалността се прилага криптиране от край до край. За работа през мрежата Yggdrasil могат да се използват всякакви съществуващи приложения, които поддържат IPv6. Реализацията е написана на езика Go и се разпространява под лицензията LGPLv3. Поддържат се платформите Linux, Windows, macOS, FreeBSD, OpenBSD и Ubiquiti EdgeRouter.
Yggdrasil развива нова концепция за маршрутизация с цел създаване на глобална децентрализирана мрежа, в която възлите могат да се свързват както директно помежду си в режим на mesh мрежа (например, чрез Wi-Fi или Bluetooth), така и да взаимодействат върху съществуващи IPv6 или IPv4 мрежи (мрежа върху мрежа). Отличителната черта на Yggdrasil е самоорганизацията на работата, без необходимост от явна настройка на маршрутизацията — информацията за маршрутите се изчислява, като се взема предвид разположението на възела в мрежата спрямо другите възли. Устройствата се адресират чрез обикновен IPv6 адрес, който не се променя при преместване на възела (в Yggdrasil е заето неизползвано диапазон от адреси 0200::/7).
Цялата мрежа Yggdrasil се разглежда не като обединение на разрознени подсетей, а като единно структурирано остовно дърво, което има един "корен", а всеки възел има един родител, както и един или няколко потомци. Тази дървовидна структура позволява построяването на маршрут към целевия възел, относно изходния възел, използвайки механизма "locator", който определя оптималния маршрут към възела от корена.
Информацията за дървото се разпространява между възлите и не се съхранява централизирано. За обмен на данни за маршрутизация се използва разпределена хеш таблица (DHT), чрез която възелът може да извлече цялата информация за маршрута към друг възел. Самата мрежа осигурява само криптиране от край до край (транзитните възли не могат да определят съдържанието), но не анонимност (при свързване през интернет, пировите възли, с които се осъществява пряко взаимодействие, могат да определят реалния IP адрес, поради което за анонимност се предлага свързването на възлите през Tor или I2P).
Отбелязва се, че въпреки че проектът е на етапа на алфа-разработка, той вече е достатъчно стабилен за ежедневна употреба, но не гарантира обратна съвместимост между версиите. За Yggdrasil 0.4 общността поддържа набор от услуги, включително платформа за хостинг на Linux контейнери за вашите уебсайтове, търсачка YaCy, комуникационен сървър Matrix, IRC-сервер, DNS, VoIP система, BitTorrent тракер, карта на точки за свързване, шлюз за IPFS и прокси за достъп до мрежи Tor, I2P и clearnet.
В новата версия:
- Реализирана е нова схема за маршрутизация, която не е съвместима с предишните версии на Yggdrasil.
- При установяване на TLS връзки с възли се използва обвързване на публични ключове (key pinning). Ако свързването няма обвързване, полученото ключа ще бъде закачено за връзката. Ако има обвързване, но ключът не съответства, връзката ще бъде отхвърлена. TLS с обвързване на ключове е определен като препоръчителен метод за свързване с пирам.
- Цялостно преработен и пренаписан е кодът за маршрутизиране и управление на сесиите, което позволи увеличаване на пропускната способност и надеждността на работата, особено за възли, които често сменят пирите. В криптографските сесии е реализирана периодична ротация на ключовете. Добавена е поддръжка на маршрутизиране по източник (Source routing), която може да се използва за пренасочване на потребителския IPv6 трафик. Архитектурата на разпределената хеш-таблица (DHT) е преработена и е добавена поддръжка за маршрутизиране основано на DHT. Реализацията на алгоритмите за маршрутизиране е изнесена в отделна библиотека.
- IP адреси IPv6 сега се формират от публични ключове ed25519, а не от техния хеш X25519, което ще доведе до смяна на всички вътрешни IP след преминаването на версия Yggdrasil 0.4.
- Предоставени са допълнителни настройки за търсене на Multicast пирове.
Източник: opennet.ru
