Vpn

無法在我的 Ubuntu 中添加靜態路由,SIOCADDRT:網路無法訪問

  • April 4, 2016

我正在嘗試將我的 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 管理所有內容的:

https://unix.stackexchange.com/questions/273926/redirect-secondary-network-interface-traffic-along-with-port-forwarding-to-tun0

客戶端網路塊(在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 subnetifconfig-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.6orroute add -net 192.168.1.0 netmask 255.255.255.0 dev tun0沒有返回錯誤,但仍然沒有ping 192.168.1.102netstat -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.0server.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 客戶端后面 :D

PS:我還在subnet topology模式中。我沒有在正常情況下嘗試過p2p topology,但我認為它應該可以正常工作。

引用自:https://serverfault.com/questions/767878