Публикувана е версията на еталонната реализация на протокола 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
