在下面的输出中,为什么 vpn1 路由/ping 到 10.100.0.1 而不是 10.100.0.112?
10.100.0.1 是没有 nat 的网络网关。10.100.0.112 是启用了 nat 的双宿主主机。
root@vpn1:~# ip ro
8.8.8.8 via 10.100.0.112 dev eth0 src 10.100.0.5
10.100.0.0/24 dev eth0 proto kernel scope link src 10.100.0.5
default via 10.100.0.1 dev eth0 metric 100
root@vpn1:~# traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 10.100.0.1 (10.100.0.1) 0.287 ms 0.257 ms 0.317 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * *^C
root@vpn1:~# ping 10.100.0.112
PING 10.100.0.112 (10.100.0.112) 56(84) bytes of data.
64 bytes from 10.100.0.112: icmp_req=1 ttl=127 time=0.321 ms
^C
--- 10.100.0.112 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.321/0.321/0.321/0.000 ms</br>
另一方面,10.100.0.112 具有以下配置
boban@boban-desktop:~$ ip ro 10.100.0.114 dev ppp0 proto 内核范围链接 src 10.100.0.112 xyzq/28 dev eth0 proto 内核范围链接 src xyz56 度量 1 **10.100.0.0/16 dev ppp0 范围链接** 默认通过 xyz62 dev eth0 proto static
因此,网络10.100.0.0/16
在ppp0
接口、vpn 上(也许这比我想象的更重要)。
boban@boban-desktop:~$ sudo iptables -t nat -S -P 预路由接受 -P 输入接受 -P 输出接受 -P 路由后接受 -A POSTROUTING -o eth0 -j MASQUERADE boban@boban-desktop:~$ sudo iptables -S -P 输入接受 -P 转发接受 -P 输出接受
答案1
如果不进一步了解,很难判断。10.100.0.112 的默认路由配置是什么?您能获取线路上流量的 tcpdump 吗?
我怀疑来自 10.100.0.112 的 ICMP 重定向会告诉您的主机改用 10.100.0.1。
答案2
我希望看到该 8.8.8.8 路由的子网掩码——但我没有看到子网掩码,这似乎表明它没有做正确的事情。