arp – 删除不删除条目; 只是将条目标记为“不完整”

$ sudo arp -avn ? (10.10.7.30) at 00:cc:cc:bb:dd:86 [ether] on eth0 Entries: 1 Skipped: 0 Found: 9 $ sudo arp -d 10.10.7.30 $ sudo arp -avn ? (10.10.7.30) at <incomplete> [ether] on eth0 

我预计10.10.7.30不会进入。 意外的是,条目仍然被标记为<incomplete>

使用Ubuntu 10.04

入口将被删除,只要有耐心。

(如果你想最短的答案:不完整==删除)

假设“删除”是该操作的错误词。 这里真正发生的事情是,该条目被手动设置为状态“请求发送,无应答” (因此“不完整的”ARP过程),就像机器真的不可达一样。

现在,除非在此期间获得新的有效ARP响应,否则该条目将尽快完全移除。 在这种情况下,即使该条目被移除而不是被标记为不完整,该条目也将被重新添加。 所以没有实际的赞成或反对这种行为。

但请记住,我们正在谈论caching。 从caching中删除内容非常困难且昂贵。 如果在最终删除条目之前将条目replace为无效条件,并等待它被replace,则效率会更高。 但是对于系统来说,如果条目从列表中删除或只是标记为不完整,则完全没有区别。

为了补充所有其他答案, 我发现这个链接非常有用 。

在某些情况下使用ip更合适,就像命令一样:

 # ip -s -s neigh flush all 

结果可能取决于你的linux内核。

我知道这听起来很明显,但对于那些不习惯使用shell的人来说,这是我的build议:

从@KarmaFusebox的答案开始,为什么不简单地 grep结果…? :

 arp -a | grep "incomplet" -i -v 

它只会显示现有的/活动的caching条目。
我认为它一直是一个POSIX兼容的命令。 如果这是你所需要的,这是一个脚本化的方法。