Yggdrasil - приватная сеть поверх интернета

devops

Administrator
Команда форума
kxan3zfvzqtnqslt-ryvcworf8o.png


Yggdrasilсетевой протокол и его реализация, с помощью которого можно создать mesh-сеть, которая будет работать в оверлейном режиме, позволяя создать приватную сеть поверх Интернета. Реализация сети Yggdrasil это попытка воплотить концепцию нулевой настройки сетей — пользователю не нужно знать маршруты, не нужно ничего настраивать — всё должно работать сразу из коробки и должно масштабироваться.

Причем, сеть может одновременно работать в двух режимах — через интернет и без интернета, соединяясь физически напрямую c соседними устройствами (через Ethernet, Wi-Fi или Bluetooth) работая на 3-ем уровне модели OSI.

Данные передаваемые внутри сети Yggdrasil полностью шифруются, используется сквозное асимметричное шифрование на основе эллиптических кривых, благодаря чему передаваемая информация надежно защищена от других участников соединения. Дополнительная анонимизация пользователя может быть выполнена с помощью подключения через соответствующие сети (Tor, I2P).

На данный момент существуют готовые сборки для Windows, Linux, MacOS, IOS и Android. Также возможна установка на некоторые модели роутеров.

Сеть Yggdrasil обеспечивает корректную работу для приложений, поддерживающих протокол IPv6 (XMPP, Matrix, Telegram X).

Также имеется большое количество внутренних сервисов и сайтов, в том числе большое количество внутренних чатов.

Зачем это?​


Это тянет на отдельную статью, рассмотри кратко:

  1. Устранение текущих проблем BGP
  2. Настоящая zero-conf
  3. Еще один метод защиты от блокировок (будущих) с нарушением сетевой связанности

Откуда он взялся​


Yggdrasil — это продолжение развития cjdns, только с чистого листа, разработчики участвующие в проекте cjdns в какой-то момент решили отделится от проекта cjdns и переписать всё с нуля.

Это произошло из-за разногласий с основателем cjdns — по его задумке в сети должны были появиться супер-узлы, которые должны содержать полню карту сети, по их мнению — этот путь неверный и они хотели сохранить сеть одноранговой (когда каждый узел по функциям одинаков с остальными). Помимо этого — оригинальная сеть медленно развивалась из-за выбранных методов разработки и языков и она так и не смогла (за 5 лет) добратся до поддержки мобильных устройств, что в современном мире — не простительно.

Активность разработки​


CJDNS

Yggdrasil


Можно ли ему доверять​


Да, разработчики — те же.

В чем отличее от cjdns​


  • Сеть одноранговая
  • Есть поддержка большого количества устройств (даже iOS!)
  • Есть официальный репозиторий публичных узлов
  • Подключаться к узлу можно без приватного ключа (а можно и с ним конечно) — публичные ноды используют подключение без
  • Используемый язык — Go
  • Есть готовые пакеты под большинство систем
  • Более тонкая и удобная настройки
  • Более быстрая разработка

Почему его стоит установить прямо сейчас​


Прямо сейчас в сети работает 280+ узлов, и они прибывают примерно по 10 узлов в неделю, сеть как и CJDNS позволяет подключаться как через обычный интернет yggdrasil --> интернет --> yggdrasil.

Так и в «нативном» режиме, который прекрасно работает — устанавливаем yggdrasil на домашний сервер (например raspberry) и делаем линк yggdrasil --> интернет --> публичный узел yggdrasil.

После этого, внутри вашей локальной сети, любой пользователь с клиентом (ПК или даже iPhone) сам обнаружит ваш узел на raspberry и подключится.

В связи с будущими планами развития рунета, есть большой шанс нарушения международных связей (всех или почти всех) однако интернет штука сложная, всегда найдется где-то выход в международный сегмент. Если уже сейчас установить себе yggdrasil то в рамках сети у кого-то может остатся доступ к публичному сегменту, вот через него трафик и будет маршрутизирован.

Отдельно хочу отметить — сеть не позволяет выйти в обычный интернет — только свои ресурсы — это не TOR, таким образом риски «быть прокси» — пропадают. Всё что передается в yggdrasil остается там же.

Однако, если вы планируете использовать сеть, как резервный источник доступа на случий непредвиденных ситуаций — это вполне можно сделать, вы сможете подключится к вашему MTProto Proxy или VPN через yggdrasil.

Схема будет следующая VPN --> Yggdrasil (неизвестные вам узлы) --> ваш VPN --> Интернет

Поддержка iOS (Да!)​


Сеть правда поддерживает работу на iOS причем работает стабильно, имеет авто-подключение, на iOS как и 1.1.1.1 работает через установку VPN адаптера (ссылки будут ниже)

Что в планах​


Планы взяты на основе Roadmap разработчиков и Issue с github — там ведётся планирование

  1. Поддержка Android
  2. Поддержка авто-подключения между iOS устройствами даже если они не в одной Wi-Fi сети (очень круто)
  3. Работа через WebSocket как способ скрытия работы сети

Как настроить​


На официальном сайте предоставлены все инструкции yggdrasil-network.github.io/installation.html

Debian/Ubuntu/Raspberry​


Добавляем ключи репозитория

gpg --fetch-keys https://neilalexander.s3.eu-west-2.amazonaws.com/deb/key.txt
gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -


Добавляем репозиторий

echo 'deb http://neilalexander.s3.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list
sudo apt-get update


Устанавливаем

sudo apt-get install yggdrasil

Конфигурационный файл — /etc/yggdrasil.conf о нем мы поговорим чуть позже.

P.S.: Можно скачать только пакет или собрать из исходных кодов — инструкция тут yggdrasil-network.github.io/installation.html

OS X​


Скачиваем готовый пакет

wget https://700-115685026-gh.circle-artifacts.com/0/yggdrasil-0.3.5-macos-amd64.pkg

Устанавливаем

sudo installer -pkg yggdrasil-0.3.5-macos-amd64.pkg -target /


Либо устанавливаем из исходных кодов yggdrasil-network.github.io/installation-macos-other.html

Конфигурационный файл - /etc/yggdrasil.conf.

iOS​


Через iPhone/iPad нужно открыть ссылку и согласится на тестирование

Скачиваем TestFlight itunes.apple.com/us/app/testflight/id899247664?mt=8

Устанавливаем Yggdrasil testflight.apple.com/join/jZNsIkRr

Для корректной работы нужно согласится на установку VPN адаптера

Подключаемся​


Установили приложение?

Переходим в публичный каталог пиров и выбираем ближайшего к себе с точки зрения географии пиров (а лучше парочку).

Теперь пора добавить «пиров», идем в /etc/yggdrasil.conf (в случае iOS на вкладку Peers)

и добавляем

3anwag4sch00oy1h-jjs5nmqnnq.png


На iOS это можно сделать в интерфейсе приложения.

Если в странах СНГ будут желающие сделать публичных пиров — пишите в комментариях — добавим в пост и желательно добавляйте их в github.

Что посмотреть в сети?​


Сервисы в сети описаны тут.

Первое куда стоит заглянуть — на карту сети http://[21f:dd73:7cdb:773b:a924:7ec0:800b:221e]/

Больше почитать по сеть можно на сайте сети yggdrasil-network.github.io и в блоге.

P.S.: Кстати, совсем недавно в ZeroNet была добавлена поддержка cjdns и yggdrasil, русское сообщество в Zeronet.


Источник 1: https://ru.wikipedia.org/wiki/Yggdrasil
Источник 2: https://habr.com/ru/post/443934/
 
Сверху