LVS系列—关于arp_ingnone和arp_announce的相关说明

来源:互联网 发布:windows ndk下载 编辑:程序博客网 时间:2024/05/22 14:01

arp_announce : INTEGER 默认为0

意义:对网络接口上本地IP地址发出的ARP回应作出相应级别的限制(即用来限制是否使用发送端口的ip地址设置arp请求的源地址)

0 - (默认) 使用任意网络接口上(包括逻辑口)的任何本地地址;

1 - 代表不使用ip包的源地址来设置arp请求的源地址,如果ip包的源地址和该端口的ip地址在相同的子网,那么使用ip包的源地址作为arp请求中源地址,否者使用“2”;

2 - 代表不使用ip包的源地址来设置arp请求的源地址,而是由系统来选择最好的借口来发送。

举例:

假设linux主机有A、B两块网卡,其对应的IP地址分别为IP_A、IP_B,对应的MAC地址为MAC_A、MAC_B,假设一个应用程序准备与外 部通信,它的socket绑定了源IP地址为IP_A,但是根据系统路由及相关设置,其通信数据包将会从B网卡发送,在发送数据包前,系统会通过网卡B发 送ARP请求数据包。

如果我们将arp_announce的值设定为0,那该ARP请求数据包的发送方IP地址是IP_A,而发送方MAC地址为 MAC_B,这样就会在网络设备或对方主机的ARP地址表上留下IP_A与MAC_B的对应记录,但是实际正确的应该是IP_A对应MAC_A、IP_B 对应MAC_B,所以这可能会引起潜在的网络问题,具体问题和表现与网络的拓扑结构及网络配置有关。

而如果我们将arp_announce设置为2,那在 发送ARP请求数据包时,发送方IP地址将不是IP_A,而是IP_B,这样就不会引起刚才所说的问题。

arp_ignore : INTEGER 默认为0

含义:定义对目标地址为本地IP的ARP询问不同的应答模式;

0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求(不管该arp请求包中目标ip地址是不是为接收该arp请求接口上的ip)。

举例:比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那么即使eth0收到来自10.1.1.2这样地址发起的对10.1.1.1 的arp查询也会回应–而原本这个请求该是出现在eth1上,也该有eth1回应的。

1 - 只回应arp包中目标IP地址为该arp请求包进入的接口ip的arp查询请求。

举例:比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那么即使eth0收到来自10.1.1.2这样地址发起的对192.168.0.1的查询会回答,而对10.1.1.1 的arp查询不会回应。

2 - 只回应arp包中目标IP地址为该arp请求包进入的接口ip的arp查询请求,且arp包中发送者ip必须在该网络接口的子网段内。

举例:比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,eth1收到来自10.1.1.2发起的对192.168.0.1的查询不会回答,而对eth0收到192.168.0.2发起的对192.168.0.1的arp查询会回应。

原创粉丝点击