邻居表状态机是什么
六层网络用邻居发现替代了四层的地址解析协议,邻居表的每一项都带有状态,描述这条线索的可靠程度。状态从解析中开始,成功后进入可达状态,超时后转入过期状态;后续发包时再触发延时与探测两个中间状态。看懂状态,就能判断通信卡在哪一步。
各状态的含义
解析中表示主机已发出解析请求但还没收到应答;可达表示近期确认过,可以放心使用;过期表示曾经成功过但不再确认,仍然可以用;延时表示先等一会儿看看上层是否有更明确的信号;探测表示已经开始单播探测,多次无应答后该条目会被删除。
基本信息
| 解析中 | 已发出解析请求,等待应答 |
|---|---|
| 可达 | 近期确认可用,默认维持约三十秒 |
| 过期 | 不再主动确认,仍可用于发送 |
| 延时 | 短暂等待上层信号,约五秒 |
| 探测 | 单播探测中,多次无应答后删除 |
典型使用场景
- 定位二层不通:条目长期停在解析中,说明应答从未回来,重点查链路与虚拟局域网
- 区分正常与故障:看到过期状态不必紧张,发包时会自动验活,不是故障
- 排查间歇丢包:条目反复在探测与删除之间循环,说明对端响应不稳定
- 确认网关状态:默认网关的邻居条目状态正常,是主机能出网的重要前提
- 虚拟机迁移排障:迁移前后邻居条目状态变化,可用来判断二层转发路径是否收敛
- 教学演示:把状态变化与报文交互对应起来,比死记状态名更容易掌握
查看邻居表
查看邻居表
ip -6 neigh show
# 输出示例:某地址 dev 接口 链路层地址 可达
# 状态字段会随时间变化,多观察几次可看出规律
ip -6 neigh show | grep -i incomplete
# 长期处于解析中的条目往往是二层或虚拟局域网问题
ip neigh flush dev eth0
# 清空后重新观察,便于复现解析过程状态含义
| 状态 | 含义 | 下一步 | 排障关注 |
|---|---|---|---|
| 解析中 | 地址解析请求已发出 | 收到应答转为可达 | 长期不转为链路问题 |
| 可达 | 近期确认可用 | 超时转为过期 | 正常 |
| 过期 | 不再确认但可用 | 发包触发延时 | 不是故障 |
| 延时 | 等待上层信号 | 无确认转探测 | 短暂过渡 |
| 探测 | 单播探测进行中 | 超时删除或回可达 | 反复循环多为对端异常 |
看到过期的条目就判断故障是常见误判:它依然可以用于发送,发包时会自动验活;真正需要关注的是长期停留在解析中的条目。
条目长期不能完成解析时,先查二层:虚拟局域网划分、端口安全策略、链路聚合状态都可能导致应答无法返回,只盯着三层配置往往找不到原因。