arp_ignore和arp_announce内核参数

arp_announce : INTEGER

对网络接口上本地IP地址发出的ARP报文作出相应级别的限制。

0:本机所有IP地址都向任何一个接口通告ARP报文

1:尽量仅向该网卡回应与该网段匹配的ARP报文

2:只向该网卡回应与该网段匹配的ARP报文

arp_ignore : INTEGER

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

0:响应任意网卡上接收到的对本机IP地址的arp请求(包括环回网卡上的地址),而不管该目的IP是否在接收网卡上。

1:只响应目的IP地址为接收网卡上的本地地址的arp请求。

2:只响应目的IP地址为接收网卡上的本地地址的arp请求,并且arp请求的源IP必须和接收网卡同网段。

3:如果ARP请求数据包所请求的IP地址对应的本地地址其作用域(scope)为主机(host),则不回应ARP响应数据包,如果作用域为全局(global)或链路(link),则回应ARP响应数据包。

4~7:预留。

8:不回应所有的arp请求。

修改方法

临时修改方法:

 1. 修改/proc文件系统:

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

 2. 使用sysctl -w直接写入内存:

 sysctl -w net.ipv4.conf.all.arp_ignore=1
 sysctl -w net.ipv4.conf.eth0.arp_ignore=1
 sysctl -w net.ipv4.conf.all.arp_announce=2
 sysctl -w net.ipv4.conf.eth0.arp_announce=2
 
永久修改需要写入配置文件:
修改/etc/sysctl.conf文件,然后sysctl -p刷新到内存。
 net.ipv4.conf.all.arp_ignore=1
 net.ipv4.conf.eth0.arp_ignore=1
 net.ipv4.conf.all.arp_announce=2
 net.ipv4.conf.eth0.arp_announce=2
备注:

arp_ignore和arp_announce参数分别有all,default,lo,eth0等对应不同网卡。当all和具体网卡的参数值不一致时,配置为较大值的生效。一般只需修改all和某个具体网卡的参数即可。

posted @ 2017-11-07 15:07  贾春旺  阅读(5259)  评论(0编辑  收藏  举报