Пуск на 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 се разглежда не като обединение от разпръснати подсетей, а като единна структурирана остовна дърво, която има един "корен", а всеки възел има един родител и един или повече потомци. Подобна дървовидна структура позволява изграждане на маршрут до целевия възел спрямо източниковия възел, използвайки механизма "locator", който определя оптималния път до възела от корена. Информацията за дървото се разпределя между възлите и не се съхранява централизирано.

За защита от анализ на трафика в мрежата се прилага крайно криптиране (транзитните възли не могат да определят съдържанието), но не се гарантира анонимност — при свързване чрез интернет, равноправните възли, с които се осъществява директна връзка, могат да определят реалния 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