Издание Yggdrasil 0.5, реализация на частна мрежа, работеща върху интернет.

След повече от две години разработка беше публикувано издание на референтна реализация на протокола Yggdrasil 0.5, което позволява разгръщането на отделна децентрализирана частна IPv6 мрежа над обикновената глобална мрежа, за защита на конфиденциалността, в която се прилага крайно-крайно криптиране. В мрежата Yggdrasil могат да се използват всякакви съществуващи приложения, поддържащи IPv6. Реализацията е написана на Go и се разпространява под лиценз LGPLv3. Подкрепят се платформите Linux, OpenWRT, Windows, macOS, FreeBSD, OpenBSD, VyOS и Ubiquiti EdgeRouter.

Yggdrasil развива нова концепция за маршрутизиране за създаване на глобална децентрализирана мрежа, в която възлите могат да се свързват както директно помежду си в режим на mesh мрежа (например, чрез Wi-Fi или Bluetooth), така и да взаимодействат над съществуващи IPv6 или IPv4 мрежи (мрежа над мрежа). Отличителна черта на Yggdrasil е самоорганизацията на работата, която не изисква явна настройка на маршрутизиране — информацията за маршрутите се изчислява, базирайки се на местоположението на възела спрямо другите възли в мрежата. Устройствата се адресират чрез обикновен IPv6 адрес, който не се променя при преместване на възела (в Yggdrasil се използва неизползваемият адресен диапазон 0200::/7).

Цялата мрежа Yggdrasil се разглежда не като обединение на разрознени подмрежи, а като единно структурирано остовно дърво, което има един "корен", а всеки възел има един родител и един или няколко потомци. Подобна дървовидна структура позволява изграждането на маршрут до целевия възел, спрямо възела източник, използвайки механизма "локатор", който определя оптималния път до възела от корена. Информацията за дървото се разпределя между възлите и не се съхранява централизирано.

За защита от анализ на трафика в мрежата се прилага крайно-крайно криптиране (транзитните възли не могат да определят съдържанието), но анонимността не е гарантирана — при свързване през интернет, пиринговите възли, с които се осъществява директно взаимодействие, могат да определят реалния IP адрес, затова за анонимност се предлага свързването на възлите през Tor или I2P.

Въпреки че проектът е в етап на алфа-разработка, той вече е достатъчно стабилен за ежедневно използване, но не гарантира обратна съвместимост между версиите. За Yggdrasil общността поддържа набор от услуги, включително платформа за разполагане на Linux контейнери за хостинг техните сайтове, търсачка YaCy, комуникационен сървър Matrix, IRC сървър, DNS, VoIP система, BitTorrent тракер, карта на точки за свързване, шлюз до IPFS и прокси за достъп до мрежи Tor, I2P и clearnet.

В новата версия:

  • Добавена е възможността за удостоверяване на връзката с пирове с помощта на парола. Паролата се задава чрез параметъра "password=", например, "tls://a.b.c.d:12345?password=123456abcdef".
  • Добавена е възможността за използване на протокола QUIC, основан на UDP, за взаимодействие с пирове. За използване на QUIC трябва да се укаже URI схема quic:// в директивите Listen и Peers, но поддръжката на QUIC все още не е толкова добре тествана, колкото TCP и TLS.
  • Добавена е опцията PrivateKeyPath, която позволява съхранение на частен ключ във формат PEM, отделно от основния конфигурационен файл. За експортиране на ключа в отделен файл може да се използва опцията "-exportkey".
  • Реализирана е нова маршрутна схема, която не е обратносъвместима с по-старите версии (възлите с Yggdrasil 0.5 не могат да взаимодействат с хостове на база Yggdrasil 0.4), но решава голяма част от проблемите със стабилността и мащабируемостта, присъстващи в клон 0.4, както и значително намалява потреблението на памет и намалява трафика при липса на мрежова активност.

    В новата реализация за проследяване на връзките и възлите се използва вероятностна структура на Филтър Блум. Разпределената хеш-таблица (DHT) вече не се използва за обмен на данни за маршрутизиране и свързване на отворени ключове в дървовидната мрежа.

    За поддържане на локална последователност и намаляване на зависимостта от маршрутите към кореновите възли, възлите вече предават информация за всеки линк, която се проследява в CRDT структури. Вместо маршрутизиране от източника се прилага маршрутизиране на базата на алгортъм на алчност (запитванията се отправят към най-близкия съседен възел).

    Форматите, използвани при съгласуване на връзки и многократна разпратка, са преработени за по-добра разширяемост. Кодът за обработка на връзки е преработен за по-надеждно проследяване на състоянието на пирсовете. Осигурено е отделно проследяване на интервалите между повторните връзки за всеки настроен пир.

    За откриване на сривове вместо периодично изпращане на отделни keepalive заявки, са ангажирани съобщения с потвърждение за получаване на трафика, които позволяват да се избегне трафикът при мрежова неактивност (както например, намалява консумацията на енергия на мобилни устройства чрез изключване на трафика в празен режим).

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster