我有一个使用2个板载networking端口(eth0)中的1个和2个PCI网卡(eth2&eth3)中的一个的CentOS 5.5服务器 – 每个networking在不同的子网上都有自己的IP,而不同的网关位于不同的VLAN上。 eth0和eth2上的IP工作正常,但是eth3上的IP对包括ICMP在内的请求没有响应,尽pipe它在交换机上显示为活动状态,如果我在服务器上本地ping IP,则它工作正常。
我猜测这与Linux的某种types的IP路由问题,也许它试图响应eth2 eth0或eth0而不是eth3?
希望有人对我有一些build议吗?
eth0: xx236.2 netmask 255.255.252.0 gateway xx236.1 eth2: xx232.2 netmask 255.255.252.0 gateway xx232.1 eth3: xx208.2 netmask 255.255.248.0 gateway xx208.1
从“ip route”输出:
xx236.0/22 dev eth0 proto kernel scope link src xx236.2 xx232.0/22 dev eth2 proto kernel scope link src xx232.2 xx208.0/21 dev eth3 proto kernel scope link src xx208.2 169.254.0.0/16 dev eth3 scope link default via xx232.1 dev eth2 default via xx236.1 dev eth0 default via xx208.1 dev eth3
Linux在最接近目标的接口上发送出站数据包。 它不会将数据包视为一个“回应”给另一个数据包用于路由目的,也不会这样做。
通常不应该有三个网关,除了冗余。 如果路由器无法处理从任何机器的IP地址到任何您没有更具体路由的主机的数据包,则不应将其列为网关。
没有“eth3请求”这样的东西。 只有数据包,具有源和目标IP地址。
列出的三个默认值意味着三台机器可以处理任何数据包到非本地主机。
如果禁用反向path过滤( http://lartc.org/howto/lartc.kernel.html ),则发送到eth3接口的IP的数据包的回复将通过eth3发回,而不pipe您的内容是什么路由表。 所以运行:
echo 2 > /proc/sys/net/ipv4/conf/eth3/rp_filter
然后再次尝试ping。
但是,您不应该有三个具有相同度量的默认网关 – 也许您应该重新devise解决scheme并明确您的目标。