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

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

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

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

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

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


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

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

  • Устранение текущих проблем BGP
  • Настоящая zero-conf
  • Еще один метод защиты от блокировок (будущих) с нарушением сетевой связанности
  • Откуда он взялся
    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 — там ведётся планирование

  • Поддержка 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 о нем мы поговорим чуть позже.

    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.

    Оставить комментарий