CJDNS мертв, да здравствует Yggdrasil
Что такое Yggdrasil?
Yggdrasil — это распределённая Mesh сеть, которая работет в Overlay режиме, позволяя сделать интернет поверх интернета
Последние новости о сети cjdns датируются 2017 годом, может показатся, что сеть умерла и разработка остановлена (на самом деле — да), однако появился самозванец — Yggdrasil, который практически полностью копирует cjdns однако делает это намного лучше.
В посте рассмотрим:
- Что такое Yggdrasil
- Зачем это нужно
- Откуда он взялся
- Можно ли ему доверять
- В чем отличее от cjdns
- Почему его стоит установить прямо сейчас
- Поддержка iOS (Да!)
- Что в планах
- Как настроить
Что такое Yggdrasil
Yggdrasil — это оверлейная сеть, которая призвана воплотить концепцию нулевой настройки сетей — вам не нужно знать маршруты, вам не нужно ничего настраивать — всё должно работать из коробки и сразу и еще это должно масштабироватсяю.
Зачем это?
Это тянет на отдельную статью, рассмотри кратко:
- Устранение текущих проблем BGP
- Настоящая zero-conf
- Еще один метод защиты от блокировок (будущих) с нарушением сетевой связанности
Откуда он взялся
Yggdrasil — это продлжение развития cjdns, только с чистого листа, разработчики участвующие в проекте cjdns в какой-то момент решили отделится от проекта cjdns и переписать всё с нуля.
Это произошло из-за разногласий с основателем cjdns — по его задумке в сети должны были появится супер-узлы, которые должны содержать полню карту сети, по их мнению — этот путь неверный и они хотели сохранить сеть одноранговой (когда каждый узел по функциям одинаков с остальными). Помимо этого — оригинальная сет медленно развивалась из-за выбрных методов разработки и языков и она так и не смогла (за 5 лет) добратся до поддержки мобильных устройств, что в современном мире — не простительно.
Активность разработки
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 — там ведётся планирование
- Поддержка Android
- Поддержка авто-подключения между iOS устройствами даже если они не в одной Wi-Fi сети (очень круто)
- Работа через 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 о нем мы поговорим чуть позже.
PS Можно скачать только пакет или собрать из исходных кодов — инструкция тут 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 адаптера
Подключаемся
Установили приложение?
Переходим в публичный каталог пиров github.com/yggdrasil-network/public-peers и выбираем ближайшего к себе с точки зрения географии пиров (а лучше парочку)
Теперь пора добавить «пиров», идем в /etc/yggdrasil.conf (в случае iOS на вкладку Peers)
и добавляем
На iOS это можно сделать в интерфейсе приложения.
Если в странах СНГ будут желающие сделать публичных пиров — пишите в комментариях — добавим в пост и желательно добавляйте их в github.
Что посмотреть в сети?
Сервисы в сети описаны тут yggdrasil-network.github.io/services.html
Первое куда стоит заглянуть — на карту сети http://[21f: dd73:7cdb:773b: a924:7ec0:800b:221e]/
Больше почитать по сеть можно на сайте сети yggdrasil-network.github.io и в блоге yggdrasil-network.github.io/blog.html
PS Кстати совсем недавно в ZeroNet была добавлена поддержка cjdns и yggdrasil, русское сообщество в Zeronet.