CJDNS is dead, long live Yggdrasil

 

CJDNS мертв, да здравствует Yggdrasil

Habr
5 min

Что такое Yggdrasil?

Yggdrasil — это распределённая Mesh сеть, которая работет в Overlay режиме, позволяя сделать интернет поверх интернета.

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

На Apple устройствах использован протокол AWDL.

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

В посте рассмотрим:

  • Что такое Yggdrasil
  • Зачем это нужно
  • Откуда он взялся
  • Можно ли ему доверять
  • В чем отличее от cjdns
  • Почему его стоит установить прямо сейчас
  • Поддержка iOS (Да!)
  • Что в планах
  • Как настроить


Что такое Yggdrasil


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

Зачем это?


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

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


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

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

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


CJDNS


Yggdrasil

Arceliar — второй разработчик по количеству коммитов как раз покинул cjdns и основал совместно с neilalexander — 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)

и добавляем

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

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

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


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

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


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

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

Просмотры:

Коментарі

Популярні публікації