Страница 3 из 4
туннели сквозь Интернет
Добавлено: 26 окт 2023, 16:55
Olej
Olej писал(а): ↑26 окт 2023, 16:35
И у меня есть будущий ретранслятор
На ретрансляторе, симметрично, создаём встречный конец туннеля...
- проверили трафик Yggdrasil к клиенту:
Код: Выделить всё
olej@esprimop420:~$ ping -c3 201:1171:48a7:6391:3920:2499:1ebd:757f
PING 201:1171:48a7:6391:3920:2499:1ebd:757f(201:1171:48a7:6391:3920:2499:1ebd:757f) 56 data bytes
64 bytes from 201:1171:48a7:6391:3920:2499:1ebd:757f: icmp_seq=1 ttl=64 time=418 ms
64 bytes from 201:1171:48a7:6391:3920:2499:1ebd:757f: icmp_seq=2 ttl=64 time=77.9 ms
64 bytes from 201:1171:48a7:6391:3920:2499:1ebd:757f: icmp_seq=3 ttl=64 time=77.8 ms
--- 201:1171:48a7:6391:3920:2499:1ebd:757f ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 77.839/191.337/418.279/160.472 ms
- строим туннель (точно та же команда, только поменяли местами local и remote IPv6):
Код: Выделить всё
olej@esprimop420:~$ sudo ip link add name ipip6 type ip6tnl local 201:617b:8699:5a7f:356b:1da6:a5d6:c960 remote 201:1171:48a7:6391:3920:2499:1ebd:757f mode ipip6
[sudo] пароль для olej:
- подняли
Код: Выделить всё
olej@esprimop420:~$ sudo ip link set ipip6 up
- присвоили IPv4 этому концу:
Код: Выделить всё
olej@esprimop420:~$ sudo ip address add 172.16.1.1/30 dev ipip6
- проверяем:
Код: Выделить всё
olej@esprimop420:~$ ip a s dev ipip6
5: ipip6@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 53001 qdisc noqueue state UNKNOWN group default qlen 1000
link/tunnel6 201:617b:8699:5a7f:356b:1da6:a5d6:c960 peer 201:1171:48a7:6391:3920:2499:1ebd:757f permaddr 62ff:a701:696d::
inet 172.16.1.1/30 scope global ipip6
valid_lft forever preferred_lft forever
inet6 fe80::60ff:a7ff:fe01:696d/64 scope link
valid_lft forever preferred_lft forever
Код: Выделить всё
olej@esprimop420:~$ ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
enp3s0 UP 192.168.1.138/24 fe80::921b:eff:fe2b:fe3a/64
tun0 UNKNOWN 201:617b:8699:5a7f:356b:1da6:a5d6:c960/7 fe80::e32b:a866:58b6:3dd2/64
ip6tnl0@NONE DOWN
ipip6@NONE UNKNOWN 172.16.1.1/30 fe80::60ff:a7ff:fe01:696d/64
туннели сквозь Интернет
Добавлено: 26 окт 2023, 17:02
Olej
Olej писал(а): ↑26 окт 2023, 16:44
На клиенте:
Olej писал(а): ↑26 окт 2023, 16:55
На ретрансляторе, симметрично, создаём встречный конец туннеля...
И вот только сейчас проверяем прохождение IPv4 трафика через IPv6 туннель...
- с клиента на ретранслятор:
Код: Выделить всё
[olej@xenix ~]$ ping -c3 -Iipip6 172.16.1.1
PING 172.16.1.1 (172.16.1.1) from 172.16.1.2 ipip6: 56(84) bytes of data.
64 bytes from 172.16.1.1: icmp_seq=1 ttl=64 time=295 ms
64 bytes from 172.16.1.1: icmp_seq=2 ttl=64 time=71.1 ms
64 bytes from 172.16.1.1: icmp_seq=3 ttl=64 time=72.3 ms
--- 172.16.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 71.056/146.065/294.822/105.188 ms
- с ретранслятора встречно к клиенту:
Код: Выделить всё
olej@esprimop420:~$ ping -c3 -Iipip6 172.16.1.2
PING 172.16.1.2 (172.16.1.2) from 172.16.1.1 ipip6: 56(84) bytes of data.
64 bytes from 172.16.1.2: icmp_seq=1 ttl=64 time=286 ms
64 bytes from 172.16.1.2: icmp_seq=2 ttl=64 time=70.7 ms
64 bytes from 172.16.1.2: icmp_seq=3 ttl=64 time=78.0 ms
--- 172.16.1.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 70.709/145.059/286.444/100.018 ms
Характерно для Yggdrasil видно прохождение через "мировое пространство": 1-й ping медленный (установлене трассы) + дальше ping-и быстрые...
Т.е. мои 172.16.1.0/30 хосты гонят трайфик ... через фиг знает сколько километров в Интернет пространстве
туннели сквозь Интернет
Добавлено: 26 окт 2023, 17:17
Olej
Olej писал(а): ↑26 окт 2023, 17:02
Т.е. мои 172.16.1.0/30 хосты гонят трайфик ... через фиг знает сколько километров в Интернет пространстве
Вернуться к началу
Трасса с клиента к ретранслятору:
Код: Выделить всё
[olej@xenix IPv6]$ traceroute -iipip6 172.16.1.1
traceroute to 172.16.1.1 (172.16.1.1), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 172.16.1.1 (172.16.1.1) 416.552 ms 67.350 ms 67.497 ms
И навстречу:
Код: Выделить всё
olej@esprimop420:~$ traceroute -iipip6 172.16.1.2
traceroute to 172.16.1.2 (172.16.1.2), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 172.16.1.2 (172.16.1.2) 349.596 ms 69.227 ms 70.231 ms
Как всегда в Yggdrasil промежуточные ноды не отвечают IP, но они фиксируются...
туннели сквозь Интернет
Добавлено: 26 окт 2023, 17:21
Olej
Olej писал(а): ↑26 окт 2023, 17:02
- с клиента на ретранслятор
И вот как теперь выглядит таблица роутинга ядра на клиенте (на сервере будет аналогично - пока у нас всё симметрично):
Код: Выделить всё
[olej@xenix IPv6]$ route -46n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.3 0.0.0.0 UG 100 0 0 enp2s0
172.16.1.0 0.0.0.0 255.255.255.252 U 0 0 0 ipip6
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp2s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
200::/7 :: U 256 9 0 tun0
fe80::/64 :: U 256 2 0 tun0
fe80::/64 :: U 256 1 0 ipip6
fe80::/64 :: U 1024 6 0 enp2s0
::/0 :: !n -1 1 0 lo
::1/128 :: Un 0 6 0 lo
201:1171:48a7:6391:3920:2499:1ebd:757f/128 :: Un 0 10 0 tun0
fe80::4d63:6d0:bffc:d07b/128 :: Un 0 2 0 tun0
fe80::bdc9:d183:f9c0:ff56/128 :: Un 0 6 0 enp2s0
fe80::c06c:a7ff:fea8:38d1/128 :: Un 0 2 0 ipip6
ff00::/8 :: U 256 9 0 enp2s0
ff00::/8 :: U 256 2 0 tun0
ff00::/8 :: U 256 1 0 ipip6
::/0 :: !n -1 1 0 lo
Это поизучать любопытно
Или так:
Код: Выделить всё
[olej@xenix IPv6]$ ip -4 r
default via 192.168.1.3 dev enp2s0 proto static metric 100
172.16.1.0/30 dev ipip6 proto kernel scope link src 172.16.1.2
192.168.1.0/24 dev enp2s0 proto kernel scope link src 192.168.1.20 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
Код: Выделить всё
[olej@xenix IPv6]$ ip -6 r
200::/7 dev tun0 proto kernel metric 256 pref medium
fe80::/64 dev tun0 proto kernel metric 256 pref medium
fe80::/64 dev ipip6 proto kernel metric 256 pref medium
fe80::/64 dev enp2s0 proto kernel metric 1024 pref medium
туннели сквозь Интернет
Добавлено: 26 окт 2023, 19:18
Olej
Olej писал(а): ↑26 окт 2023, 17:02
- с клиента на ретранслятор:
Причём (как это видно и из таблицы роутинга), ping в 172.16.1.2.0/30 роутится в ipip6 и без явного указания интерфейса:
Код: Выделить всё
[olej@xenix ~]$ ping -c3 172.16.1.1
PING 172.16.1.1 (172.16.1.1) 56(84) bytes of data.
64 bytes from 172.16.1.1: icmp_seq=1 ttl=64 time=434 ms
64 bytes from 172.16.1.1: icmp_seq=2 ttl=64 time=75.7 ms
64 bytes from 172.16.1.1: icmp_seq=3 ttl=64 time=73.7 ms
--- 172.16.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 73.673/194.377/433.768/169.276 ms
При том, что ping непосредственно через Ethernet сквозь LAN, естественно, не идёт:
Код: Выделить всё
[olej@xenix ~]$ ping -c3 -Ienp2s0 172.16.1.1
PING 172.16.1.1 (172.16.1.1) from 192.168.1.20 enp2s0: 56(84) bytes of data.
--- 172.16.1.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2065ms
Это похоже на то что хотелось бы получить
С
контролем действия.
туннели сквозь Интернет
Добавлено: 26 окт 2023, 21:13
Olej
Olej писал(а): ↑26 окт 2023, 16:21
это будет задача №1
Задача №2 - это явное перенаправление роутинга Yggdrasil
внешних пиров у
клиента - через дефаултный шлюз LAN
Код: Выделить всё
[olej@xenix ~]$ sudo yggdrasilctl getPeers | grep tcp:// | cut -f8
tcp://195.123.245.146:7743
tcp://yggdrasil.su:62486
tcp://y.zbin.eu:7743
tcp://51.15.204.214:12345
tcp://158.101.229.219:17002
От автора оригинальной статьи:
Подставьте вместо XX.XX.XX.XX/32 ip адрес вашего пира, а вместо YY.YY.YY.YY ip адрес
вашего домашнего роутера, wifi0 - замените на интерфейс на котором у вас ваша домашняя
сеть.
Код: Выделить всё
sudo ip route add XX.XX.XX.XX/32 via YY.YY.YY.YY dev wifi0
Тут нужно пояснить. У вас в Yggdrasil прописан как минимум один peer через которого вы
выходите в сеть.
Так вот нам нужно что-бы соединение с этим пиром шло обязательно через "клирнет", не через
сеть Yggdrasil.
Потому-что мы не можем соединиться с сетью Yggdrasil через неё же саму, получается
зацикливание. Из-за этого ничего работать не будет.
Для этого нам и нужен маршрут, который будет всегда "роутить" соединение до пира через
обычный интернет. Как раз это правило маршрутизации нам в этом поможет.
Тут у нас прототипом (чтобы не гадать и не ошибиться) будет дефаултная строка (Destination 0.0.0.0) роутинга в LAN на хосте клиента:
Код: Выделить всё
[olej@xenix ~]$ route -4n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.3 0.0.0.0 UG 100 0 0 enp2s0
172.16.1.0 0.0.0.0 255.255.255.252 U 0 0 0 ipip6
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp2s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
туннели сквозь Интернет
Добавлено: 26 окт 2023, 21:29
Olej
Olej писал(а): ↑26 окт 2023, 21:13
Тут нужно пояснить. У вас в Yggdrasil прописан как минимум один peer через которого вы
выходите в сеть.
Так вот нам нужно что-бы соединение с этим пиром шло обязательно через "клирнет", не через
сеть Yggdrasil.
Я совсем не уверено, что нужно прописать
только один внешний пир...
В моём случае, выше, при активизации туннеля 4 остальные пира будут ходить по кругу ("через задницу"
) ... это возможно будет работающее. Но рисковать для начала не хочется.
Доразрешаю в IPv4 неразрешённые URL:
Код: Выделить всё
[olej@xenix ~]$ host yggdrasil.su
yggdrasil.su has address 94.130.176.250
yggdrasil.su mail is handled by 10 mail.yggdrasil.su.
[olej@xenix ~]$ host y.zbin.eu
y.zbin.eu has address 77.247.225.234
Итого имею джентльменский набор IPv4 которые нужно принудительно направить на роутер из LAN в Интернет:
195.123.245.146
yggdrasil.su -> 94.130.176.250
y.zbin.eu -> 77.247.225.234
51.15.204.214
158.101.229.219
(Все из них я естественно проверил ping на доступность + на время ответа ... но это уже не существенные мелочи).
туннели сквозь Интернет
Добавлено: 26 окт 2023, 21:44
Olej
Olej писал(а): ↑26 окт 2023, 21:29
джентльменский набор IPv4 которые нужно принудительно направить на роутер из LAN в Интернет:
Код: Выделить всё
[olej@xenix ~]$ sudo ip route add 195.123.245.146/32 via 192.168.1.3 dev enp2s0
Код: Выделить всё
[olej@xenix ~]$ sudo ip route add 94.130.176.250/32 via 192.168.1.3 dev enp2s0
Код: Выделить всё
[olej@xenix ~]$ sudo ip route add 77.247.225.234/32 via 192.168.1.3 dev enp2s0
Код: Выделить всё
[olej@xenix ~]$ sudo ip route add 51.15.204.214/32 via 192.168.1.3 dev enp2s0
Код: Выделить всё
[olej@xenix ~]$ sudo ip route add 158.101.229.219/32 via 192.168.1.3 dev enp2s0
Вот так теперь:
Код: Выделить всё
[olej@xenix ~]$ route -4n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.3 0.0.0.0 UG 100 0 0 enp2s0
51.15.204.214 192.168.1.3 255.255.255.255 UGH 0 0 0 enp2s0
77.247.225.234 192.168.1.3 255.255.255.255 UGH 0 0 0 enp2s0
94.130.176.250 192.168.1.3 255.255.255.255 UGH 0 0 0 enp2s0
158.101.229.219 192.168.1.3 255.255.255.255 UGH 0 0 0 enp2s0
172.16.1.0 0.0.0.0 255.255.255.252 U 0 0 0 ipip6
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp2s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
195.123.245.146 192.168.1.3 255.255.255.255 UGH 0 0 0 enp2s0
По геометрии (трассе) Yggdrasil ничего не заметил:
Код: Выделить всё
[olej@xenix ~]$ sudo yggdrasilctl getSelf
Build name: yggdrasil
Build version: 0.4.7
IPv6 address: 201:1171:48a7:6391:3920:2499:1ebd:757f
IPv6 subnet: 301:1171:48a7:6391::/64
Coordinates: [1 181 360 147]
Public key: 7ba3add6271bb1b7f6d9b850a2a00b57db7179a82d162afc0e15889f62aa0773
... потому что роутился туда же - по дефаулту, а теперь - принудительно.
Но при включении туннеля разница может быть
туннели сквозь Интернет
Добавлено: 26 окт 2023, 21:50
Olej
Olej писал(а): ↑26 окт 2023, 21:44
По геометрии (трассе) Yggdrasil ничего не заметил:
Но проверю, что не нарушил работу IPv6 хоста ... - ping на URL этого форума, зарегистрированный в EmerDNS (
OpenNIC DNS и EmerCoin) ... на расстоянии >4000 км:
Код: Выделить всё
[olej@xenix ~]$ ping -c3 ygg.linux-ru.lib
PING ygg.linux-ru.lib(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=138 ms
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=2 ttl=64 time=137 ms
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=3 ttl=64 time=137 ms
--- ygg.linux-ru.lib ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 137.016/137.335/137.662/0.263 ms
Всё ходит
туннели сквозь Интернет
Добавлено: 26 окт 2023, 22:21
Olej
Olej писал(а): ↑26 окт 2023, 21:13
Задача №2
Задача №3
Настройка iptables
Теперь мы напишем правила для iptables , которые проведут наш трафик из туннеля в интернет.
Теперь оставим на время в покое
клиента, и перейдём мордовать
ретранслятор...
Только у меня не iptables, а nftables, см.
nftables вместо iptables:
Код: Выделить всё
root@esprimop420:~# uname -r
6.1.0-12-amd64
Код: Выделить всё
[code]
root@esprimop420:~# iptables --version
iptables v1.8.9 (nf_tables)
Поэтому я буду рассчитывать на совместимость (синтаксиса команд iptables) + проделаю это всё не спеша, с контролем результатов, но используя для контроля команды nftables.
Исходное состояние таблиц:
Код: Выделить всё
olej@esprimop420:~$ sudo nft list tables
table ip filter
table ip6 filter
Код: Выделить всё
olej@esprimop420:~$ sudo nft list table ip filter
table ip filter {
}
Код: Выделить всё
olej@esprimop420:~$ sudo nft list table ip6 filter
table ip6 filter {
}