Linux 作为网关,但本地网络的 VLAN 出现故障

Linux 作为网关,但本地网络的 VLAN 出现故障

我们有一个私有 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) 上的主机?

相关内容