Я пытаюсь добавить статический маршрут в моем VPS к клиенту, который находится на другой стороне туннеля VPN, к моему VPS и перенаправляет его трафик через туннель.
Это настройка моего пункта назначения, к которому я планирую добавить маршрут. Raspi действует как маршрутизатор, который сам подключен к точке доступа, а 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