首页/网络/协议速查/IPv6 邻居发现(NDP)

IPv6 邻居发现(NDP)

替代 IPv4 的 ARP:用 ICMPv6 的类型 133-137(RS/RA/NS/NA/Redirect)完成地址解析、路由器发现与重定向。

协议速查网络更新于 2026-10-13

NDP 是什么

IPv6 用邻居发现替代了 IPv4 的地址解析协议:地址解析、路由器发现、前缀通告与重定向都由 ICMPv6 的类型 133 到 137 完成(RFC 4861)。它同时承担地址自动配置所需的信息收集工作(RFC 4862)。

报文为什么变了

IPv4 里广播可以覆盖整个网段,IPv6 取消了广播,改用组播:请求发到特定组播地址,只有相关节点需要处理。因此网络里看不到广播风暴,但防护重点随之转移——通告类报文必须被约束。

基本信息

报文类型路由器请求 133、路由器通告 134、邻居请求 135、邻居通告 136、重定向 137
承载协议ICMPv6
相关机制地址自动配置依赖路由器通告提供前缀
规范RFC 4861 定义邻居发现,RFC 4862 定义自动配置

典型使用场景

  • 排查 IPv6 地址自动获取失败
  • 排查「地址拿到了但通信异常」这类邻居层问题
  • 设计访问控制:约束通告类报文的来源
  • 理解为什么 IPv6 网络里没有广播风暴

查看邻居缓存

查看邻居缓存
ip -6 neigh show                              # 查看邻居缓存条目
ping6 -c 2 2001:db8::1 && ip -6 neigh show    # 通信后能看到对应条目
ip -6 route show | head                       # 看默认路由是否由通告学习而来

消息类型

消息类型号作用
路由器请求133主机主动询问路由器
路由器通告134路由器通告前缀与默认路由
邻居请求135地址解析,作用类似地址解析请求
邻居通告136应答,作用类似地址解析应答
重定向137告知更优的下一跳
邻居缓存里出现不完整或失败状态,通常说明请求发出但没有收到通告:可能是链路问题,也可能是对端做了防护。
邻居发现同样可以被伪造的通告欺骗:生产网络应启用相应的防护特性,并限制通告类报文的来源,别以为取消广播就自动更安全。
在虚拟化与容器环境里,邻居缓存的规模会明显大于传统物理网段:条目过多会占用资源,需要设置合理的上限。

易错点

  • 以为没有广播就自动安全:伪造通告类报文同样能实施欺骗,需要专门防护
  • 只排查地址配置不看邻居状态:地址拿到但无法通信的问题容易被漏掉
  • 访问控制里把 ICMPv6 一律拒绝:地址解析与路径相关机制随之失效
  • 在虚拟化环境忽略邻居缓存规模:条目过多会挤占资源
  • 把重定向报文当无害信息:被伪造时可用于把流量引向错误节点

数据来源与参考

  • RFC 4861(ND 协议)
  • RFC 4862(SLAAC)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