Linux 会在邻居表中存储最近解析的下一跳链路地址。以太网上的 IPv4 条目通过 ARP 学习,IPv6 则使用邻居发现。旧式 arp 命令只显示部分状态,而 ip neighbor 同时支持两个地址族。
网络配置 · 第 5 课
arp
学习如何检查和解读 Linux IPv4 ARP 与 IPv6 邻居缓存状态。
查看邻居条目
检查所有条目或某个接口:
$ ip neighbor show
$ ip neighbor show dev enp1s0
条目包含 IP 地址、链路层地址、设备和可达性状态。启动后邻居表可能为空,并随着流量需要本地下一跳而填充。
哪个命令显示现代 Linux 邻居表状态?
解析 IPv4 邻居
链路内 IPv4 映射缺失时,主机会广播 ARP 请求,询问谁拥有目标地址。目标或明确执行代理 ARP 的路由器会作出回复。发送方缓存该映射,再发送等待中的帧。
对于远程 IP 目标,主机解析的是所选网关地址,而不是远程主机的 MAC。
对于链路外目标,主机会解析哪个 IPv4 邻居?
解读状态
常见状态包括 REACHABLE、STALE、DELAY、PROBE、INCOMPLETE 和 FAILED。STALE 表示最近的可达性确认已经过期;协议栈仍可使用缓存地址,并按需探测。FAILED 表示解析或可达性检测未成功,但原因可能是链路、VLAN、地址、路由、过滤问题或对端已关闭。
STALE 是否表示已知邻居不可达?
谨慎更改邻居状态
静态条目和缓存刷新都会改变状态,可能中断活动流量或隐藏原始证据。应先记录当前路由、数据包计数器和邻居状态。在获得授权的测试网络上,应优先使用针对性探测和数据包捕获,而不是刷新整个接口。
ARP 没有内置身份验证,因此重复地址或伪造回复可能污染映射。交换机保护、分段、监控和更高层身份验证有助于降低影响。
为什么不应把刷新整个邻居表作为第一项诊断步骤?
课程已完成
你已完成 arp
现在,你可以检查邻居解析,而不会把每种缓存状态都当作故障。
使用
ip neighbor查看 IPv4 和 IPv6 状态。只有目标位于链路内时才直接解析它。
为链路外 IP 流量解析网关。
在针对性更改状态前保留缓存证据。