Как объединить несколько локальных сетей через wireguard, чтобы устройства видели друг друга из разных сетей, при помощи wireguard?
Имеется сервер с wireguard, который выступает в качестве wireguard сервера, имеющий внешний ip на сетевой карте enp3s0. ОС ubuntu server.
Так же имеется виртуальное сетевое устройство wg0, имеющее IP 10.8.0.1.
В данный момент, подключенные клиенты могут спокойно через этот сервер выходить наружу.
Клиент-сервер (Client 2)в роли шлюза в локальной сети, имеет 2 физических сетевых адаптера и 1 от Wireguard.
enp4s0 который смотрит в интернет и через который подключается wireguard к серверу.
wg0 имеющий IP 10.8.0.2
enp3s0 имеющий ip и подсеть 192.168.10.1/23, который раздает сеть в локалку, пуская клиенты наружу через wireguard, через отдельно созданную таблицу маршрутизации inet_wg и:
ip rule add from 10.8.0.2 table inet_wg
ip rule add fwmark 4 table inet_wg
iptables -t nat -A POSTROUTING -s 192.168.10.0/23 ! -d 192.168.10.0/23 -o wg+ -j SNAT --to-source 10.8.0.2 .
И отмаркированный трафик, который необходимо через wireguard гнать.
К этому шлюзу через коммутатор подключены сетевые устройства, которые без проблем выходят в сеть через Wireguard сервер.
Аналогичный client 2 Клиент-сервер (Client 3)в роли шлюза в локальной сети, имеет 2 физических сетевых адаптера и 1 от Wireguard.
enp4s0 который смотрит в интернет и через который подключается wireguard к серверу.
wg0 имеющий IP 10.8.0.3
enp3s0 имеющий ip и подсеть 192.168.88.1/24, который раздает сеть в локалку, пуская клиенты наружу через wireguard, через отдельно созданную таблицу маршрутизации inet_wg и:
ip rule add from 10.8.0.3 table inet_wg
ip rule add fwmark 4 table inet_wg
iptables -t nat -A POSTROUTING -s 192.168.88.0/24! -d 192.168.88.0/24-o wg+ -j SNAT --to-source 10.8.0.3 .
И отмаркированный трафик, который необходимо через wireguard гнать.
К этому шлюзу через коммутатор подключены сетевые устройства, которые без проблем выходят в сеть через Wireguard сервер.
На картинке в графическом виде представлено, как это устроено.
Как сделать так, чтобы устройства одной сети видели устройства в другой сети?
Проблема, так понимаю, заключается только в прописи маршрута и, как я понимаю, только на wireguard сервере?
Если не прописывать маршрут и сделать трасировку с любого устройства из сети Client 3 в сеть client 2 traceroute 192.168.10.1, то:
Трассировка маршрута к 192.168.10.1 с максимальным числом прыжков 30
1 1 ms 1 ms 1 ms 192.168.88.1
2 35 ms 36 ms 34 ms 10.8.0.1
А дальше уже попытки поиска уже снаружи нужного адреса.
Аналогично с client 2 на client3.
Если добавить маршрут на wireguard сервере из одной сети в другую и обратно:
route add -net 192.168.10.0/23 gw 10.8.0.2
route add -net 192.168.88.0/24 gw 10.8.0.3
то, tracert 192.168.10.1
Трассировка маршрута к 192.168.10.1 с максимальным числом прыжков 30
1 2 ms 1 ms 1 ms 192.168.88.1
2 34 ms 34 ms 35 ms 10.8.0.1
3 10.8.0.1 сообщает: Заданный узел недоступен.
Трассировка завершена.
Так же и с wireguard сервера получаем такое:
root@gwwg:/home/vpn# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
From 10.8.0.1 icmp_seq=1 Destination Host Unreachable
ping: sendmsg: Required key not available
ping: sendmsg: Required key not available
From 10.8.0.1 icmp_seq=2 Destination Host Unreachable
^C
--- 192.168.10.1 ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1012ms
root@gwwg:/home/vpn# ping 192.168.88.1
PING 192.168.88.1 (192.168.88.1) 56(84) bytes of data.
From 10.8.0.1 icmp_seq=1 Destination Host Unreachable
ping: sendmsg: Required key not available
From 10.8.0.1 icmp_seq=2 Destination Host Unreachable
ping: sendmsg: Required key not available
^C
--- 192.168.88.1 ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1004ms
Так как же сделать маршрутизацию трафика из одной локальной сети в другую, при посредничестве wireguard сервера, рабочей?