В разные промежутки времени сообщество убунто-любителей мне сильно помогало, теперь в знак признательности я решил сделать свой вклад. Думаю, эта статья станет востребованной в скором будущем, а пока что для тех, кто не знает, что такое
меш-сеть и
Yggdrasil в частности, прилагаю познавательные ссылочки. Если кратко: меш-сеть Yggdrasil - автоматически конфигурируемая сеть с нативным сквозным шифрованием, а самое главное, открытым исходным кодом. Работает как в меш-режиме (автообнаружение узлов в локальной сети и маршрутизация через них), так и в оверлейном (с подключением к сети через интернет).
Видео на русском и более подробная
статья.
Последовательно рассмотрим установку, управление и конфигурацию.
1. Установка Yggdrasil на Ubuntu Установка возможна как из репозиториев, откуда можно будет в дальнейшем обновляться, так и из готового deb-пакета.
Страница источника.
sudo apt-get install dirmngr
gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt
gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -
echo 'deb http://neilalexander.s3.dualstack.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
Выбираем из
списка пакет под под вашу систему (i386 или amd64 и т.д.). Скачиваем. Устанавливаем командой вида:
sudo apt install ./<имя_скачанного_файла>.deb
Обратите внимание, что команда должна выполняться в той же директории, где находится скаченный deb-пакет.
2. КонфигурацияЕсли в локальной сети с вами нет ни одного настроенного пира, для подключения к сети необходимо добавить публичный пир (обычный узел Yggdrasil, но с доступом к нему через интернет). Для бытового использования нужно не более двух-трех пиров, которые можно выбрать на свой вкус в официальном
списке.
Пиры добавляются в конфигурационный файл (/etc/yggdrasil.conf), в поле "Peers: [
сюда]". В итоге должно получиться примерно так:
Peers: [
tcp://194.177.21.156:5066
tcp://46.151.26.194:60575
tcp://95.79.97.17:50001
]
В самом конце находится параметр "NodeInfo", который отвечает за трансляцию имени нашего узла в сеть. Если оставить пустым, вместо имени будет последний разряд IPv6 адреса Yggdrasil, выданного программой (генерируется ключами из конфига). Добавляем имя в формате
NodeInfo: {"name": "произвольное_имя_машины_латиницей"}
После всего проделанного перезапускаем Yggdrasil:
sudo service yggdrasil restart
Для проверки, можете посетить один из
публичных ресурсов сети, например, карту сети Ygg (внутренний адрес: http://[21e:e795:8e82:a9e2:ff48:952d:55f2:f0bb]/).
3. УправлениеСамые полезные команды:
sudo service yggdrasil start # запуск
sudo service yggdrasil stop # остановка
sudo service yggdrasil restart # перезапуск
sudo service yggdrasilctl getPeers # просмотр подключенных пиров (локальных и через интернет)
Свой адрес можно увидеть командой с "getPeers" и стандартным "ifconfig". Yggdrasil добавляется в систему как tun0.
4. DNSСообществом разрабатывается (и уже успешно используется) своя система децентрализванного DNS
ALFIS, использующая легковесный блокчейн. Если нет своего сервера, можно воспользоваться любым публичным. На конец 2021 года список список актуальных серверов:
302:db60::53 Прага, Чехия Revertron
300:6223::53 Братислава, Словакия Revertron
302:7991::53 Санкт-Петербург, Россия Revertron
300:170::53 Амстердам, Нидерланды Strannik-j
324:71e:281a:9ed3::53 Канада, Торонто acetone
325:5a4:d1c9:db96::53 Россия, Москва cofob
На Ubuntu конфигурацию DNS удобнее всего производить с файлом
/etc/systemd/resolved.conf
После внесения нужного значения в строку "DNS=...", перезагрузите службу командой
sudo service systemd-resolved restart
Nota bene: сервера Yggdrasil резолвят не только внутренние зоны (например, ygg, mesh и т.п.), но и все "клирнетовские", такие как com, ru, org и сотни других. В виду этого DNS Yggdrasil могут служить полноценной заменой обычному DNS. Из плюсов сквозное шифрование с сервером, что не позволит перехватить DNS-запросы третьему лицу.
P.S. Для корректной работы в локальной сети необходимо включить IPv6 на интерфейсах, с которыми должен взаимодействовать Yggdrasil. Конфигурация "автоматически" отлично подойдет.
С поступлением предложений и правок, буду редактировать пост. Небольшой список актуальных ссылок по теме:
Официальный репозиторий на GithubЗеркало внутрисетевой Вики http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]
http://[21e:a51c:885b:7db0:166e:927:98cd:d186]/ - Web-sites Directory. Список ресурсов сети
SimpleYggGen-CPP - майнер адресов сети Yggdrasil
2020-04-28 Добавил ссылку на внутрисетевой чат
2020-05-01 Добавил Web-sites Directory
2020-05-13 Небольшая оптимизация статьи для поисковой выдачи
2020-05-17 Добавил
видео2020-05-30 Добавил ссылку на Вики
2021-10-27 Актуализация информации