Routing

設置 OpenVPN 連結時的路由問題

  • January 17, 2018

我正在嘗試在以下配置中設置 openvpn 連結。

筆記型電腦 –> server1 –> server2 –> Internet

VPN 連結在筆記型電腦和 server1 以及 server1 和 server2 之間單獨工作。但是,當我將它們放在一起時,筆記型電腦和 server1 之間的連結總是斷開。我嘗試調試連接問題,發現來自筆記型電腦的數據包在到達 server1 的 eth0 介面後被丟棄,並且沒有到達 tun0。下面是server1的輸出ifconfig和輸出ip route show

eth0      Link encap:Ethernet  HWaddr 8e:9b:25:9e:a7:56  
         inet addr:X.X.X.6  Bcast:159.89.143.255  Mask:255.255.240.0
         inet6 addr: fe80::8c9b:25ff:fe9e:a756/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:4185 errors:0 dropped:0 overruns:0 frame:0
         TX packets:3403 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:923402 (923.4 KB)  TX bytes:797425 (797.4 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:163 errors:0 dropped:0 overruns:0 frame:0
         TX packets:163 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1 
         RX bytes:11987 (11.9 KB)  TX bytes:11987 (11.9 KB)

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:1524 errors:0 dropped:0 overruns:0 frame:0
         TX packets:1072 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:100 
         RX bytes:141416 (141.4 KB)  TX bytes:263278 (263.2 KB)

tun1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
         inet addr:10.8.1.6  P-t-P:10.8.1.5  Mask:255.255.255.255
         UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:100 
         RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ip route輸出:

0.0.0.0/1 via 10.8.1.5 dev tun1 
default via X.X.X.1 dev eth0 onlink
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.8.1.1 via 10.8.1.5 dev tun1
10.8.1.5 dev tun1  proto kernel  scope link  src 10.8.1.6
128.0.0.0/1 via 10.8.1.5 dev tun1 
X.X.X.0/20 dev eth0  proto kernel  scope link  src X.X.X.6 
Y.Y.Y.Y via X.X.X.1 dev eth0

有人可以幫我調試這個問題嗎?

您尚未發布任何客戶端/伺服器配置。但我懷疑您的兩個配置都可能試圖更改預設網關。當您連接到第二個 VPN 時,這將是一個問題,因為它會清除允許您訪問該伺服器 2 的路由。

如果沒有配置,或者沒有包含所有系統的所有地址的良好網路圖,我無法真正給你具體細節,但我最好的猜測是你需要讓你的 VPN 到伺服器一個有一個專門為 server1 之間的子網定義的路由和 server2 通過 server1 VPN 隧道介面,儘管您可能希望將其擴展為包含任何 server1 介面本地的所有子網的路由。

PS 與答案無關,但您似乎對兩個 VPN 都使用了 net_30 拓撲。這是一個令人討厭的功能,只有真正老客戶的向後兼容性才需要。考慮將所有內容切換到topology subnet.

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