Yggdrasil

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 28 мар 2023, 18:21

Что такое Yggdrasil и для чего это нужно?
Yggdrasil - это сетевой протокол и организованная с помощью него компьютерная сеть ячеистой топологии со сквозным шифрованием и автоматической маршрутизацией. Yggdrasil обеспечивает работу сети на третьем уровне модели OSI (адресация, маршрутизация и т.п.). Устройства, при этом, могут быть соединены между собой посредством кабелей, лазера или радио (Wi-Fi). Подключиться к Yggdrasil можно и через обычный Интернет или локальную сеть, прописав адреса узлов Yggdrasil (публичных пиров) в конфигурационном файле.

При работе поверх Интернет или локальной сети (оверлейный режим) Yggdrasil не требует подключения по протоколу IPv6, узлы могут соединяться между собой, используя IPv4, однако, операционная система, в которой запущен Yggdrasil должна поддерживать работу протокола IPv6.

Yggdrasil реализован на языке Go и доступен для сборки и установки в большинстве популярных ОС.
Как можно использовать Yggdrasil

Варианты:

1. Подключение к «глобальной» Yggdrasil-сети. В этой сети работают различные сервисы (web, игровые, форумы, IRC, обмен файлами и т.п.), работа которых поддерживается пользователями и энтузиастами из разных стран. Есть несколько зеркал интернет-сайтов.

Для подключения к сети в оверлейном режиме достаточно в конфигурационном файле прописать один или несколько адресов публичных узлов. Для подключения по Wi-Fi используется технология автоматического обнаружения узлов (Multicast Peer Discovery).

Используя Yggdrasil таким образом вы фактически получаете аналог «белого» IPv6-адреса и большую подсеть, адреса из которой вы можете назначить устройствам в своей домашней сети (с помощью radvd или вручную). Это дает определенные бонусы. Например, если ваш интернет-провайдер не выдает вам бесплатно «белый» IP-адрес, а вы хотите иметь доступ к домашней сети из вне (из рабочего офиса, как вариант), с устройств, которые находятся за NAT - Yggdrasil позволит сделать это легко и просто: достаточно установить Yggdrasil на домашнем устройстве и в офисе, и минуя все преграды вы сможете обращаться к устройству в офисе из дома и из офиса к домашним так, как будто они имеют «белые» IPv6-адреса. Соединение, при этом, будет защищено надежным шифрованием. Не забывайте настроить файервол, чтобы ограничить доступ других участников сети.

2. То, что реализовано в глобальной сети Yggdrasil можно реализовать и в кругу ограниченного числа участников (друзей, семьи, соседей), даже если они территориально находятся на удалении от вас. Соединение в сеть производится аналогично, только не нужно публиковать адреса своих узлов. Таким образом легко можно организовать сеть между всеми своими родственниками, как вариант.

3. Альтернатива VPN. Используя Yggdrasil в совокупности с другими технологиями (например, GRE-туннели) можно реализовать полноценную замену OpenVPN, L2TP/IPSec, WireGuard и т.п. Также можно использовать то, что по сути yggdrasil это обычная ipv6 сеть. За время разработки которой было придумано некоторое количество вариантов проброса ipv4 трафика (почти) без использования дополнительных технологий.

4. Организация [в теории] отказоустойчивой масштабируемой и независимой от Интернет сети с различными целями.

В чатах, тематики Yggdrasil упоминался проект, в котором с помощью Yggdrasil реализовывалась противопожарная сигнализация с камерами наблюдения где-то в лесах, а так же, проект, связанный с коммуникациями в сфере медицины.
Общие принципы организации mesh-сетей, и состояние дел на 2016г. - уже разбиралось ранее в теме Mesh сети :!:
Полезно освежить в памяти. ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 28 мар 2023, 18:33

С чего начать
Начать использовать Yggdrasil просто: установите его, в соответствии с инструкцией для вашей операционной системы, добавьте в конфигурационный файл один или несколько публичных пиров, перезапустите сервис / демон, чтобы изменения в конфигурационном файле вступили в силу и попробуйте, проверить доступность какого-нибудь другого узла с помощью ping
Installation
Linux
Yggdrasil is well supported on Linux. There are a number of distribution packages and additional installation instructions available:
Debian, Ubuntu, elementaryOS, Linux Mint and similar
Red Hat Enterprise Linux, Fedora, CentOS and similar
Gentoo Linux
OpenWrt
Manual install or build from source
Installing on Debian, Ubuntu, elementaryOS, Linux Mint and similar
Package install from your distribution
Some Debian-based distributions may have an yggdrasil-go package available in their repositories:

