[原]有关arp_ignore 与arp_announce 参数的设置

    早上看到一篇关于arp_ignore 设置值不同引起的故障问题:由于arp_ignore 为默认值0(即对ARP请求时,只要该IP在本地的机器任意网卡设备上存在都会响应)。当某机器同时通过一条以上路径到达相同的目标时,该默认值可能会引起故障。

一、现象描述
该故障的处理,由zzniu#redflag-linux.com提供。
网络架构:
点击在新窗口中浏览此图片二、补充
1、我的观点
在查看上述问题分析报告时,我第一个反应是,该架构存在网络中常见的冗余链路问题。在由交换机构成的交换网络中通常设计有冗余链路和设备。这种设计的目的是防止一个点的失败导致整个网络功能的丢失。虽然冗余设计可能消除的单点失败问题,但也导致了交换回路的产生,它会带来如下问题:

引用
A.广播风暴
B.同一帧的多份拷贝
C.不稳定的MAC地址表

因此,在交换网络中必须有一个机制来阻止回路,而生成树协议(Spanning Tree Protocol)的作用正是在于此。故此,我怀疑在该案例中,是否已打开交换机中的生成树协议支持,打开后能否解决,存疑?

2、类似问题
在LVS环境中,常会遇到与arp_ignore、arp_announce参数相关的问题,例如:

引用
Disable ARP for VIP
To disable ARP for VIP at real servers, we just need to set arp_announce/arp_ignore sysctls at the interface connected to the VIP network. For example, real servers have eth0 connected to the VIP network with the VIP at interface lo, we will have the following commands.

echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

Or, if /etc/sysctl.conf is used in the system, we have this config in /etc/sysctl.conf

net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2

Note that the arp_announce/arp_ignore sysctls must be setup correctly, before the VIP address is brought up at a logical interface at real servers.

3、内核文档中的说明
关于这两个参数,在kernel-doc 包中有详细的说明,其位于:

引用
/usr/share/doc/kernel-doc-2.6.18/Documentation/networking/ip-sysctl.txt
[原]有关arp_ignore 与arp_announce 参数的设置内文分页: [1] [2]
一个有关arp_ignore 的实验
红旗Cluster Server 4.0和LVS配置分析

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/104190.html

(0)
上一篇 2021年8月25日
下一篇 2021年8月25日

相关推荐

发表回复

登录后才能评论