Linux服务器有两个活动的网络接口:
IF:eth1 IP:192.168.1.1/24 MAC:11:11:11:11:11:11 (1GbE)
IF:eth2 IP:192.168.1.2/24 MAC:22:22:22:22:22:22 (10GbE)其思想是10 The接口(eth2)是与网络上的主机通信的主要接口。我希望将第二个1GbE接口(eth1)保留为故障安全。如果10GbE接口出现故障:我仍然有一个简单的方法,可以更新DNS以便主机可以连接等等。
在观察接口统计数据时,我注意到所有通信量都是在eth1上发送/接收,而不是在eth2上,尽管网络上的所有主机都在寻址这个接口。我确认DNS记录指向正确接口的IP。此外,我还确认了通过IP而不是FQDN来寻址接口会产生同样的结果。
我清除了机器上的ARP缓存,并通过IP地址点击了eth1接口。我检查我的ARP表,找到eth1的MAC地址。我再次清除了ARP缓存,并通过IP地址点击了eth2接口。再次,我检查我的ARP表并找到eth1 (而不是eth2)的MAC地址。
如果我关闭eth1,物理断开接口,或者将它放到另一个逻辑网络上--我得到了预期的行为,流量就会通过我的eth2接口。
我的问题是:为什么会发生这种事?我看到一些证据表明,由于linux内核的“弱主机模型”,这是预期的行为。
如何使两个接口保持在同一个网络上,并使它们以我所期望的方式工作。
发布于 2014-03-06 02:17:20
Linux旨在响应任何接口上的ARP请求。假设主机拥有IP地址,而不是特定的接口。你看到的是所谓的ARP。
可以使用sysctrl更改此行为。
arp_ignore -整型定义不同的模式,以响应接收到的解析本地目标IP地址的ARP请求:0-(默认):对任何本地目标IP地址进行回复,在任何接口1上配置--只有当目标IP地址是在传入接口上配置的本地地址时才回复--只有当目标IP地址是在传入接口上配置的本地地址时才回复,并且两个发送者的IP地址都是来自此接口3上的同一子网的部分--不要对配置了作用域主机的本地地址进行答复,只答复全局地址和链接地址的解析。
发布于 2014-03-06 08:55:21
如果您的交换机支持它,我将使用802.1ad链接聚合来提供故障转移。
使用此特性,您可以将两个接口连接在一起,并且可以设置一个为主动接口,另一个为被动接口。您的IP地址将驻留在键合接口上,因此,如果一个NIC失败,则不会发生IP地址更改。
https://serverfault.com/questions/580160
复制相似问题