Код: Выделить всё

sudo apt-get install yggdrasil
After installation
Configuration will be generated automatically into /etc/yggdrasil.conf when the package is installed, and the Yggdrasil service will automatically be installed into systemd.

Enable and start the service after install/upgrade:

Код: Выделить всё

sudo systemctl enable yggdrasil
sudo systemctl start yggdrasil
To make configuration changes, modify the /etc/yggdrasil.conf file and then restart the Yggdrasil daemon:

Код: Выделить всё

systemctl restart yggdrasil

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 28 мар 2023, 18:37

Olej писал(а):
28 мар 2023, 18:33
Some Debian-based distributions may have an yggdrasil-go package available in their repositories

Код: Выделить всё

olej@R420:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 21.1
Release:	21.1
Codename:	vera

Код: Выделить всё

olej@R420:~$ aptitude search yggdrasil
p   golang-github-yggdrasil-network-yggdrasil-go-dev                - Fully encrypted global-scale mesh network (library)                      
p   yggdrasil                                                       - Fully encrypted global-scale mesh network (program)                      
Установка:

Код: Выделить всё

olej@R420:~$ sudo apt install yggdrasil
[sudo] пароль для olej:       
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово         
Следующие НОВЫЕ пакеты будут установлены:
  yggdrasil
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 2 пакетов не обновлено.
Необходимо скачать 2.345 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 9.157 kB.
Пол:1 http://mirror.mirohost.net/ubuntu jammy-updates/universe amd64 yggdrasil amd64 0.4.3-2ubuntu0.22.04.1 [2.345 kB]
Получено 2.345 kB за 1с (2.942 kB/s)   
Выбор ранее не выбранного пакета yggdrasil.
(Чтение базы данных … на данный момент установлен 545101 файл и каталог.)
Подготовка к распаковке …/yggdrasil_0.4.3-2ubuntu0.22.04.1_amd64.deb …
Распаковывается yggdrasil (0.4.3-2ubuntu0.22.04.1) …
Настраивается пакет yggdrasil (0.4.3-2ubuntu0.22.04.1) …
Внимание: к указанному домашнему каталогу /var/lib/yggdrasil нет доступа: No such file or directory
Добавляется системный пользователь «yggdrasil» (UID 134) ...
Добавляется новая группа «yggdrasil» (GID 147) ...
Добавляется новый пользователь «yggdrasil» (UID 134) в группу «yggdrasil» ...
Не создаётся домашний каталог «/var/lib/yggdrasil».

Код: Выделить всё

olej@R420:~$ systemctl status yggdrasil
○ yggdrasil.service - yggdrasil
     Loaded: loaded (/lib/systemd/system/yggdrasil.service; disabled; vendor preset: enabled)
     Active: inactive (dead)

Код: Выделить всё

olej@R420:~$ cat /etc/passwd | grep yggdrasil
yggdrasil:x:134:147::/var/lib/yggdrasil:/usr/sbin/nologin

Код: Выделить всё

olej@R420:~$ cat /etc/group | grep yggdrasil
yggdrasil:x:147:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 28 мар 2023, 18:56

Olej писал(а):
28 мар 2023, 18:33
добавьте в конфигурационный файл один или несколько публичных пиров, перезапустите сервис / демон, чтобы изменения в конфигурационном файле вступили в силу и попробуйте, проверить доступность какого-нибудь другого узла с помощью ping
Публичный пир
Публичным пиром сети называется устройство, к которому в оверлейном режиме может подключиться любой желающий. Проще говоря: узел сети, к которому можно подключиться через Интернет и соединиться таким образом с глобальным сегментом сети Yggdrasil. Список публичных пиров доступен в официальном репозитории проекта «Public Peers»: https://github.com/yggdrasil-network/public-peers, а так же по адресам:

- https://publicpeers.neilalexander.dev/
- http://[319:3cf0:dd1d:47b9:20c:29ff:fe2c:39bd]/ (внутрисетевое зеркало)
Как выбрать публичные пиры

