無法在我的 Ubuntu 中添加靜態路由,SIOCADDRT:網路無法訪問
我正在嘗試將我的 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
,以便與我在 Raspi 後面的 NAS 進行通信,但我得到了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 伺服器配置更改為 VPN 客戶端
topology subnet
的ifconfig-push 10.8.0.6 255.255.255.0
相應ccd
文件,以便將 VPN 伺服器和客戶端帶入/24
子網,而不是/32
添加路由。這次route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.6
orroute 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
,就是這樣!我可以從我的 VPS ping 我的192.168.1.102
客戶端在我的 OpenVPN 客戶端后面 :DPS:我還在
subnet topology
模式中。我沒有在正常情況下嘗試過p2p topology
,但我認為它應該可以正常工作。