Linux作为网关,VLAN不能用于本地networking

我们有一个专用VLAN从连接到它和我们的公共networking的主机路由出去。 私有VLAN中的主机将网关主机(10.2.2.82)的私有IP地址设置为默认网关。 这可以很好地到达互联网上几乎所有的主机,除了那些与网关机器在同一networking上的主机。

以下是网关主机上的设置:

[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设置。

有一些tcpdump 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 

我们缺less什么使私有VLAN主机能够ping通与网关相同的子网(1.2.3.0/24)?