Для обычного домашнего использования разработчики рекомендуют прописывать в конфигурационном файле 2-3 географически ближайших к вам публичных пира. Слишком большое количество пиров в конфигурационном файле, а так же, использование географически удаленных от вас пиров может нагативно сказаться на производительности узла и скорости доступа к ресурсам сети.

Для выбора пиров, во-первых можно просто воспользоваться упомянутым выше сайтом, на котором собраны все публичные пиры с offline / online статусами.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 28 мар 2023, 22:13

Olej писал(а):
28 мар 2023, 18:56
Публичный пир

Код: Выделить всё

olej@R420:~/2023/own.WORK/Yggdrasil$ git clone https://github.com/yggdrasil-network/public-peers.git
Клонирование в «public-peers»...
remote: Enumerating objects: 2963, done.
remote: Counting objects: 100% (363/363), done.
remote: Compressing objects: 100% (235/235), done.
remote: Total 2963 (delta 217), reused 240 (delta 123), pack-reused 2600
Получение объектов: 100% (2963/2963), 695.92 КиБ | 595.00 КиБ/с, готово.
Определение изменений: 100% (1711/1711), готово.

Код: Выделить всё

olej@R420:~/2023/own.WORK/Yggdrasil$ git clone https://github.com/zhoreeq/peer_checker.py.git
Клонирование в «peer_checker.py»...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (9/9), done.
Получение объектов: 100% (10/10), готово.
Определение изменений: 100% (3/3), готово.
remote: Total 10 (delta 3), reused 4 (delta 0), pack-reused 0

Код: Выделить всё

olej@R420:~/2023/own.WORK/Yggdrasil$ ls -l $HOME/2023/own.WORK/Yggdrasil/public-peers/
итого 32
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 africa
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 asia
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 europe
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 mena
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 north-america
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 other
-rw-rw-r-- 1 olej olej 1621 мар 28 21:23 README.md
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 south-america

Код: Выделить всё

olej@R420:~/2023/own.WORK/Yggdrasil$ ls -l $HOME/2023/own.WORK/Yggdrasil/public-peers/
итого 32
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 africa
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 asia
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 europe
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 mena
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 north-america
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 other
-rw-rw-r-- 1 olej olej 1621 мар 28 21:23 README.md
drwxrwxr-x 2 olej olej 4096 мар 28 21:23 south-america

Код: Выделить всё

olej@R420:~/2023/own.WORK/Yggdrasil$ python ./peer_checker.py/peer_checker.py ./public-peers/
Report date: Tue Mar 28 18:43:35 2023
Dead peers:

