Я пытаюсь добавить статический маршрут на своем VPS к клиенту, который находится на другой стороне VPN-туннеля, к моему VPS и перенаправляет его трафик через туннель.
Это настройка моего пункта назначения, к которому я планирую добавить маршрут. Raspi действует как маршрутизатор, который сам подключен к AP, а NAS подключен к Raspi и перенаправляет свой трафик через туннель VPN:
+--------------------------------+
| Raspi |
(192.168.0.101/24)| |(192.168.1.1/24)
(192.168.0.1/24) AP<>=================={wlan0 eth0}================<>NAS (192.168.1.102/24)
| \ / |
| +----------------------+ |
| | iptables and | |
| | routing engine | |
| +-----------+----------+ |
| | |
| {tun0} |
| 10.8.0.6 |
+--------------------------------+
Я пытаюсь сделать route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.6
, чтобы общаться с моим NAS за Raspi, но я получаю SIOCADDRT: Network is unreachable
.
Это информация на стороне сервера:
$ ifconfig -a
eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:217.B.C.D Bcast:217.B.C.D Mask:255.255.255.255
inet6 addr: XXXX::XXX:XXXX:XXXX:XXXX/XX Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1598 errors:0 dropped:0 overruns:0 frame:0
TX packets:1453 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:176137 (176.1 KB) TX bytes:165179 (165.1 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:460 (460.0 B) TX bytes:460 (460.0 B)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:169 errors:0 dropped:0 overruns:0 frame:0
TX packets:183 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:14825 (14.8 KB) TX bytes:15071 (15.0 KB)
$ netstat -anr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.255.255.1 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.255.255.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
список маршрутов $ ip
default via 10.255.255.1 dev eth0
10.8.0.0/24 via 10.8.0.2 dev tun0
10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
10.255.255.1 dev eth0 scope link
Дополнительная информация:
Если вам интересно, как я добился перенаправления трафика между интерфейсами, вот мой пост, описывающий, как я до сих пор управлял всем с помощью iptables:
Блокировка клиентской сети (в случае p2p топология):
10.8.0.4 : Network address
10.8.0.5 : Virtual remote endpoint; Non pingable; Only used for routing
10.8.0.6 : Client IP address
10.8.0.7 : Network broadcast address
ОБНОВЛЕНИЕ 1:
Я изменил конфигурацию своего VPN-сервера на topology subnet
и ifconfig-push 10.8.0.6 255.255.255.0
в соответствующем ccd
файл для VPN-клиента, чтобы подключить VPN-сервер и клиент к /24
подсеть вместо /32
а затем добавьте маршруты. В это время route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.6
или route add -net 192.168.1.0 netmask 255.255.255.0 dev tun0
не вернул ошибок, но все еще нет ping 192.168.1.102
. netstat -anr
хотя изменилось (в случае route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.6
).
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.255.255.1 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
10.255.255.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
192.168.1.0 10.8.0.6 255.255.255.0 UG 0 0 0 tun0
Я прочитал инструкцию по:
https://openvpn.net/index.php/open-source/documentation/howto.html#scope
И я добавил route 192.168.1.0 255.255.255.0
к server.conf
на моем VPS, а также iroute 192.168.1.0 255.255.255.0
к соответствующему ccd
файл для клиента. А потом я использовал команду route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.6
вот и все! Я мог пинговать свой 192.168.1.102
клиент за моим клиентом OpenVPN с моего VPS: D
P.S: Я все еще в subnet topology
Режим. Я не пробовал нормально p2p topology
, но я думаю, это должно работать хорошо.