首页/网络/协议速查/ICMPv6 类型速查

ICMPv6 类型速查

ICMPv6 承接了 NDP 与 PMTUD 等关键功能:类型 1-4 为差错,128/129 Echo,133-137 邻居发现,全部必修不可随意屏蔽。

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

ICMPv6 是什么

ICMPv6 是 IPv6 的控制报文协议,除了传统的差错与 ping 功能,还承接了 IPv4 里由 ARP 与部分 DHCP 承担的地址解析、邻居发现与地址自动配置。因此它不只是「可选的网管流量」,而是 IPv6 正常工作的组成部分:类型 1-4 是差错报文,128/129 是 Echo 请求与应答,133-137 是邻居发现(NDP)的五种报文。防火墙上对 ICMPv6 一刀切屏蔽,会直接破坏地址自动配置与路径 MTU 发现。

基本信息

规范RFC 4443(ICMPv6)、RFC 4861(邻居发现)、RFC 4890(防火墙建议)
差错类型1 目的不可达、2 包太大、3 超时、4 参数问题
回显类型128 Echo Request、129 Echo Reply
NDP 类型133 RS、134 RA、135 NS、136 NA、137 Redirect
组播监听130-132、143(MLD 查询/报告)
不可分片IPv6 中间路由器不分片,包太大差错是 PMTUD 的关键

常见类型速查

类型名称作用
1Destination Unreachable不可达,码 0-6 细分原因
2Packet Too Big路径 MTU 发现,IPv6 下必须放行
3Time Exceeded跳数耗尽或重组超时,traceroute6 依赖
4Parameter Problem头部参数错误
128/129Echo Request/Replyping6 使用
133-137RS/RA/NS/NA/Redirect邻居发现与地址自动配置

典型使用场景

  • 用 ping6 做 IPv6 连通性测试,确认链路与地址配置正确
  • 在防火墙上制定 ICMPv6 精细化放行策略而不是全放或全禁
  • 排查 IPv6 大包不通:确认包太大(类型 2)是否被放行
  • 定位地址自动配置失败:检查 RA/RS 是否被中间设备拦截
  • traceroute6 出现星号时,判断是否是超时报文被过滤
  • 双栈环境分别验证 v4 与 v6 路径,ICMPv6 的状态不能从 ICMPv4 推断

抓包与测试

抓包与测试
# 抓取 ICMPv6 报文
tcpdump -nn 'icmp6' -c 20
# 只抓邻居请求 NS(类型 135)
tcpdump -nn 'icmp6 and ip6[40] == 135' -c 5
# 只抓包太大差错(类型 2),排查 PMTUD
tcpdump -nn 'icmp6 and ip6[40] == 2' -c 5
# 连通性测试与路径 MTU 探测
ping6 -c 4 -s 1400 host
ping -6 -M do -s 1400 host
IPv6 规定中间路由器不做分片,只能由源端分片,因此「包太大」差错是路径 MTU 发现的唯一信号。屏蔽它会让你看到「小包通、大包静默丢弃」这一典型症状,且没有任何回执提示。
IPv6 防火墙策略必须显式放行必要 ICMPv6(至少类型 1-4 与 133-137,含 ND 相关):一刀切屏蔽会破坏邻居发现与地址自动配置,导致主机拿不到地址或邻居不可达。

易错点

  • 把 ICMPv6 当成可选流量整体屏蔽,导致 IPv6 地址自动配置与 PMTUD 失效
  • 只放行 Echo 而拦掉差错报文,出现大包不通却看不出原因
  • 在双栈环境只排查 IPv4,忽略 IPv6 侧 NDP 与 RA 被拦的问题
  • traceroute6 全是星号就判定链路中断,实际是 ICMPv6 超时报文被过滤
  • 误以为 IPv6 支持中间路由器分片,因而忽略包太大差错的处理

数据来源与参考

  • RFC 4443(ICMPv6)
  • RFC 4861(NDP)

相关工具

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