tls://[2603:c023:8001:1600:35e0:acde:2c6e:b27f]:17001 	 mena/saudi-arabia.md
tcp://[2603:c023:8001:1600:35e0:acde:2c6e:b27f]:17002 	 mena/saudi-arabia.md
tls://[2001:41d0:304:200::ace3]:23108 	 europe/france.md
tls://[2001:41d0:2:c44a:51:255:223:60]:54232 	 europe/france.md
tcp://[2001:470:1f13:e56::64]:39565 	 europe/france.md
tls://[2001:470:1f13:e56::64]:39575 	 europe/france.md
tls://de-fsn-1.peer.v4.yggdrasil.chaz6.com:4444 	 europe/germany.md
tls://[2a01:4f9:c010:664d::1]:61995 	 europe/finland.md
tls://[2a01:4f9:2a:60c::2]:18836 	 europe/finland.md
tcp://[2a05:9403::8b]:7743 	 europe/czechia.md
tls://[2a03:3b40:fe:ab::1]:993 	 europe/czechia.md
tls://[2a07:e01:105:444:c634:6bff:feb5:6e28]:7040 	 europe/sweden.md
tls://[2001:41d0:801:2000::233f]:28395 	 europe/united-kingdom.md
tls://[2a10:4740:40:0:2222:3f9c:b7cf:1]:43006 	 europe/united-kingdom.md
tcp://yggno.de:18226 	 europe/russia.md
tls://yggno.de:18227 	 europe/russia.md
tcp://188.225.9.167:18226 	 europe/russia.md
tls://188.225.9.167:18227 	 europe/russia.md
tls://x-msk-0.sergeysedoy97.ru:65535 	 europe/russia.md
tls://178.20.45.32:65535 	 europe/russia.md
tls://[2a0d:8480:2:54::]:65535 	 europe/russia.md
tls://[2a09:5302:ffff::ac9]:65535 	 europe/russia.md
tls://[2a09:5302:ffff::aca]:65535 	 europe/russia.md
tcp://[2a00:b700::a:279]:12402 	 europe/russia.md
tls://[2a00:b700::a:279]:443 	 europe/russia.md
tcp://[2a09:5302:ffff::992]:12403 	 europe/russia.md
tls://[2a09:5302:ffff::992]:443 	 europe/russia.md
tcp://77.37.218.131:12402 	 europe/russia.md
tls://77.37.218.131:443 	 europe/russia.md
tcp://box.paulll.cc:13337 	 europe/russia.md
tls://box.paulll.cc:13338 	 europe/russia.md
tls://avevad.com:1337 	 europe/russia.md
tcp://92.124.136.131:30111 	 europe/russia.md
tcp://prophet.fun:30111 	 europe/russia.md
tcp://itcom.multed.com:7991 	 europe/russia.md
tcp://ekb.itrus.su:7991 	 europe/russia.md
tls://109.107.173.235:9111 	 europe/netherlands.md
tcp://ygg-nl.incognet.io:8883 	 europe/netherlands.md
tls://ygg-nl.incognet.io:8884 	 europe/netherlands.md
tls://[2a0d:8480:1:f9::]:65535 	 europe/netherlands.md
tls://[2001:41d0:601:1100::cf2]:11129 	 europe/poland.md
tcp://ipv4.campina-grande.paraiba.brazil.yggdrasil.iasylum.net:40000 	 south-america/brazil.md
tcp://ipv6.campina-grande.paraiba.brazil.yggdrasil.iasylum.net:41000 	 south-america/brazil.md
tls://ipv4.campina-grande.paraiba.brazil.yggdrasil.iasylum.net:50000 	 south-america/brazil.md
tls://ipv6.campina-grande.paraiba.brazil.yggdrasil.iasylum.net:51000 	 south-america/brazil.md
tls://44.234.134.124:443 	 north-america/united-states.md
tls://[2605:9f80:2000:64::2]:7040 	 north-america/united-states.md
tls://[2607:5300:201:3100::50a1]:58226 	 north-america/canada.md
tcp://yggdrasil.community.garage.networks.deavmi.assigned.network:2000 	 africa/south-africa.md
tls://yggdrasil.community.garage.networks.deavmi.assigned.network:2001 	 africa/south-africa.md


Alive peers (sorted by latency):

