OpenVPN的redirect网关打破了其他隧道

这是我的ifconfig设置:

eth1 Link encap:Ethernet HWaddr 54:04:a6:49:99:16 inet addr:192.168.0.12 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::5604:a6ff:fe49:9916/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:33325389 errors:0 dropped:0 overruns:0 frame:0 TX packets:19876569 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:38511610122 (38.5 GB) TX bytes:5030880286 (5.0 GB) 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:1532251 errors:0 dropped:0 overruns:0 frame:0 TX packets:1532251 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:128544929 (128.5 MB) TX bytes:128544929 (128.5 MB) 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.6 PtP:10.8.0.5 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:113 errors:0 dropped:0 overruns:0 frame:0 TX packets:1663663 errors:0 dropped:489668 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:14523 (14.5 KB) TX bytes:1140762511 (1.1 GB) tun1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.9.0.6 PtP:10.9.0.5 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:1623870 errors:0 dropped:570939 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:828 (828.0 B) TX bytes:1130753499 (1.1 GB) wlan0 Link encap:Ethernet HWaddr 00:21:00:e6:c8:aa UP BROADCAST 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:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) 

所以我有这个IP路由设置:

 default via 192.168.0.1 dev eth1 proto static 10.8.0.0/24 via 10.8.0.5 dev tun0 10.8.0.5 dev tun0 proto kernel scope link src 10.8.0.6 10.9.0.0/24 via 10.9.0.5 dev tun1 10.9.0.5 dev tun1 proto kernel scope link src 10.9.0.6 192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.12 metric 1 192.168.1.0/24 via 10.8.0.5 dev tun0 

它按预期工作。 我可以通过两个隧道(openvpn)ping机器。

但是,当我补充

 sudo ip route add 0.0.0.0/1 via 10.9.0.5 dev tun1 sudo ip route add 128.0.0.0/1 via 10.9.0.5 dev tun1 

一切都打破了 我不能再通过隧道ping机器。

我真的不明白为什么。 因为我有一个“更高的前缀”路由定义为

 10.8.0.0/24 via 10.8.0.5 dev tun0 

为什么新的“较低前缀”路由阻止我ping 10.8.0.1?


对于上下文,我正在运行一个openvpn服务器,这个客户端连接并分配了10.8.0.6 ip。 之后,它连接到另一个连接到同一个“原始”服务器(10.8.0.1)的openvpn服务器(10.8.0.10)。 第一个服务器本质上只是把我放在与第二个服务器相同的子网(第二个服务器没有静态IP,不能被端口转发)。 我正在添加的2个低前缀路由是“redirect网关”选项的一部分,因为我试图通过第二台服务器转发所有stream量。


编辑:

我正在添加所有的configuration文件。 (我会省略不相关的或默认的设置)

  • 主要是试图实现互联网stream量路由的主要客户端
  • alpha>将每个人放在同一个子网上的服务器
  • beta>主要想要路由stream量的服务器/客户端。 (请注意,beta没有静态IP,不能作为port forwaded)

alpha server.conf

 port 443 proto udp dev tun server 10.8.0.0 255.255.255.0 client-to-client # broadcast beta's subnet route 192.168.1.0 255.255.255.0 push "route 192.168.1.0 255.255.255.0" 

beta client.conf(用于连接到alpha服务器)

 client dev tun proto udp remote [alpha IP] 443 

beta server.conf(stream量应该通过这个服务器路由)

 port 444 proto udp dev tun server 10.9.0.0 255.255.255.0 client-to-client push "redirect-gateway local def1" push "dhcp-option DNS 8.8.8.8" 

主要的alpha client.conf

 client dev tun proto udp remote [alpha IP] 443 

主要的beta client.conf

 client dev tun proto udp remote 10.8.0.10 444 

编辑2:

我试图在alpha服务器上使用反向SSH隧道,而不是使用中间openvpn服务器,但是我有完全相同的问题。

像这样从testing隧道

 ssh -Nf -R \*:444:localhost:444 root@[alpha IP] 

并改变了主要的client.conf连接到[alpha IP]:444而不是10.8.0.10。

configuration工作完美没有redirect网关,但只要redirect网关添加了0.0.0.0/1和128.0.0.0/1路由,我不能再ping任何地方。

您将您的隧道的外部端点路由到隧道地址。 这是行不通的。 如果通过eth1为隧道端点添加特定路由,则可以使用。