Linux系统arp相关参数分析:
- arp_accept: 默认对不在arp表中的IP地址发出ARP包的处理
- 0:不在ARP表中创建对应IP地址的表项
- 1:在ARP表中创建对应IP地址的表项
- arp_announce:
- 0:允许使用任意网卡上的IP地址作为arp请求的源IP,通常就是使用数据包a的源IP
- 1:尽量避免使用不属于该发送网卡子网的本地地址作为发送arp请求的源IP地址。
- 2:忽略IP数据包的源IP地址,选择该发送网卡上最合适的本地地址作为arp请求的源IP地址。
- arp_filter:
- 0:不开启源地址校验
- 1:开启严格的反向路径校验。对每个进来的数据包,校验其反向路径是否是最佳路径。如果反向路径不是最佳路径,则直接丢弃数据包。
- 2:开启松散的反向路径校验。对每个进来的数据包,校验其源地址是否可达,即反向路径是否能通(通过任意网口),如果反向路径不通,则直接丢弃该数据包。
- arp_ignore:
- 0:响应任意网卡上接受到的对本机IP地址的arp请求,而不管该目的IP是否在接收网卡上
- 1:只响应目的IP地址为接收网卡上的本地地址的arp请求。
- 2:只响应目的IP地址为接收网卡上的本地地址的arp请求,并且arp请求的源IP必须和接收网卡同网段。
- 3:如果arp请求的数据包所请求的IP地址对应的本地地址其作用域为主机,则不回应ARP响应数据包;如果作用域为全局或链路,则回应ARP响应数据包。
- 4-7:保留未使用
- 8:不回应所有的arp请求
- arp_notify: arp通知链操作
- 0:不做任何操作
- 1:当设备或硬件地址改变时,自动产生一个arp请求
- net.ipv4.conf.all.proxy_arp: 打开arp代理功能
- 0: 禁止
- 1: 允许
推荐配置以下三个参数,实现每个网卡上的IP,响应自身 MAC地址。
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.all.rp_filter=2