URI 	 Latency (ms) 	 Location
tls://s-fra-0.sergeysedoy97.ru:65535 	 11.927 	 europe/germany.md
tls://s-ams-1.sergeysedoy97.ru:65535 	 12.419 	 europe/netherlands.md
tls://s-msk-2.sergeysedoy97.ru:65535 	 12.57 	 europe/russia.md
tls://s-ams-0.sergeysedoy97.ru:65535 	 13.3 	 europe/netherlands.md
tls://s-msk-0.sergeysedoy97.ru:65535 	 13.854 	 europe/russia.md
tls://s-msk-1.sergeysedoy97.ru:65535 	 13.863 	 europe/russia.md
tls://78.27.153.163:179 	 18.139 	 europe/ukraine.md
tcp://78.27.153.163:33165 	 18.299 	 europe/ukraine.md
tls://78.27.153.163:3784 	 18.32 	 europe/ukraine.md
tls://78.27.153.163:3785 	 19.363 	 europe/ukraine.md
tls://78.27.153.163:33166 	 19.43 	 europe/ukraine.md
tcp://193.111.114.28:8080 	 21.421 	 europe/ukraine.md
tls://193.111.114.28:1443 	 21.431 	 europe/ukraine.md
tls://54.37.137.221:11129 	 23.729 	 europe/poland.md
tls://pl1.servers.devices.cwinfo.net:11129 	 25.242 	 europe/poland.md
tcp://195.123.245.146:7743 	 37.174 	 europe/czechia.md
tls://yggdrasil.su:62586 	 39.457 	 europe/germany.md
tls://ygg.mkg20001.io:443 	 40.599 	 europe/germany.md
tcp://yggdrasil.su:62486 	 40.936 	 europe/germany.md
tcp://gutsche.tech:8888 	 42.181 	 europe/germany.md
tcp://ygg.mkg20001.io:80 	 42.204 	 europe/germany.md
tls://gutsche.tech:8889 	 42.213 	 europe/germany.md
tls://37.205.14.171:993 	 42.329 	 europe/czechia.md
tcp://193.107.20.230:7743 	 44.135 	 europe/germany.md
tcp://94.130.203.208:5999 	 44.138 	 europe/germany.md
tcp://aaoth.xyz:7777 	 46.103 	 europe/netherlands.md
tcp://vpn.itrus.su:7991 	 46.997 	 europe/netherlands.md
tls://aaoth.xyz:25565 	 47.073 	 europe/netherlands.md
tls://x-ams-0.sergeysedoy97.ru:65535 	 48.519 	 europe/netherlands.md
tls://x-ams-1.sergeysedoy97.ru:65535 	 48.552 	 europe/netherlands.md
tls://45.147.198.155:6010 	 49.11 	 europe/netherlands.md
tls://89.22.237.91:65535 	 49.329 	 europe/netherlands.md
tls://79.137.194.94:65535 	 49.357 	 europe/netherlands.md
tcp://y.zbin.eu:7743 	 49.896 	 europe/slovakia.md
tls://23.137.251.45:5222 	 50.033 	 europe/netherlands.md
tls://62.210.85.80:39575 	 51.908 	 europe/france.md
tls://51.15.204.214:54321 	 51.933 	 europe/france.md
tls://23.137.249.65:443 	 52.253 	 europe/netherlands.md
tls://94.103.82.150:8080 	 52.853 	 europe/netherlands.md
tcp://s2.i2pd.xyz:39565 	 53.145 	 europe/france.md
tls://152.228.216.112:23108 	 53.485 	 europe/france.md
tls://cloudberry.fr1.servers.devices.cwinfo.net:54232 	 53.824 	 europe/france.md
tls://fr2.servers.devices.cwinfo.net:23108 	 54.425 	 europe/france.md
tls://aurora.devices.waren.io:18836 	 55.232 	 europe/finland.md
tls://x-msk-1.sergeysedoy97.ru:65535 	 56.429 	 europe/russia.md
tls://uk1.servers.devices.cwinfo.net:28395 	 57.041 	 europe/united-kingdom.md
tls://fi1.servers.devices.cwinfo.net:61995 	 57.453 	 europe/finland.md
tls://185.130.44.194:7040 	 57.799 	 europe/sweden.md
tls://x-msk-2.sergeysedoy97.ru:65535 	 57.959 	 europe/russia.md
tls://51.255.223.60:54232 	 58.085 	 europe/france.md
tcp://curiosity.tdjs.tech:30003 	 58.15 	 europe/united-kingdom.md
tcp://51.15.204.214:12345 	 58.294 	 europe/france.md
tls://x-fra-0.sergeysedoy97.ru:65535 	 58.425 	 europe/germany.md
tls://s2.i2pd.xyz:39575 	 58.596 	 europe/france.md
tls://51.38.64.12:28395 	 58.789 	 europe/united-kingdom.md
tls://95.216.5.243:18836 	 58.957 	 europe/finland.md
tls://65.21.57.122:61995 	 60.722 	 europe/finland.md
tcp://62.210.85.80:39565 	 60.846 	 europe/france.md
tls://45.95.202.21:443 	 62.787 	 europe/russia.md
tls://45.95.202.91:65535 	 62.964 	 europe/russia.md
tls://185.103.109.63:65535 	 63.188 	 europe/russia.md
tcp://45.95.202.21:12403 	 63.508 	 europe/russia.md
tls://87.251.77.39:65535 	 63.81 	 europe/germany.md
tls://185.175.90.87:43006 	 64.094 	 europe/united-kingdom.md
tls://45.147.200.202:443 	 67.341 	 europe/russia.md
tcp://45.147.200.202:12402 	 67.777 	 europe/russia.md
tls://185.165.169.234:8443 	 77.013 	 europe/romania.md
tcp://185.165.169.234:8880 	 77.13 	 europe/romania.md
tcp://ip6-antalya.ddns.net:8800 	 93.794 	 mena/turkey.md
tls://212.154.86.134:4433 	 96.936 	 mena/turkey.md
tcp://212.154.86.134:8800 	 101.664 	 mena/turkey.md
tls://ip6-antalya.ddns.net:4433 	 103.884 	 mena/turkey.md
tcp://srv.itrus.su:7991 	 106.351 	 europe/russia.md
tcp://158.101.229.219:17002 	 108.92 	 mena/saudi-arabia.md
tls://158.101.229.219:17001 	 109.009 	 mena/saudi-arabia.md
tls://longseason.1200bps.xyz:13122 	 118.655 	 north-america/united-states.md
tcp://zabugor.itrus.su:7991 	 119.389 	 north-america/united-states.md
tcp://longseason.1200bps.xyz:13121 	 121.047 	 north-america/united-states.md
tls://192.99.145.61:58226 	 132.185 	 north-america/canada.md
tls://ca1.servers.devices.cwinfo.net:58226 	 134.379 	 north-america/canada.md
tls://supergay.network:9001 	 135.739 	 north-america/united-states.md
tls://supergay.network:443 	 138.457 	 north-america/united-states.md
tcp://supergay.network:9002 	 139.977 	 north-america/united-states.md
tcp://kusoneko.moe:9002 	 142.579 	 north-america/canada.md
tcp://50.236.201.218:56088 	 143.257 	 north-america/united-states.md
tls://lancis.iscute.moe:49274 	 146.015 	 north-america/united-states.md
tcp://lancis.iscute.moe:49273 	 146.279 	 north-america/united-states.md
tls://102.223.180.74:993 	 153.027 	 north-america/united-states.md
tls://108.175.10.127:61216 	 158.42 	 north-america/united-states.md
tcp://phrl42.ydns.eu:8842 	 160.563 	 europe/germany.md
tls://167.160.89.98:7040 	 180.132 	 north-america/united-states.md
tls://corn.chowder.land:443 	 180.765 	 north-america/united-states.md
tls://cowboy.supergay.network:443 	 181.309 	 north-america/united-states.md
tcp://cowboy.supergay.network:9111 	 183.564 	 north-america/united-states.md
tcp://corn.chowder.land:9002 	 184.814 	 north-america/united-states.md
tls://tasty.chowder.land:9001 	 198.936 	 north-america/united-states.md
tcp://tasty.chowder.land:9002 	 199.109 	 north-america/united-states.md
tls://sin.yuetau.net:6643 	 289.154 	 asia/singapore.md
tcp://sin.yuetau.net:6642 	 300.983 	 asia/singapore.md

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 28 мар 2023, 23:26

