我们有一个私有 VLAN,它从连接到它和我们的公共网络的主机路由出去。私有 VLAN 上的主机将网关主机 (10.2.2.82) 的私有 IP 地址设置为其默认网关。这可以很好地访问互联网上的几乎所有主机,但与网关机器位于同一网络上的主机除外。
以下是网关主机上的设置:
[root@gateway ~]# ip rule show
0: from all lookup local
32764: from 10.2.2.0/24 lookup private
32765: from 1.2.3.0/24 lookup public
32766: from all lookup main
32767: from all lookup default
[root@gateway ~]# ip route show table public
1.2.3.0/24 dev eth0 scope link
default via 1.2.3.1 dev eth0
[root@gateway ~]# ip route show table private
10.2.2.0/24 dev eth0.200 scope link
它还具有标准的 NAT MASQUERADE 设置。
一些 tcpdumping ping 命令显示,对于可访问的主机,可以看到数据包到达网关,然后以适当更改的源地址离开网关,然后可以看到返回数据包执行相反的操作。可以看到对与网关计算机位于同一子网上的主机执行 ping 命令,该命令到达网关主机但停在那里。
我尝试过ip route add default via 1.2.3.1 dev eth0 table private
但似乎没用。
以下是来自私人机器的输出:
[root@internal /]# ping -c 1 10.2.2.82
PING 10.2.2.82 (10.2.2.82) 56(84) bytes of data.
64 bytes from 10.2.2.82: icmp_seq=1 ttl=64 time=0.217 ms
--- 10.2.2.82 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.214/0.214/0.214/0.000 ms
[root@internal /]# ping -c 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=49 time=15.5 ms
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 15ms
rtt min/avg/max/mdev = 15.471/15.471/15.471/0.000 ms
[root@internal /]# ping -c 1 1.2.3.1
PING 1.2.3.1 (1.2.3.1) 56(84) bytes of data.
--- 1.2.3.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 10000ms
我们缺少什么来使私有 VLAN 主机能够 ping 通与网关位于同一子网 (1.2.3.0/24) 上的主机?