我觉得这似乎是一个奇怪的问题。情况如下。我通过 openvpn(udp 协议)设置了一个站点到站点环境,大多数服务器和工作站可以访问另一个站点,但有几台服务器失败了。我的环境如下,
地点 A
Subnet 192.168.11.0/24
Gateway to Internet: 192.168.11.1
OpenVpn server: 192.168.11.211(LAN), 10.0.0.11(tun)
站点 B,
Subnet 192.168.1.0/24
Gateway to Internet: 192.168.1.1
OpenVPN server: 192.168.1.211(LAN), 10.0.0.1(tun)
大多数服务器都可以访问其他站点。例如,我从工作站 192.168.11.103 运行 ping 并且可以访问 192.168.1.60
PING 192.168.1.60 (192.168.1.60): 56 data bytes
92 bytes from 192.168.11.1: Redirect Host(New addr: 192.168.11.211)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 27df 0 0000 40 01 c4d6 192.168.11.103 192.168.1.60
64 bytes from 192.168.1.60: icmp_seq=0 ttl=62 time=50.677 ms
64 bytes from 192.168.1.60: icmp_seq=1 ttl=62 time=46.558 ms
64 bytes from 192.168.1.60: icmp_seq=2 ttl=62 time=25.199 ms
但是我无法访问 192.168.1.61
PING 192.168.1.61 (192.168.1.61): 56 data bytes
92 bytes from 192.168.11.1: Redirect Host(New addr: 192.168.11.211)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 722c 0 0000 40 01 7a88 192.168.11.103 192.168.1.61
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
我肯定在 192.168.1.61 上设置了静态路由
192.168.11.0 255.255.255.0 192.168.1.211 1
我甚至可以从 192.168.1.61 ping 回去
>ping 192.168.11.103
正在 Ping 192.168.11.103 具有 32 字节的数据:
来自 192.168.11.103 的回复: 字节=32 时间=114ms TTL=62
来自 192.168.11.103 的回复: 字节=32 时间=102ms TTL=61
来自 192.168.11.103 的回复: 字节=32 时间=102ms TTL=61
来自 192.168.11.103 的回复: 字节=32 时间=23ms TTL=61
请谅解,我的服务器运行的是中文版操作系统。
我在两端运行跟踪路由,得到以下结果
$ traceroute 192.168.1.60 //weird, you can see above that this server can be reached by ping.
traceroute to 192.168.1.60 (192.168.1.60), 64 hops max, 52 byte packets
1 192.168.11.1 (192.168.11.1) 1.931 ms 1.858 ms 2.591 ms
2 10.0.0.1 (10.0.0.1) 25.274 ms 23.538 ms 23.927 ms
3 * * *
4 * * *
5 * * *
6 * * *
//truncated.
而对于我无法访问的服务器,我在 traceroute 上得到了相同的响应。
traceroute 192.168.1.61
traceroute to 192.168.1.61 (192.168.1.61), 64 hops max, 52 byte packets
1 192.168.11.1 (192.168.11.1) 3.193 ms 2.823 ms 1.988 ms
2 10.0.0.1 (10.0.0.1) 24.394 ms * 23.029 ms
3 * * *
4 * * *
5 * * *
6 * * *
//truncated.
我决定查看另一台可以访问的服务器(64 bytes from 192.168.1.30: icmp_seq=13339 ttl=126 time=65.530 ms
)并得到了完美的响应。
traceroute 192.168.1.30
traceroute to 192.168.1.30 (192.168.1.30), 64 hops max, 52 byte packets
1 192.168.11.1 (192.168.11.1) 6.746 ms 1.813 ms 2.417 ms
2 10.0.0.1 (10.0.0.1) 22.344 ms 22.521 ms 23.538 ms
3 192.168.1.30 (192.168.1.30) 22.876 ms * 102.062 ms
因为我可以从 192.168.1.61 ping 回去,所以我也做了 tracert,并且响应对我来说很好。
>tracert 192.168.11.103
通过最多 30 个跃点跟踪
到 mymachine [192.168.11.103] 的路由:
1 <1 毫秒 <1 毫秒 <1 毫秒 192.168.1.211
2 20 ms 21 ms 20 ms 10.0.0.11
3 23 ms 26 ms 24 ms mymachine [192.168.11.103]
跟踪完成。
正如我上面提到的,服务器和工作站可以访问另一个站点上的大多数服务器,但这种情况只发生在特定服务器上。在这种情况下,我认为大多数问题与 192.168.1.60 和 192.168.1.61 有关。但是,我没有发现这两台服务器与其他服务器有任何区别。
我比较了两个 openvpn 服务器上的 ifconfig 和 iptables,它们几乎相同(当然方向不一样)。
我想寻求解决问题的方法。
任何意见,将不胜感激。
问候,
凯尔