Olej писал(а):
28 мар 2023, 18:37
Установка:
Установка, с удивлением тому что описано в С чего начать
добавьте в конфигурационный файл один или несколько публичных пиров
Как добавить, если конфиг не создаётся инсталляцией?

Код: Выделить всё

olej@R420:/etc$ ls -l /etc/yggdrasil
ls: невозможно открыть каталог '/etc/yggdrasil': Отказано в доступе
Ого! Какие права!

Код: Выделить всё

olej@R420:/etc$ ls -ld /etc/yggdrasil
drwxr-x--- 2 root yggdrasil 4096 мар 28 18:35 /etc/yggdrasil

Код: Выделить всё

root@R420:/etc/yggdrasil# ls -l /etc/yggdrasil
итого 0
Пустой каталог! :-o

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 28 мар 2023, 23:30

Olej писал(а):
28 мар 2023, 23:26
Как добавить, если конфиг не создаётся инсталляцие?
Придумал только такое решение - закачиваю исходный код проекта на Go:

Код: Выделить всё

olej@R420:~/2023/own.WORK/Yggdrasil$ git clone https://github.com/yggdrasil-network/yggdrasil-go.git
Клонирование в «yggdrasil-go»...
remote: Enumerating objects: 11984, done.
remote: Counting objects: 100% (121/121), done.
remote: Compressing objects: 100% (74/74), done.
remote: Total 11984 (delta 55), reused 100 (delta 43), pack-reused 11863
Получение объектов: 100% (11984/11984), 3.30 МиБ | 483.00 КиБ/с, готово.
Определение изменений: 100% (8060/8060), готово.
Можно собрать из исходников ... но это потом.
В README.md вычитал команду ... и уже в инсталлированном пакете:

Код: Выделить всё

root@R420:/etc/yggdrasil# yggdrasil -genconf > /etc/yggdrasil/yggdrasil.conf
После чего:

Код: Выделить всё

