arp_ignore与arp_announce
arp_ignore:定义接收到ARP请求时的响应级别
0:只要本地设置的有相应的地址,就给予响应。(默认)
1:仅回应目标IP地址是本地的入网地址的arp请求。
2:仅回应目标IP地址是本地的入网地址,而且源IP和目标IP在同一个子网的arp请求。
3:不回应网络界面的arp请求,而只对设置的唯一和连接地址做出回应。
4-7:保留未使用。
8:不回应所有的arp请求。
arp_announce:定义将自己地址向外通告的通告级别:
0:将本地任何接口上的任何地址向外通告。(默认)
1:视图仅向目标网络通告与其网络匹配的地址。
2:仅向与本地接口上地址匹配的网络进行通告。
# arp_ignore与arp_announce 如何配置
方法一:(arp_ignore=1,arp_announce=2)
1. 修改/etc/sysctl.conf文件,然后sysctl -p刷新到内存。
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
2. 使用sysctl -w直接写入内存:
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.lo.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
sysctl -w net.ipv4.conf.lo.arp_announce=2
3. 修改/proc文件系统:
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
方法二:
arptables -A IN -d <virtual_ip>-j DROP
arptables-A OUT -s <virtual_ip>-j mangle --mangle-ip-s <real_ip>
它的意思是:进来的ARP,如果目的IP是VIP的,丢弃; 发出去的ARP包,如果源IP是VIP的,改成realserver的IP。
与内核ARP参数arp_ignore=1,arp_announce=2的作用是一样的。