这是我的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文件。 (我会省略不相关的或默认的设置)
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为隧道端点添加特定路由,则可以使用。