root@R420:~# ls -l /etc/yggdrasil/yggdrasil.conf
-rw-r--r-- 1 root root 3549 мар 28 19:14 /etc/yggdrasil/yggdrasil.conf

Код: Выделить всё

root@R420:~# grep -v '^$\|#' /etc/yggdrasil/yggdrasil.conf
{
  Peers: []
  InterfacePeers: {}
  Listen: []
  AdminListen: unix:///var/run/yggdrasil/yggdrasil.sock
  MulticastInterfaces:
  [
    {
      Regex: .*
      Beacon: true
      Listen: true
      Port: 0
    }
  ]
  AllowedPublicKeys: []
  PublicKey: 3cb7c934a4852779885762bb59781f9f54d771206460ca0d1c9f72311a7729f6
  PrivateKey: fa9f8209f5fe184a4632513676eef8e3d0b7ee798af11cb37d7ee8873eef37883cb7c934a4852779885762bb59781f9f54d771206460ca0d1c9f72311a7729f6
  IfName: auto
  IfMTU: 65535
  NodeInfoPrivacy: false
  NodeInfo: {}
}

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 28 мар 2023, 23:57

Olej писал(а):
28 мар 2023, 23:30
После чего:
Публичные пиры, к которым вы хотите быть подключены, прописываются в файле конфигурации yggdrasil.conf (/etc/yggdrasil.conf или %programdata%\yggdrasil\yggdrasil.conf) в секции Peers:

Код: Выделить всё

Peers: [
    # Чехия, Revertron
    tcp://195.123.245.146:7743
    # netherlands
    tcp://51.15.118.10:62486
]
Комментарии не обязательны, но они могут пригодиться.
Прописываю из списка (выше), предварительно проверяя IP хостов ping-ом ...
В итоге:

Код: Выделить всё

root@R420:/etc/yggdrasil# grep -v '^$\|#' /etc/yggdrasil/yggdrasil.conf | grep " Peers:" -A7
  Peers: [
     tcp://193.111.114.28:8080
     tls://193.111.114.28:1443
     tls://pl1.servers.devices.cwinfo.net:11129
     tcp://195.123.245.146:7743
     tls://yggdrasil.su:62586
     tcp://yggdrasil.su:62486
  ]

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 28 мар 2023, 23:58

Olej писал(а):
28 мар 2023, 23:57
В итоге:
Стартую сервис:

Код: Выделить всё

root@R420:/etc/yggdrasil# systemctl start yggdrasil

Код: Выделить всё

