Я хочу настроить между двумя местоположениями сеть vpn с защитой от проводов. В настоящее время у меня есть рабочее соединение между моим udoo в местоположении a и моим вторым udoo в местоположении b, но я хочу также подключиться к другим серверам через сервер Wireguard, который находится за сетью vpn (192.168.178.0/24). На странице Arch Wiki я кое-что прочитал о маршрутизации с NAT, но это не работает. Поэтому я не знаю, как правильно настроить маршрутизаторы.
Вот некоторая информация о моей сети.
+------------------------------------------------------+--------------------------------------------+-------------+
| description | lan ip/prefix | wan |
+------------------------------------------------------+--------------------------------------------+-------------+
| Subnet - Location A | 192.168.178.0/24 | |
| Subnet - Location B | 192.168.179.0/24 | |
| Subnet - VPN | 192.168.180.0/24 | |
| fileserver.localtion-a.example.com | 192.168.178.100 | |
| router.location-a.example.com | 192.168.178.13, 192.168.180.1 | 88.47.69.5 |
| router.location-b.example.com | 192.168.179.10, 192.168.180.3 | dynamic ip |
| computer.localtion-b.example.com | 192.168.179.20 | |
+------------------------------------------------------+--------------------------------------------+-------------+
Я использую systemd-networkd для настройки сетевых интерфейсов во всех системах. Для стендовых систем udoo я определил маршруты. Вот мои интерфейсы systemd-networkd без открытых, закрытых и предварительных ключей.
[NetDev]
Name = wg0
Kind = wireguard
Description = Wireguard
[WireGuard]
ListenPort = 51820
PrivateKey = <removed>
[WireGuardPeer]
PublicKey = <removed>
PresharedKey = <removed>
AllowedIPs = 192.168.178.0/24, 192.168.179.0/24, 192.168.180.3/24
[Match]
Name = wg0
[Network]
Address=192.168.180.1/32
[Route]
Gateway=192.168.180.1
Destination=192.168.179.0/24
GatewayOnlink=true
[Route]
Gateway=192.168.180.1
Destination=192.168.180.0/24
[NetDev]
Name = wg0
Kind = wireguard
Description = Wireguard
[WireGuard]
ListenPort = 51820
PrivateKey = <removed>
[WireGuardPeer]
PublicKey = <removed>
PresharedKey = <removed>
AllowedIPs = 192.168.178.0/24, 192.168.179.0/24, 192.168.180.0/24
Endpoint = 88.47.69.5:51820
PersistentKeepalive = 25
[Match]
Name=wg0
[Network]
Address=192.168.180.3/32
[Route]
Gateway=192.168.180.1
Destination=192.168.178.0/24
GatewayOnlink=true
[Route]
Gateway=192.168.180.1
Destination=192.168.180.0/24
GatewayOnlink=true
Чтобы правильно маршрутизировать соединения на 192.168.178.13, я определил новый файл конфигурации на /etc/sysctl.d/99-sysctl.conf
со следующим содержанием:
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
Теперь, когда я на своем udoo (router.location-b.example.com) и хочу пропинговать свой файловый сервер (192.168.178.100), я не получаю никаких действий. То же и с traceroute.
$ ping 192.168.178.100
PING 192.168.178.100 (192.168.178.100) 56(84) bytes of data.
^C
--- 192.168.178.100 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3035ms
$ traceroute 192.168.178.100
traceroute to 192.168.178.100 (192.168.178.100), 30 hops max, 60 byte packets
1 192.168.180.1 (192.168.180.1) 42.275 ms 41.707 ms 42.814 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 *^C
Но в чем проблема конфигурации?
Волкер