2021/06/01 - Yggdrasil
2021/06/01 - YggdrasilТеория«Ну что тебе сказать про Сахалин?»... Вернее про Иггдрасиль.
Есть интернет. Все привыкли, всё работает, посты с котиками доставляет, видосики показывает и прочее. Ну как работает,
ошибка 451 иногда тоже вылезает. Бороться с ней научились, способов есть в количестве и ассортименте.
Растекаться мысью по древу лениво, но придётся для упрощения понимания.
Если кто вдруг помнит времена FIDONet, то были тогда так называемые «левонеты». Сети, построенные по образу и подобию FIDO, использующие тот же софт и те же каналы связи, но с другим регионом в адресе. К примеру, адрес обычного пользователя (пойнта) сети Санкт-Петербурга и области в FIDO выглядел как 2:5030/9876.4321. Адрес в каком-либо из левонетов — 777:6446/563.6643. Правда, похоже? Структура адреса одинаковая, программы для общения и передачи файлов её поддерживают, в результате на одном компьютере с одним комплектом софта можно общаться как в FIDO, так и во всех левонетах, которые настроены на нём.
Сейчас примерно та же история.
Небольшое лирическое отступление.
Человек уже привык к «читаемым» адресам (google.com, yandex.ru и т.д.), компьютерам и прочим девайсам «читабельность», не нужна. Им нужен сетевой адрес в цифровом формате. Или в старом стандарте
IPv4, или в новом
IPv6 (на самом деле — последовательность единиц и нулей, но так глубоко копать не будем, а то до физического уровня докопаемся).
С IPv4 (длина адреса — 32 бита) всё хорошо, только один минус. Адресов доступных для реального включения в Интернет маловато, на всех не хватает, и давно уже не хватает (за «белый» IP адрес провайдер почти всегда хочет дополнительную оплату). Как в Википедии пишут:
"25 ноября 2019 года были распределены последние свободные IPv4 адреса в Европе, странах бывшего СССР и на Ближнем Востоке.[19] Теперь получить IPv4 адрес можно будет, только если его освободит текущий владелец — например, закроется компания или какая-либо сеть освободит ненужный ей адресный ресурс.»И вот тут на сцену выходит IPv6 (длина адреса 128 бит). Адресов — как гуталина на гуталиновой фабрике у дяди кота Матроскина: «Ну просто завались!».
К примеру, мне провайдер выдал под домашние нужды префикс длиной 56 бит. Что это значит: я могу организовать дома 2^8 (т.е. 256) сетей по 2^64 (т.е. по 18 446 744 073 709 551 616) адресов/устройств. Думаю, что на какое-то время мне их хватит. :)
Казалось бы, все проблемы решены, но вот ложка дёгтя в бочку мёда.
Все адреса, которые выделяются, принадлежат провайдеру. Сменился провайдер, поменял настройки сети у себя он, и — ой. Всё перенастраивать (хотя для многих это пока не критично).
А ещё у провайдера (в РФ так точно), есть коробочка, которая оперу пишет и ошибки разные пользователю показывает, когда тот хочет странного.
Вот тут может помочь Yggdrasil, который представляет собой современный левонет, использующий IPv6 адресацию, но из диапазона, который не используется провайдерами Интернета:
маска сети 200::/7, пользователю выдаются подсети с адресами 300::/64. Т.е. устройство (компьютер/телефон/...), подключающееся к Yggdrasil, получает «реальный» IPv6 адрес и 2^64 виртуальных даже в том случае, если провайдер умеет только в IPv4. Весь пользовательский софт, поддерживающий IPv6, работает с ним также, как и с обычным интернетом.
Вдобавок трафик, проходящий через Yggdrasil шифруется автоматически. А если соединение устанавливается по пиру с TLS, то помянутая коробушка у провайдера оказывается в глубокой задумчивости на предмет того, какую ошибку показывать, и что оперу писать.
И ещё один момент.
«Из всех даров богов, дыхание — наименее оценённый. Никто не слагает ему гимнов, никто не возносит молитв к доброму воздуху, дышат которым наравне принц и нищий, хозяин и его пёс. Но — боже упаси оказаться без него!» (Роджер Желязны «Князь света»).
Интернет воспринимается, как данность. А если глянуть на ту же Мьянму (ну подумаешь, при путче доступ к Интернет отключили, у нас же не Мьянмна)...
В этой ситуации Yggdrasil позволяет поднять (Mesh)сеть между своими узлами, не используя интернет.
ПрактикаЧто даёт сеть Yggdrasil обычному пользователю: доступ к ресурсам, которые находятся ней. В частности, к зеркалам ресурсов из обычного Интернета.
Остальное пригодится продвинутым пользователям. ;)
Подключиться не просто, а очень просто: нужно установить программу (приложение), отредактировать настройки (понадобится редактор типа «блокнот»), и, самое сложное, настроить безопасность своего компа (на самом деле не сложно, но кто это делает?).
Итак.
Список публичных узлов Yggdrasil лежит тут:
https://github.com/yggdrasil-network/public-peersЛогично предположить, что в конфигурационный файл нужно прописывать узлы, которые поближе, но тут ведь как. Пути роутинга неисповедимы. :) (шутка)
MS Windows:Копипастить годную инструкцию лениво, лежит тут:
https://yggdrasil.hz13.net/connect/install-windows/Дистрибутивы тут:
https://github.com/yggdrasil-network/yggdrasil-go/releases/Актуальная на сегодня версия 0.3.16:
x64,
x86:
Небольшая ремарка, мне пришлось создать каталог «C:\ProgramData\Yggdrasil\» вручную, затем сгенерировать конфигурационный файл запуском «C:\Program Files\Yggdrasil\updateconfig.bat», иначе сервис зависал и не мог стартовать в первый раз в процессе инсталляции, которая затыкалась на этом моменте, после этого всё заработало.
Далее неплохо бы настроить DNS (но это если хочется ходить по «человекочитаемым» именам типа
http://howto.ygg, а не по адресам вида
http://[300:529f:150c:eafe::6]. Читать
тут.
И таки настроить брандмауэр (в инструкции об этом есть, под Win достаточно объявить сеть публичной и не отключать этот самый брандмауэр).
Linux:И что, вы таки ещё что-то спрашиваете? RTFM! Ну серьёзно. :)
Разве что обратите внимание на настройку ip6tables, вот тут пример есть:
http://91.210.169.33/doku.php?id=yggdrasil:firewall_setupAndroid:APK публикуется тут:
https://t.me/yggdrasil_androidАктуальная на сегодня версия
1.7.
После подключения к Yggdrasil полезно отредактировать DNS в приложении (добавить один-два сервера из списка, список само приложение предложит).
Использованные материалы (доступные из обычного Интернет):
https://yggdrasil-network.github.io/http://91.210.169.33/doku.php?id=starthttps://yggdrasil.hz13.net/