机器会回复“arp_requests”以获取内部地址,即使“net.ipv4.conf..arp_ignore”配置为禁用此功能

机器会回复“arp_requests”以获取内部地址,即使“net.ipv4.conf..arp_ignore”配置为禁用此功能

我当前有一个节点,其接口连接到互联网(通过 VLAN)。我将它们称为eth0eth0.100,后者是机器中的 VLAN 接口。

我预先在主机上设置路由,例如:

10.250.100.92 dev <internal interface> proto static scope host table 99 

请注意,范围设置为host此处,并且这不在main路由表中,而是在 table 中99。我ip rule已经设置使用另一个表。

我还设置了以下sysctl选项:

net.ipv4.conf.eth0.arp_ignore=3
net.ipv4.conf.eth0/100.arp_ignore=3

从该选项的文档中,我看到以下内容:

arp_ignore - INTEGER
    Define different modes for sending replies in response to
    received ARP requests that resolve local target IP addresses:
    0 - (default): reply for any local target IP address, configured
    on any interface
    <<<<< SKIPPED OTHER OPTIONS FOR BREVITY >>>>>
    3 - do not reply for local addresses configured with scope host,
    only resolutions for global and link addresses are replied

看起来我的机器不应该回复该地址的 ARP 请求,因为路由有scope host.然而,当 ARP 请求通过eth0/传入时eth0.100,机器仍然会发出 ARP 回复。我是否缺少单独的配置步骤?根据上面的文档 ( do not reply for local addresses configured with scope host),计算机不应发送此地址的 ARP 回复。

编辑:看来这ip route就是问题所在。我有一个代理 ARP 条目,它应该是是否应发送 ARP 回复的事实来源。是否可以让 ARP 回复“忽略” ip route

相关内容