root@R420:/etc/yggdrasil# systemctl status yggdrasil
● yggdrasil.service - yggdrasil
     Loaded: loaded (/lib/systemd/system/yggdrasil.service; disabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-03-28 23:54:35 EEST; 19s ago
    Process: 43199 ExecStartPre=/sbin/modprobe tun (code=exited, status=0/SUCCESS)
   Main PID: 43200 (yggdrasil)
      Tasks: 16 (limit: 115786)
     Memory: 6.1M
        CPU: 93ms
     CGroup: /system.slice/yggdrasil.service
             └─43200 /usr/sbin/yggdrasil -useconffile /etc/yggdrasil/yggdrasil.conf

мар 28 23:54:35 R420 yggdrasil[43200]: 2023/03/28 23:54:35 Interface MTU: 53049
мар 28 23:54:35 R420 yggdrasil[43200]: 2023/03/28 23:54:35 Your public key is 3cb7c934a4852779885762bb59781f9f54d771206460ca0d1c9f72311a7729f6
мар 28 23:54:35 R420 yggdrasil[43200]: 2023/03/28 23:54:35 Your IPv6 address is 202:1a41:b65a:dbd6:c433:bd44:ea25:343f
мар 28 23:54:35 R420 yggdrasil[43200]: 2023/03/28 23:54:35 Your IPv6 subnet is 302:1a41:b65a:dbd6::/64
мар 28 23:54:35 R420 yggdrasil[43200]: 2023/03/28 23:54:35 Connected TCP: 203:63fc:667d:b16c:8e78:a899:8d54:a5e4@193.111.114.28, source 192.168.1.14
мар 28 23:54:35 R420 yggdrasil[43200]: 2023/03/28 23:54:35 Connected TLS: 203:63fc:667d:b16c:8e78:a899:8d54:a5e4@193.111.114.28, source 192.168.1.14
мар 28 23:54:35 R420 yggdrasil[43200]: 2023/03/28 23:54:35 Connected TCP: 202:db60::9ce0:a73d:7498:d7ae@195.123.245.146, source 192.168.1.14
мар 28 23:54:35 R420 yggdrasil[43200]: 2023/03/28 23:54:35 Connected TLS: 200:4ac1:2516:a78:b43e:51e1:ab90:e2a2@54.37.137.221, source 192.168.1.14
мар 28 23:54:35 R420 yggdrasil[43200]: 2023/03/28 23:54:35 Connected TCP: 218:71e5:78e4:8989:b71:db7f:7bf1:f1e1@94.130.176.250, source 192.168.1.14
мар 28 23:54:36 R420 yggdrasil[43200]: 2023/03/28 23:54:36 Connected TLS: 218:71e5:78e4:8989:b71:db7f:7bf1:f1e1@94.130.176.250, source 192.168.1.14
Похоже что стартовал!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 29 мар 2023, 00:05

Olej писал(а):
28 мар 2023, 23:58
Похоже что стартовал!

Код: Выделить всё

olej@R420:~/2023/own.WORK/Yggdrasil$ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 90:b1:1c:54:3a:46 brd ff:ff:ff:ff:ff:ff
    altname enp2s0f0
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 90:b1:1c:54:3a:47 brd ff:ff:ff:ff:ff:ff
    altname enp2s0f1
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 53049 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 500
    link/none 

Код: Выделить всё

olej@R420:~/2023/own.WORK/Yggdrasil$ ip a s dev tun0
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 53049 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none 
    inet6 202:1a41:b65a:dbd6:c433:bd44:ea25:343f/7 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::4268:4330:6890:e026/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever
B IPv6 tun0 равен тому IPv6, котрый указан в статусе стартующего yggdrasil :!:
И вот ping IPv6 в сети (со стороны моего домашнего хостера) где не поддерживается IPv6;

Код: Выделить всё

olej@R420:~/2023/own.WORK/Yggdrasil$ ping -c5 21e:a51c:885b:7db0:166e:927:98cd:d186
PING 21e:a51c:885b:7db0:166e:927:98cd:d186(21e:a51c:885b:7db0:166e:927:98cd:d186) 56 data bytes
64 bytes from 21e:a51c:885b:7db0:166e:927:98cd:d186: icmp_seq=1 ttl=64 time=740 ms
64 bytes from 21e:a51c:885b:7db0:166e:927:98cd:d186: icmp_seq=2 ttl=64 time=96.0 ms
64 bytes from 21e:a51c:885b:7db0:166e:927:98cd:d186: icmp_seq=3 ttl=64 time=97.2 ms
64 bytes from 21e:a51c:885b:7db0:166e:927:98cd:d186: icmp_seq=4 ttl=64 time=97.8 ms
64 bytes from 21e:a51c:885b:7db0:166e:927:98cd:d186: icmp_seq=5 ttl=64 time=94.5 ms

--- 21e:a51c:885b:7db0:166e:927:98cd:d186 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 94.500/225.135/740.202/257.535 ms
Или даже так:

Код: Выделить всё

olej@R420:~/2023/own.WORK/Yggdrasil$ ping -c5 -6 21e:a51c:885b:7db0:166e:927:98cd:d186 -Itun0
PING 21e:a51c:885b:7db0:166e:927:98cd:d186(21e:a51c:885b:7db0:166e:927:98cd:d186) from 202:1a41:b65a:dbd6:c433:bd44:ea25:343f tun0: 56 data bytes
64 bytes from 21e:a51c:885b:7db0:166e:927:98cd:d186: icmp_seq=1 ttl=64 time=102 ms
64 bytes from 21e:a51c:885b:7db0:166e:927:98cd:d186: icmp_seq=2 ttl=64 time=100 ms
64 bytes from 21e:a51c:885b:7db0:166e:927:98cd:d186: icmp_seq=3 ttl=64 time=104 ms
64 bytes from 21e:a51c:885b:7db0:166e:927:98cd:d186: icmp_seq=4 ttl=64 time=102 ms
64 bytes from 21e:a51c:885b:7db0:166e:927:98cd:d186: icmp_seq=5 ttl=64 time=105 ms

--- 21e:a51c:885b:7db0:166e:927:98cd:d186 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 100.279/102.508/104.649/1.552 ms

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 14 гостей