多网卡 arp 问题

多网卡 arp 问题

我正在对 Centos 6.4 上的问题进行故障排除。我为 greenplum 设置了几个系统。每个系统都有两个连接到隔离子网的“互连”接口。它就像一个集群互连。因此每个接口的 eth2 和 eth3 都在 10.1.1.0/24 网络中。每个接口都有自己的 IP 地址。

当我从 host1 ping host2 的两个 IP 时,流量总是来自具有相同 MAC 地址的 eth2。这可以从 ARP 表和 tcpdump 中看到。看起来 host1 上的 arp 表在 host2 上的 eth2 的 Mac 地址上都有两个 IP

我读了一些关于 ARP FLux 的文章。我尝试了以下所有方法,但似乎都不起作用。有什么建议吗?

echo 1 > /proc/sys/net/ipv4/conf/eth2/arp_filter
echo 1 > /proc/sys/net/ipv4/conf/eth3/arp_filter
echo 1 > /proc/sys/net/ipv4/conf/eth2/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/eth3/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/eth2/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/eth3/arp_announce

答案1

sysctl -w net.ipv4.conf.all.arp_ignore=1

1 - 仅当目标 IP 地址是传入接口上配置的本地地址时才回复

sysctl -w net.ipv4.conf.all.arp_announce=2

2 - 始终为该目标使用最佳本地地址。在此模式下,我们忽略 IP 数据包中的源地址,并尝试选择我们喜欢的本地地址与目标主机进行通信。通过在包含目标 IP 地址的传出接口上查找我们所有子网上的主 IP 地址来选择此类本地地址。如果没有找到合适的本地地址,我们会选择传出接口或所有其他接口上的第一个本地地址,希望我们能收到对我们请求的回复,有时甚至不管我们宣布的源 IP 地址是什么。

http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.arp_problem.html#2_6_arp_announce

答案2

host2 是否试图通过路由来提供帮助?您是否尝试过:

echo 0 > /proc/sys/net/ipv4/ip_forward

在 host2 上?

相关内容