Yggdrasil in LAN
Модераторы: Olej, bellic, vikos
Yggdrasil in LAN
Не знаю, добавит ли это понимания, но…
Yggdrasil - это протокол и его реализация оверлейной одноранговой пиринговой сети.
Оверлейная означает сеть внутри сети. TCP over TCP. Т.е., запуская Yggdrasil вы создаете туннель «внутри» TCP к пирам, которые вы указали в конфиге или к тем, которые найдены автоматически в локальной сети на IPv6 link-local адресах. С учетом того, что используется туннельный интерфейс, это похоже на то, как работают туннели OpenVPN, например. Туннель в данном случае - это шифрованные пакеты TCP, которые передаются внутри обычных, нешифрованных пакетов TCP.
Пиринговая означает peer to peer соединения. Т.е., одноранговый узел с одноранговым узлом. Все узлы в сети равны. Нет центрального сервера. От одного узла к другому, от другого к третьему - так организуется сеть, которая представляет собой дерево. Где располагается конкретный узел в этом дереве - зависит от ключа, который генерируется вместе с конфигурационным файлом. От ключа же зависит и IPv6-Yggdrasil адрес из диапазона 0200::/7 (который, к слову, deprecated в интернете). На основе этого дерева и строится маршрутизация в этой шифрованной сети туннелей от узла к узлу, от корня и т.д.
Yggdrasil - это протокол и его реализация оверлейной одноранговой пиринговой сети.
Оверлейная означает сеть внутри сети. TCP over TCP. Т.е., запуская Yggdrasil вы создаете туннель «внутри» TCP к пирам, которые вы указали в конфиге или к тем, которые найдены автоматически в локальной сети на IPv6 link-local адресах. С учетом того, что используется туннельный интерфейс, это похоже на то, как работают туннели OpenVPN, например. Туннель в данном случае - это шифрованные пакеты TCP, которые передаются внутри обычных, нешифрованных пакетов TCP.
Пиринговая означает peer to peer соединения. Т.е., одноранговый узел с одноранговым узлом. Все узлы в сети равны. Нет центрального сервера. От одного узла к другому, от другого к третьему - так организуется сеть, которая представляет собой дерево. Где располагается конкретный узел в этом дереве - зависит от ключа, который генерируется вместе с конфигурационным файлом. От ключа же зависит и IPv6-Yggdrasil адрес из диапазона 0200::/7 (который, к слову, deprecated в интернете). На основе этого дерева и строится маршрутизация в этой шифрованной сети туннелей от узла к узлу, от корня и т.д.
Yggdrasil in LAN
А еще, в локальной сети не обязательно устанавливать Yggdrasil на все устройства, чтобы они имели доступ в эту сеть. Достаточно установить на одно устройство, а остальным присвоить адреса из маршрутизируемой подсети Yggdrasil. Об этом в вики есть отдельная статья…
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Yggdrasil in LAN
Это всё понятно из описаний...
Для того чтобы указывать в качестве пиров локальные IPv4 нужно к адресам ещё указывать им ещё и порты TCP. Где?
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Yggdrasil in LAN
Вот это по существу
Как оказывается (когда я проверил) что у меня на большинстве компьютеров (только Linux) настройками Network Manager стоит для физических сетевых интерфейсов "Требовать адресацию IPv4 для этого соединения" и для IPv6 "Выключено".
Причины тому понятны: 1). меня никогда не интересовали нативные IPv6 (толку от них никакого) + 2). провайдер мой (хоть и оптоволоконный GPON) никогда не поддерживал IPv6 ... и, по моим вопросам, даже мыслью такой не задавался, 3). хостер вот этого форума (с другого конца) тоже на текущей площадке хостинга IPv6 не поддерживает...
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Yggdrasil in LAN
Поубирал (и то и другое).
Код: Выделить всё
olej@nvme:~$ ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 10:7b:44:47:a2:47 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.241/24 brd 192.168.1.255 scope global dynamic noprefixroute enp3s0
valid_lft 172725sec preferred_lft 172725sec
inet6 fe80::522d:d0bd:b221:a526/64 scope link noprefixroute
valid_lft forever preferred_lft forever
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 53049 qdisc pfifo_fast state UNKNOWN group default qlen 500
link/none
inet6 21c:4cbf:9e0b:2904:301c:1c7a:9715:62c0/7 scope global
valid_lft forever preferred_lft forever
inet6 fe80::5a2:bf71:8f05:351f/64 scope link stable-privacy
valid_lft forever preferred_lft forever
Код: Выделить всё
olej@nvme:~$ ping -6 fe80::5b06:3ef5:5b91:15d3 -c3
PING fe80::5b06:3ef5:5b91:15d3(fe80::5b06:3ef5:5b91:15d3) 56 data bytes
64 bytes from fe80::5b06:3ef5:5b91:15d3%enp3s0: icmp_seq=1 ttl=64 time=0.478 ms
64 bytes from fe80::5b06:3ef5:5b91:15d3%enp3s0: icmp_seq=2 ttl=64 time=0.568 ms
64 bytes from fe80::5b06:3ef5:5b91:15d3%enp3s0: icmp_seq=3 ttl=64 time=0.628 ms
--- fe80::5b06:3ef5:5b91:15d3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2023ms
rtt min/avg/max/mdev = 0.478/0.558/0.628/0.061 ms
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Yggdrasil in LAN
А это ping в той же LAN и к тому же Raspberry Pi:
Код: Выделить всё
olej@nvme:~$ ping -6 fe80::5b06:3ef5:5b91:15d3 -c3
PING fe80::5b06:3ef5:5b91:15d3(fe80::5b06:3ef5:5b91:15d3) 56 data bytes
64 bytes from fe80::5b06:3ef5:5b91:15d3%enp3s0: icmp_seq=1 ttl=64 time=0.478 ms
64 bytes from fe80::5b06:3ef5:5b91:15d3%enp3s0: icmp_seq=2 ttl=64 time=0.568 ms
64 bytes from fe80::5b06:3ef5:5b91:15d3%enp3s0: icmp_seq=3 ttl=64 time=0.628 ms
--- fe80::5b06:3ef5:5b91:15d3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2023ms
rtt min/avg/max/mdev = 0.478/0.558/0.628/0.061 ms
Olej писал(а): ↑12 апр 2023, 01:48Облом.Код: Выделить всё
root@nvme:~# ping -c3 21e:af75:7a27:75:fc2:2453:9dcb:8670 PING 21e:af75:7a27:75:fc2:2453:9dcb:8670(21e:af75:7a27:75:fc2:2453:9dcb:8670) 56 data bytes --- 21e:af75:7a27:75:fc2:2453:9dcb:8670 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 2055ms
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Yggdrasil in LAN
Хост с которого ping-уется:
Код: Выделить всё
olej@nvme:~$ sudo cat /etc/yggdrasil.conf | grep "Peers:"
Peers: []
InterfacePeers: {}
Код: Выделить всё
olej@nvme:~$ sudo yggdrasilctl getPeers
[sudo] пароль для olej:
Port Public Key IP Address Uptime RX TX Pr URI
1 00000002a1150bb1ff15e07bb758c468f31e75cbf8d17bc246364377cf18eae3 21e:af75:7a27:75:fc2:2453:9dcb:8670 4m33s 5kb 6kb 0 tls://[fe80::5b06:3ef5:5b91:15d3]:34053
2 3cb7c934a4852779885762bb59781f9f54d771206460ca0d1c9f72311a7729f6 202:1a41:b65a:dbd6:c433:bd44:ea25:343f 4m33s 1kb 1kb 0 tls://[fe80::13f5:9fe2:6393:bf4a%enp3s0]:52353
3 3cb7c934a4852779885762bb59781f9f54d771206460ca0d1c9f72311a7729f6 202:1a41:b65a:dbd6:c433:bd44:ea25:343f 4m33s 1kb 1kb 0 tls://[fe80::9bac:3791:1b79:7237%enp3s0]:53625
Код: Выделить всё
olej@nvme:~$ yggdrasil --version
Build name: yggdrasil
Build version: 0.4.7
Yggdrasil in LAN
Из этого видно, что Multicast Peer Discovery у вас работает. Установлены соединения с узлами в локальной сети на link-local адресах.Olej писал(а): ↑12 апр 2023, 11:39olej@nvme:~$ sudo yggdrasilctl getPeers
[sudo] пароль для olej:
Port Public Key IP Address Uptime RX TX Pr URI
1 00000002a1150bb1ff15e07bb758c468f31e75cbf8d17bc246364377cf18eae3 21e:af75:7a27:75:fc29dcb:8670 4m33s 5kb 6kb 0 tls://[fe80::5b065b91:15d3]:34053
2 3cb7c934a4852779885762bb59781f9f54d771206460ca0d1c9f72311a7729f6 202b65a:dbd6:c433:bd44:ea25:343f 4m33s 1kb 1kb 0 tls://[fe80:9fe2:6393:bf4a%enp3s0]:52353
3 3cb7c934a4852779885762bb59781f9f54d771206460ca0d1c9f72311a7729f6 202b65a:dbd6:c433:bd44:ea25:343f 4m33s 1kb 1kb 0 tls://[fe80::9bac1b79:7237%enp3s0]:53625
Yggdrasil in LAN
А это пинг вашего 21е-адреса с моей машины, подключенной к Yggdrasil:
Код: Выделить всё
ping -6 21e:af75:7a27:75:fc2:2453:9dcb:8670
PING 21e:af75:7a27:75:fc2:2453:9dcb:8670(21e:af75:7a27:75:fc2:2453:9dcb:8670) 56 data bytes
64 bytes from 21e:af75:7a27:75:fc2:2453:9dcb:8670: icmp_seq=2 ttl=64 time=905 ms
64 bytes from 21e:af75:7a27:75:fc2:2453:9dcb:8670: icmp_seq=3 ttl=64 time=152 ms
64 bytes from 21e:af75:7a27:75:fc2:2453:9dcb:8670: icmp_seq=4 ttl=64 time=156 ms
^C
--- 21e:af75:7a27:75:fc2:2453:9dcb:8670 ping statistics ---
5 packets transmitted, 3 received, 40% packet loss, time 4014ms
rtt min/avg/max/mdev = 152.338/404.317/905.109/354.115 ms
Yggdrasil in LAN
Адреса листенеров вместе с портами указываются в параметре Listen. Пример:
Код: Выделить всё
Listen:
[
tcp://192.168.1.3:22855
]
Код: Выделить всё
Peers:
[
tcp://192.168.1.3:22855
]
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей