Страница 3 из 5
Yggdrasil через LAN без сервиса Yggdrasil
Добавлено: 10 июл 2023, 16:24
Olej
Olej писал(а): ↑10 июл 2023, 16:20
И всё работает:
Здесь показан ещё интерфейс:
Код: Выделить всё
olej@nvme:~$ ip a s dev teredo
27: teredo: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc pfifo_fast state UNKNOWN group default qlen 500
link/none
inet6 2001:0:d911:c0d9:1ca7:6d1d:3ee3:4e8a/32 scope global
valid_lft forever preferred_lft forever
inet6 fe80::ffff:ffff:ffff/64 scope link
valid_lft forever preferred_lft forever
inet6 fe80::47fe:7e6d:983a:2dd2/64 scope link stable-privacy
valid_lft forever preferred_lft forever
IPv6 : 2001:0:d911:c0d9
6d1d
4e8a/32
Созданный miredo:
Код: Выделить всё
root@nvme:/etc/systemd/system# systemctl status --no-pager --full miredo
● miredo.service - Teredo IPv6 tunneling
Loaded: loaded (/usr/local/lib/systemd/system/miredo.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-07-10 15:02:21 EEST; 2s ago
Process: 15188 ExecStartPre=/usr/local/sbin/miredo-checkconf -f /usr/local/etc/miredo/miredo.conf (code=exited, status=0/SUCCESS)
Main PID: 15189 (miredo)
Tasks: 7 (limit: 18931)
Memory: 1.0M
CPU: 34ms
CGroup: /system.slice/miredo.service
├─15189 /usr/local/sbin/miredo -f
├─15190 /usr/local/sbin/miredo -f
└─15191 /usr/local/libexec/miredo/miredo-privproc 1B
июл 10 15:02:21 nvme miredo[15190]: Connecting <unknown>: NOT trusted, NOT valid, 0 pings, 0 bubbles
июл 10 15:02:21 nvme miredo[15190]: 2001:4f8:1:c::15: ping returned 0
июл 10 15:02:21 nvme miredo[15190]: Connecting 0.0.0.0: NOT trusted, NOT valid, 1 pings, 0 bubbles
июл 10 15:02:21 nvme miredo[15190]: 2001:4f8:1:c::15: ping returned 1
июл 10 15:02:21 nvme miredo[15190]: miredo[15190]: Connecting 0.0.0.0: NOT trusted, NOT valid, 1 pings, 0 bubbles
июл 10 15:02:21 nvme miredo[15190]: miredo[15190]: 2001:4f8:1:c::15: ping returned 1
июл 10 15:02:21 nvme miredo[15190]: Connecting 0.0.0.0: NOT trusted, NOT valid, 1 pings, 0 bubbles
июл 10 15:02:21 nvme miredo[15190]: 2001:4f8:1:c::15: ping returned 1
июл 10 15:02:21 nvme miredo[15190]: miredo[15190]: bubble sent
июл 10 15:02:21 nvme miredo[15190]: bubble sent
Это к делу не относится.
Но я прежде всего на него грешил в нарушении работоспособности ... И напрочь убивал его на эти 2 дня.
Как оказывается, они никак не мешают друг-другу.
Yggdrasil через LAN без сервиса Yggdrasil
Добавлено: 22 сен 2023, 17:54
Olej
Olej писал(а): ↑10 июл 2023, 13:39
Всё живое!
Всё работает!
За 2.5 месяца активной работы с сетевыми протоколами и утилитами - всё это добро разладилось... Нужно восстановить!
А поскольку эта тема (возможность) даже интереснее, чем просто
Yggdrasil in LAN, когда клиент Yggdrasil подключаетсяк сети
только через пиры других хостов LAN, через протокол
MPD (Multicast Peer Discovery)...
Olej писал(а): ↑09 июл 2023, 15:26
Эту тему записываю только конспект действий для себя любимого, но может и кому пригодится...
... то
конспект нужно написать более внятно, подробно и с начала...
Yggdrasil через LAN без сервиса Yggdrasil
Добавлено: 22 сен 2023, 18:07
Olej
Olej писал(а): ↑22 сен 2023, 17:54
эта тема (возможность) даже интереснее, чем просто Yggdrasil in LAN, когда клиент Yggdrasil подключаетсяк сети только через пиры других хостов LAN, через протокол MPD (Multicast Peer Discovery)...
Почему мне интереснее эта возможность?:
1. в LAN из 10, скажем, хостов, не нужно устанавливать 10 клиентов Yggdrasil, тем более что из стандартных репозиториев Linux устанавливаются версии, которые могут быть по протоколу не совсем совместимые с последней...
2. не нужно следить за соответствием версий инсталляций ... и как утверждают, готовящаяся к выходу вскоре версия 0ю5 будет вообще несовместимма с 0.4.7...
3. на 10 хостах IPv6 не нужно обеспечивать безопасность, настраивать фаерволы ... нужно настроить только на роутере Yggdrasil, через который пойдут в сеть все остальные хосты LAN
4. можно очень легко, просто, разрешать/запрещать динамически доступ в Yggdrasil сеть, управляя записью роутинга на каждом из 10-ти хостов.
Yggdrasil через LAN без сервиса Yggdrasil
Добавлено: 22 сен 2023, 18:35
Olej
Olej писал(а): ↑22 сен 2023, 17:54
... то конспект нужно написать более внятно, подробно и с начала...
Более того, для такой задачи есть 2 варианта:
1. настройка роутинга через Yggdrasil-роутер...
2. добиться того, чтобы такая настройка сохранялась после перезагрузки системы
... и даже 3 варианта:
3. решить задачу 2 на клиенте средствами Netwowrk Manager (а то, может, и не только на клиенте, но и на Yggdrasil-роутер).
Клиентов в реальной крупной LAN может быть куча, и на каждом выполнять CLI конфигурацию.
Yggdrasil через LAN без сервиса Yggdrasil
Добавлено: 22 сен 2023, 18:58
Olej
Olej писал(а): ↑22 сен 2023, 18:35
настройка роутинга через Yggdrasil-роутер (дальше по тексту будет просто
роутер ... а то как же его обозначать?)...
Итак... Есть Yggdrasil Yggdrasil-роутер, работающий в дистрибутиве:
Код: Выделить всё
olej@nvme:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Linuxmint
Description: LMDE 5 (elsie)
Release: 5
Codename: elsie
... настроенный и работающий в IPv6 Yggdrasil через внешние пиры (может и ещё и в LAN через Multicast Peer Discovery ... но это дело не меняет ):
Код: Выделить всё
olej@nvme:~$ yggdrasil -version
Build name: yggdrasil
Build version: 0.4.7
Код: Выделить всё
olej@nvme:~$ grep " Peers:" /etc/yggdrasil.conf -A12
Peers: [
# URI Country Latency
# tcp://193.111.114.28:8080 ukraine 14.5
tcp://193.111.114.28:8080
# tcp://195.123.245.146:7743 europe/czechia.md 32.0
tcp://195.123.245.146:7743
# tcp://yggdrasil.su:62486 europe/germany.md 37.3
tcp://yggdrasil.su:62486
# tcp://y.zbin.eu:7743 europe/slovakia.md 42
tcp://y.zbin.eu:7743
# tcp://158.101.229.219:17002 mena/saudi-arabia.md 97
tcp://158.101.229.219:17002
]
Код: Выделить всё
olej@nvme:~$ grep "Multicast" /etc/yggdrasil.conf
# Multicast peer discovery will work regardless of any listeners set
# MulticastInterfaces: []
MulticastInterfaces:
Всё что требует root я буду показывать в отдельном терминале под Root -
# в приглашении системы :
Код: Выделить всё
root@nvme:~# yggdrasilctl getPeers
Port Public Key IP Address Uptime RX TX Pr URI
1 19c0399824e937187576672ab5a1b8c3908d198d92e222b6cd30a1852a57476f 203:63fc:667d:b16c:8e78:a899:8d54:a5e4 10m22s 4kb 4kb 0 tcp://193.111.114.28:8080
2 2493ffffffffec63eb18516ce50a3dc2667e29d49fb8b9bd7b39ffe94a32c882 202:db60::9ce0:a73d:7498:d7ae 10m22s 1kb 1kb 0 tcp://195.123.245.146:7743
3 91deffffffffe01abab3514ca4cfc27ec04dc261c801d285f0ce06e3314f8b6e 200:dc42::3fca:8a99:5d66:b660 10m22s 2kb 1kb 0 tcp://y.zbin.eu:7743
4 4d758aceabcdd2431559468a27a4cda8d46a3899e27a2d41c26ed599a0b902f0 201:ca29:d4c5:50c8:b6f3:aa9a:e5d7:616c 10m22s 1kb 2kb 0 tcp://158.101.229.219:17002
5 000000c70d438dbb3b7a4712404207070f34e500cd47cef73f26dd54e8f5d591 218:71e5:78e4:8989:b71:db7f:7bf1:f1e1 10m21s 1kb 1kb 0 tcp://yggdrasil.su:62486
6 67a11e59a96032a53896568a4da7e9d091f3cb7741490e0ddebb5db012b8ee12 201:617b:8699:5a7f:356b:1da6:a5d6:c960 10m20s 1kb 1kb 0 tls://[fe80::921b:eff:fe2b:fe3a%enp3s0]:45997
7 00000005d60d541432e5fbabad558d6cca02aaddbb3363fcd3a8421934e4d575 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f 10m20s 1kb 1kb 0 tls://[fe80::13f5:9fe2:6393:bf4a%enp3s0]:38341
8 00000005d60d541432e5fbabad558d6cca02aaddbb3363fcd3a8421934e4d575 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f 10m20s 1kb 1kb 0 tls://[fe80::9bac:3791:1b79:7237%enp3s0]:45997
5 внешних пиров оказалось + 3 в LAN...
Его сетевые интерфейсы (меня в этой теме интересуют
только IPv6):
Код: Выделить всё
olej@nvme:~$ ip -6 a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 fe80::522d:d0bd:b221:a526/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 53049 state UNKNOWN qlen 500
inet6 21c:4cbf:9e0b:2904:301c:1c7a:9715:62c0/7 scope global
valid_lft forever preferred_lft forever
inet6 fe80::aafd:4de2:95b6:4dd5/64 scope link stable-privacy
valid_lft forever preferred_lft forever
И его таблица роутинга ядра для этих интерфейсов:
Код: Выделить всё
olej@nvme:~$ route -n6
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
::1/128 :: U 256 2 0 lo
200::/7 :: U 256 1 0 tun0
fe80::/64 :: U 100 2 0 enp3s0
fe80::/64 :: U 256 1 0 tun0
::/0 :: !n -1 1 0 lo
::1/128 :: Un 0 6 0 lo
200::/128 :: Un 0 3 0 tun0
21c:4cbf:9e0b:2904:301c:1c7a:9715:62c0/128 :: Un 0 3 0 tun0
fe80::/128 :: Un 0 4 0 tun0
fe80::522d:d0bd:b221:a526/128 :: Un 0 3 0 enp3s0
fe80::aafd:4de2:95b6:4dd5/128 :: Un 0 3 0 tun0
ff00::/8 :: U 256 6 0 enp3s0
ff00::/8 :: U 256 2 0 tun0
::/0 :: !n -1 1 0 lo
Yggdrasil через LAN без сервиса Yggdrasil
Добавлено: 22 сен 2023, 22:09
Olej
Olej писал(а): ↑22 сен 2023, 18:58
Есть Yggdrasil Yggdrasil-роутер, работающий в дистрибутиве
Самый
обычный функционирующий хост Yggdrasil с IPv6 21c:4cbf:9e0b
301c
9715:62c0
Убеждаемся:
Код: Выделить всё
olej@nvme:~$ host ygg.linux-ru.lib
ygg.linux-ru.lib has IPv6 address 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771
Код: Выделить всё
olej@nvme:~$ ping -c3 -6 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771
PING 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771(221:58c9:9a6:99be:f3d:c1ac:2b5b:9771) 56 data bytes
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=1 ttl=64 time=865 ms
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=2 ttl=64 time=139 ms
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=3 ttl=64 time=138 ms
--- 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 138.391/380.904/865.453/342.627 ms
Для того чтобы
любой такой хост Yggdrasil превратить в
роутер IPv6 Yggdrasil для всей LAN достаточно:
1. На этом хосте, в системе, разрешить
форвардинг между IPv6 интерфейсами.
2. Просвоить интерфейсу, смотрящему внутрь LAN, любой (произвольный) адрес IPv6 из подсети 300::/64 соответствующей 21c:4cbf:9e0b
301c
9715:62c0 -
Адрес из подсети 300::/64:
Маршрутизация в Yggdrasil работает по принципу сети IPv6 с маской 0200::/7. Коротко поясним содержание этого выражения. Каждая цифра в адресе имеет 16 вариантов написания в шестнадцатиричной системе счисления (0-9, a-f). Для написания подобного значения в двоичной системе счисления, на которой работает почти вся современная электронная техника, требуется четыре бита (цифры 0 или 1): 1=0001, 9=1001, f=1111 и так далее. Непосредственно маску обозначает число семь, указанное через слеш 0200::/7. Это количество бит, которые определяют не узел в сети, а саму сеть. Первый символ 0200 строго входит в маску сети, т.к. число семь полностью покрывает количество четырех битов. На второй символ 0200 приходится не 4 бита, а только 3: 2=0010. Последний бит остается свободным и позволяет указывать тройку вместо двойки: 3=0011. Всего в адресе IPv6 128 бит, 7 из которых, как мы выяснили, относятся к обозначению сети Yggdrasil и всегда остаются неизменными. Оставшийся 121 бит дает пространство адресов для пользователей. Это огромное число, привычная запись которого потребует больше 250 символов!
Нули в начале разряда опускаются, поэтому сеть Yggdrasil можно записать в виде 200::/7. Тем более, что первый ноль является константой.
Две и более секции, состоящие из нулей, можно сократить. Сокращение обозначается в виде двух двоеточий. Например,
сокращается до
. Важно: сократить можно только один фрагмент адреса.
Помимо основной сети 200::/7, каждый адрес Yggdrasil имеет свою подсеть. По задумке, подсети используются для локальной маршрутизации, однако могут использоваться и исключительно в эстетических целях для получения короткого адреса. Подсети Yggdrasil имеют вид 300::/64.
Yggdrasil через LAN без сервиса Yggdrasil
Добавлено: 22 сен 2023, 22:54
Olej
Olej писал(а): ↑22 сен 2023, 22:09
Для того чтобы любой такой хост Yggdrasil превратить в роутер IPv6 Yggdrasil для всей LAN достаточно:
Для того теперь, чтобы
любой хост этой LAN (сколько угодно таких одновременно
) смог ходит в Yggdrasil через сеть 300::/64, нужно на таком хосте:
1. Присвоить интерфейсу, смотрящему внутрь LAN,
любой (произвольный) адрес IPv6 из этой (см.выше) подсети 300::/64
2. Прописать (в таблицу) роутинг к сети 0200::/7 именно через этот адрес.
Yggdrasil через LAN без сервиса Yggdrasil
Добавлено: 22 сен 2023, 23:04
Olej
Olej писал(а): ↑22 сен 2023, 22:09
1. На этом хосте, в системе, разрешить форвардинг между IPv6 интерфейсами.
Код: Выделить всё
olej@nvme:~$ 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: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 10:7b:44:47:a2:47 brd ff:ff:ff:ff:ff:ff
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 53049 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 500
link/none
Для
форвардинга нужно проверить, а скрее всего прописать 1:
Код: Выделить всё
lej@nvme:~$ ls -l /proc/sys/net/ipv6/conf/
итого 0
dr-xr-xr-x 1 root root 0 сен 21 11:57 all
dr-xr-xr-x 1 root root 0 сен 21 11:57 default
dr-xr-xr-x 1 root root 0 сен 21 11:57 enp3s0
dr-xr-xr-x 1 root root 0 сен 22 02:33 lo
dr-xr-xr-x 1 root root 0 сен 22 02:17 tun0
Код: Выделить всё
olej@nvme:~$ ls -l /proc/sys/net/ipv6/conf/enp3s0/forwarding
-rw-r--r-- 1 root root 0 сен 22 02:39 /proc/sys/net/ipv6/conf/enp3s0/forwarding
Код: Выделить всё
olej@nvme:~$ cat /proc/sys/net/ipv6/conf/enp3s0/forwarding
1
Код: Выделить всё
olej@nvme:~$ cat /proc/sys/net/ipv6/conf/*/forwarding
1
1
1
1
1
Или через команду
Код: Выделить всё
olej@nvme:~$ sudo sysctl -w net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.forwarding = 1
Код: Выделить всё
olej@nvme:~$ sudo sysctl net.ipv6.conf.enp3s0.forwarding
net.ipv6.conf.enp3s0.forwarding = 1
Код: Выделить всё
olej@nvme:~$ sudo sysctl net.ipv6.conf.all.forwarding
net.ipv6.conf.all.forwarding = 1
Код: Выделить всё
olej@nvme:~$ sudo sysctl -a | grep ipv6 | grep forwarding
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.enp3s0.forwarding = 1
net.ipv6.conf.enp3s0.mc_forwarding = 0
net.ipv6.conf.lo.forwarding = 1
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.tun0.forwarding = 1
net.ipv6.conf.tun0.mc_forwarding = 0
Yggdrasil через LAN без сервиса Yggdrasil
Добавлено: 22 сен 2023, 23:13
Olej
Olej писал(а): ↑22 сен 2023, 22:09
2. Просвоить интерфейсу, смотрящему внутрь LAN, любой (произвольный) адрес IPv6 из подсети 300::/64 соответствующей 21c:4cbf:9e0b
301c
9715:62c0
Код: Выделить всё
olej@nvme:~$ ip -6 a s dev tun0
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 53049 qdisc pfifo_fast state UNKNOWN group default qlen 500
inet6 21c:4cbf:9e0b:2904:301c:1c7a:9715:62c0/7 scope global
valid_lft forever preferred_lft forever
inet6 fe80::aafd:4de2:95b6:4dd5/64 scope link stable-privacy
valid_lft forever preferred_lft forever
1. меняем 21c:4cbf:... на 31c:4cbf:
2. дописываем в хвост произвольный младший адрес ...::5
3. присваиваем интерфейсу:
Код: Выделить всё
olej@nvme:~$ sudo ip address add 31c:4cbf:9e0b:2904::5/64 dev enp3s0
[sudo] пароль для olej:
olej@nvme:~$ ip -6 a s dev enp3s0
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet6 31c:4cbf:9e0b:2904::5/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::522d:d0bd:b221:a526/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Теперь роутинг автоматом поменяется:
Код: Выделить всё
olej@nvme:~$ route -6n
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
::1/128 :: U 256 2 0 lo
31c:4cbf:9e0b:2904::/64 :: U 256 1 0 enp3s0
200::/7 :: U 256 3 0 tun0
fe80::/64 :: U 100 4 0 enp3s0
fe80::/64 :: U 256 1 0 tun0
::/0 :: !n -1 1 0 lo
::1/128 :: Un 0 6 0 lo
200::/128 :: Un 0 3 0 tun0
21c:4cbf:9e0b:2904:301c:1c7a:9715:62c0/128 :: Un 0 6 0 tun0
31c:4cbf:9e0b:2904::5/128 :: Un 0 2 0 enp3s0
fe80::/128 :: Un 0 4 0 tun0
fe80::522d:d0bd:b221:a526/128 :: Un 0 3 0 enp3s0
fe80::aafd:4de2:95b6:4dd5/128 :: Un 0 3 0 tun0
ff00::/8 :: U 256 6 0 enp3s0
ff00::/8 :: U 256 2 0 tun0
::/0 :: !n -1 1 0 lo
На этом, по идее, с роутером всё
Yggdrasil через LAN без сервиса Yggdrasil
Добавлено: 22 сен 2023, 23:21
Olej
Olej писал(а): ↑22 сен 2023, 23:13
На этом, по идее, с роутером всё
Теперь пошли на любой клиентский хост...
Самый
типовой хост LAN без всяких прибамбасов:
Код: Выделить всё
olej@nvidia:/home$ ip -6 a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 fe80::7271:bcff:fea3:c5c0/64 scope link
valid_lft forever preferred_lft forever
3: wlx008736005357: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 fe80::46a4:9424:cb31:2bd6/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Код: Выделить всё
olej@nvidia:~$ route -6n
Таблица маршрутизация ядра IPv6
Destination Next Hop Flag Met Ref Use If
::1/128 :: U 256 1 0 lo
fe80::/64 :: U 256 3 0 eno1
fe80::/64 :: U 1024 2 0 wlx008736005357
::/0 :: !n -1 1 0 lo
::1/128 :: Un 0 6 0 lo
fe80::46a4:9424:cb31:2bd6/128 :: Un 0 4 0 wlx008736005357
fe80::7271:bcff:fea3:c5c0/128 :: Un 0 4 0 eno1
ff00::/8 :: U 256 4 0 eno1
ff00::/8 :: U 256 5 0 wlx008736005357
::/0 :: !n -1 1 0 lo
Ничего необычного...