4.
Маршрутизация
Теперь нам нужно отправить наш ipv4 трафик на vps. На локальной машине нам нужно будет
создать пару маршрутов.
Подставьте вместо 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 через неё же саму, получается
зацикливание. Из-за этого ничего работать не будет.
Для этого нам и нужен маршрут, который будет всегда "роутить" соединение до пира через
обычный интернет. Как раз это правило маршрутизации нам в этом поможет.
Тут не очень понятное место...
Чтоб не промахнуться относительно пиров Yggdrasil, начну с этого:
Код: Выделить всё
[olej@xenix ~]$ systemctl status --no-pager --full yggdrasil
● yggdrasil.service - yggdrasil
Loaded: loaded (/etc/systemd/system/yggdrasil.service; enabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: active (running) since Wed 2023-10-25 09:53:14 EEST; 7h ago
Main PID: 1442 (yggdrasil)
Tasks: 16 (limit: 9337)
Memory: 14.5M
CGroup: /system.slice/yggdrasil.service
└─1442 /usr/local/sbin/yggdrasil -useconffile /etc/yggdrasil.conf
окт 25 16:47:11 xenix.localdomain yggdrasil[1442]: 2023/10/25 16:47:11 Disconnected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::9bac:3791:1b79:7237, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:34079; error: read tcp [fe80::bdc9:d183:f9c0:ff56%enp2s0]:34079->[fe80::9bac:3791:1b79:7237%enp2s0]:45111: i/o timeout
окт 25 16:50:51 xenix.localdomain yggdrasil[1442]: 2023/10/25 16:50:51 Connected outbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::9bac:3791:1b79:7237, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:52061
окт 25 16:50:53 xenix.localdomain yggdrasil[1442]: 2023/10/25 16:50:53 Connected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::13f5:9fe2:6393:bf4a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:34079
окт 25 16:52:03 xenix.localdomain yggdrasil[1442]: 2023/10/25 16:52:03 Disconnected outbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::9bac:3791:1b79:7237, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:52061
окт 25 16:52:03 xenix.localdomain yggdrasil[1442]: 2023/10/25 16:52:03 Disconnected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::13f5:9fe2:6393:bf4a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:34079
окт 25 16:52:04 xenix.localdomain yggdrasil[1442]: 2023/10/25 16:52:04 Failed to dial TLS [fe80::9bac:3791:1b79:7237]:45605: dial tcp [fe80::bdc9:d183:f9c0:ff56%enp2s0]:0->[fe80::9bac:3791:1b79:7237%enp2s0]:45605: connect: connection refused
окт 25 16:52:05 xenix.localdomain yggdrasil[1442]: 2023/10/25 16:52:05 Failed to dial TLS [fe80::9bac:3791:1b79:7237]:45605: dial tcp [fe80::bdc9:d183:f9c0:ff56%enp2s0]:0->[fe80::9bac:3791:1b79:7237%enp2s0]:45605: connect: connection refused
окт 25 16:52:06 xenix.localdomain yggdrasil[1442]: 2023/10/25 16:52:06 Failed to dial TLS [fe80::9bac:3791:1b79:7237]:45605: dial tcp [fe80::bdc9:d183:f9c0:ff56%enp2s0]:0->[fe80::9bac:3791:1b79:7237%enp2s0]:45605: connect: connection refused
окт 25 16:56:39 xenix.localdomain yggdrasil[1442]: 2023/10/25 16:56:39 Connected outbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::13f5:9fe2:6393:bf4a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:51851
окт 25 16:56:41 xenix.localdomain yggdrasil[1442]: 2023/10/25 16:56:41 Connected outbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::9bac:3791:1b79:7237, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:51677
Здесь видно используемый конф., у меня их может быть несколько...
Код: Выделить всё
[olej@xenix ~]$ sudo yggdrasilctl getpeers
[sudo] пароль для olej:
Port Public Key IP Address Uptime RX TX Pr URI
1 2493ffffffffec63eb18516ce50a3dc2667e29d49fb8b9bd7b39ffe94a32c882 202:db60::9ce0:a73d:7498:d7ae 7h48m52s 795kb 446kb 0 tcp://195.123.245.146:7743
2 0000000230d4e2faac3a016ed5a5541a1e89bf6640ffd1e083be71e8dae575db 21e:e795:8e82:a9e2:ff48:952d:55f2:f0bb 7h16m0s 624kb 125kb 0 tcp://51.15.204.214:12345
3 91deffffffffe01abab3514ca4cfc27ec04dc261c801d285f0ce06e3314f8b6e 200:dc42::3fca:8a99:5d66:b660 7h48m52s 529kb 259kb 0 tcp://y.zbin.eu:7743
4 000000c70d438dbb3b7a4712404207070f34e500cd47cef73f26dd54e8f5d591 218:71e5:78e4:8989:b71:db7f:7bf1:f1e1 2h22m59s 40kb 19kb 0 tcp://yggdrasil.su:62486
5 4d758aceabcdd2431559468a27a4cda8d46a3899e27a2d41c26ed599a0b902f0 201:ca29:d4c5:50c8:b6f3:aa9a:e5d7:616c 7h48m52s 43kb 132kb 0 tcp://158.101.229.219:17002
6 00000005d60d541432e5fbabad558d6cca02aaddbb3363fcd3a8421934e4d575 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f 45m28s 8kb 8kb 0 tls://[fe80::13f5:9fe2:6393:bf4a]:44937
7 00000005d60d541432e5fbabad558d6cca02aaddbb3363fcd3a8421934e4d575 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f 45m26s 4kb 4kb 0 tls://[fe80::9bac:3791:1b79:7237]:42657
8 0000000d9a030fa6b7de7f1f1c2b4754e9fb66086cf971f7997576e842902ef4 21c:4cbf:9e0b:2904:301c:1c7a:9715:62c0 7h48m51s 131kb 1010kb 0 tls://[fe80::522d:d0bd:b221:a526%enp2s0]:41241
Нужно думать, что в описании имеются в виду
внешние IPv4 пиры...
Пробую в качестве XX.XX.XX.XX - 195.123.245.146
На всякий случай (жив ли?):
Код: Выделить всё
[olej@xenix ~]$ ping -c3 195.123.245.146
PING 195.123.245.146 (195.123.245.146) 56(84) bytes of data.
64 bytes from 195.123.245.146: icmp_seq=1 ttl=54 time=35.5 ms
64 bytes from 195.123.245.146: icmp_seq=2 ttl=54 time=35.4 ms
64 bytes from 195.123.245.146: icmp_seq=3 ttl=54 time=35.3 ms
--- 195.123.245.146 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 35.324/35.408/35.470/0.061 ms
А по поводу дефаултного интерфейса LAN:
Код: Выделить всё
[olej@xenix IPv6]$ ip a s dev enp2s0
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 90:1b:0e:2b:e1:9c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.20/24 brd 192.168.1.255 scope global noprefixroute enp2s0
valid_lft forever preferred_lft forever
inet6 31c:4cbf:9e0b:2904::4/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::bdc9:d183:f9c0:ff56/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Код: Выделить всё
[olej@xenix IPv6]$ ip r s
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
IPv4 роутится с этого хоста через интерфейс enp2s0 на IP шлюза 192.168.1.3
Итого ... решением этой головоломки будет:
Код: Выделить всё
[code]
[olej@xenix ~]$ sudo ip route add 195.123.245.146/32 via 192.168.1.3 dev enp2s0
[sudo] пароль для olej:
Код: Выделить всё
[olej@xenix IPv6]$ ip r s
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
195.123.245.146 via 192.168.1.3 dev enp2s0
Вот эта последняя строка...