首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >网工干货|ICMPv6 + NDP + SLAAC 完整原理 + 华为带注释配置

网工干货|ICMPv6 + NDP + SLAAC 完整原理 + 华为带注释配置

作者头像
ICT系统集成阿祥
发布2026-07-28 10:06:17
发布2026-07-28 10:06:17
570
举报
文章被收录于专栏:数通数通

前言

IPv6 已经全面落地,很多网工容易混淆 ICMPv6 底层作用、NDP 邻居发现七大功能、SLAAC 无状态自动配置整套流程。本文完全基于课件内容,先拆解底层原理,再配套可直接上机、带完整注释的华为配置,全程专注 ICMPv6 与 NDP、SLAAC 核心知识点。

一、IPv6 底层基石:ICMPv6 完整原理

1. 基础定义

ICMPv6 是 IPv6强制内置基础协议,区别于 IPv4 可选 ICMP:

IPv6 头部Next Header = 58代表载荷为 ICMPv6 报文;

所有报错、邻居交互、Ping 探测、PMTU 路径 MTU 发现、NDP 邻居报文全部依托 ICMPv6 承载;

Type 字段区分两大报文类别:

差错报文:Type 0~127,用于转发故障通知;

信息报文:Type 128~255,用于探测、地址自动配置、邻居交互。

2. ICMPv6 差错报文(Type 1/2/3/4)

差错报文由转发失败设备发送,告知源主机传输失败原因:

核心规则:IPv6 路由器禁止中途分片,分片仅由源主机完成,PMTU 发现依靠 Type=2 超长差错报文实现。

PMTU 工作流程:

  1. PC 发送 1500 字节报文;
  2. 中间路由器接口 MTU 更小,回复 ICMPv6 Type=2;
  3. 源主机自动降低报文长度为路径最小 MTU,持续优化避免丢包。

3. ICMPv6 通用信息报文

(1)Ping 探测报文

Type=128 Echo Request:ping 请求报文;

Type=129 Echo Reply:ping 回复报文;

两端交互验证 IPv6 连通性。

(2)NDP 邻居发现专用报文(Type133~137)

NDP 所有交互报文均属于 ICMPv6 信息报文,是 IPv6 局域网核心:

  1. Type=133 RS 路由器请求:主机主动寻找网关;
  2. Type=134 RA 路由器通告:路由器下发前缀、网关、M/O/A 标记;
  3. Type=135 NS 邻居请求:地址解析、DAD 重复地址检测;
  4. Type=136 NA 邻居通告:回复 NS,携带本机 MAC 地址;
  5. Type=137 Redirect 重定向:下发更优下一跳给终端。

二、IPv6 核心协议:NDP 邻居发现协议(RFC2461)

1. NDP 七大核心功能(替代 IPv4 ARP + 网关发现)

  1. 路由器发现:主机识别链路网关,获取默认路由;
  2. 无状态地址配置 SLAAC:通过 RA 前缀自动生成全球 IPv6;
  3. DAD 重复地址检测:所有单播地址启用前校验冲突;
  4. 三层地址解析:查询目标 IPv6 对应的二层 MAC;
  5. 邻居状态跟踪:维护邻居可达状态,保障通信可靠;
  6. 前缀重编址:RA 下发地址租期,平滑切换网段;
  7. 重定向:优化终端转发下一跳。

2. NDP 五大报文交互规则

(1)RS+RA 网关与前缀下发(SLAAC 核心)

RS 报文(Type133)

  • 源:主机链路本地地址;
  • 目的组播:FF02::2(链路所有路由器);
  • 触发时机:主机开机、接口重启,主动请求 RA 配置。

RA 报文(Type134)

  • 源:路由器接口链路本地地址;
  • 目的组播:FF02::1(链路所有节点);

两种发送模式:

  1. 被动触发:收到 RS 立即回复 RA;
  2. 周期发送:默认 max-interval 600s、min-interval 200s 主动广播; RA 携带关键内容:网段前缀、网关链路本地地址、M/O/A 标记、前缀生存期、网关优先级。

(2)NS+NA 地址解析 & DAD 重复地址检测

  1. 三层地址解析

PC 发送 NS 查询目标 IPv6,目标设备回复 NA 携带 MAC;

优势:三层解析,兼容光纤、无线等所有二层介质,可叠加三层安全防护,组播请求降低广播风暴。

2. DAD 重复地址检测

所有单播地址(链路本地 / 全球)启用前必须执行 DAD:

  • 主机以未分配试验地址为 Target 发送 NS;
  • 若收到其他设备 NA 回复,该地址标记DUPLICATE,禁止使用;
  • 无回复才正式启用该 IPv6 地址。

(3)Redirect 重定向(Type137)

网关发现终端存在更优转发下一跳时,发送重定向报文,告知主机更新路由,优化转发路径。

3. IPv6 邻居 5 种状态与状态迁移

通过display ipv6 neighbors查看邻居表,5 种状态:

  1. Incomplete:发送 NS,未收到 NA,正在解析 MAC;
  2. Reachable:收到 NA,邻居可达(默认 30s 可达时间);
  3. Stale:可达时间超时,不确定邻居在线;
  4. Delay:需要发包,进入 5 秒延迟探测;
  5. Probe:单播发送 NS 重试探测邻居。

状态迁移逻辑:

Empty→发送 NS→Incomplete;收到 NA→Reachable;30s 无流量→Stale;发送数据触发 Delay;Delay 超时进入 Probe;多次无响应回到 Empty。

4. RA 三大关键标记 M / O / A(控制 SLAAC 行为)

1)M-bit(managed-address-flag)

  • M=0:终端使用 SLAAC 自动生成地址;
  • M=1:终端放弃 SLAAC,使用 DHCPv6 分配地址;

配置命令:ipv6 nd autoconfig managed-address-flag

2)O-bit(other-flag)

  • O=0:不从 DHCP 获取 DNS、NTP 等附加参数;
  • O=1:通过 DHCP 获取 DNS 等辅助参数;

配置命令:ipv6 nd autoconfig other-flag

3)A-bit(Autonomous 自动配置位,前缀内标记)

  • A=1:终端可基于此前缀执行 SLAAC 生成地址;
  • A=0:禁止终端使用此前缀自动配置;

配置命令:发布前缀时携带no-autoconfig关闭 A 位

ipv6 nd ra prefix 2001:123::/64 10000 5000 no-autoconfig

4)前缀附加参数 off-link

配置off-link后,终端不会生成该网段 NDP 直连路由,仅生成单主机明细路由。

5. RA 前缀双生存期(地址老化逻辑)

发布前缀时配置两个时间参数,控制地址生命周期:

  1. Preferred Lifetime(优选时间)

地址正常使用周期,超时进入 Deprecated 状态;

Deprecated 特性:仅能被动接收连接,无法主动发起新会话,用于平滑网段切换,旧业务不断连。

2. Valid Lifetime(有效总时间)

地址完整存活时长,超时直接变为 Invalid,所有连接断开。

三、SLAAC 无状态地址自动配置 完整原理 + 带注释配置

1. SLAAC 完整工作流程

  1. 接口开启 IPv6,自动生成链路本地地址 FE80::/10,执行 DAD 无冲突后启用;
  2. 主机发送 RS 报文,向链路路由器请求 RA 通告;
  3. 路由器回复 RA,携带网段前缀、A-bit=1、网关链路本地地址;
  4. 主机使用「RA 前缀 + 接口 EUI-64 ID」拼接生成全球单播 IPv6;
  5. 对新全球地址执行 DAD 重复地址检测,无冲突正式启用;
  6. 自动生成默认路由,下一跳为 RA 报文源(路由器链路本地地址)。

2. 路由器侧完整 SLAAC 配置(M=0 O=0,纯无状态)

代码语言:javascript
复制
# 接口基础IPv6配置
interface GigabitEthernet 0/0
 ipv enable                  # 接口开启IPv6功能
 ipv6 address 2001:123::254/64  # 接口静态全球前缀
 ipv6 address FE80::254 link-local  # 手动指定链路本地地址(可选,不配置自动生成)
 # RA报文周期参数配置
 ipv6 nd ra max-interval 600    # RA最大发送间隔600秒(设备默认值)
 ipv6 nd ra min-interval 200    # RA最小发送间隔200秒
 ipv6 nd ra router-lifetime 1800 # 网关路由存活时长1800秒
 ipv6 nd ra preference high     # 网关优先级high,多路由器实现负载分担
 undo ipv6 nd ra halt           # 华为设备默认关闭RA,该命令开启RA发送
 # 不配置managed/other,M=0 O=0,纯SLAAC场景
 # 发布网段前缀:前缀/掩码 有效时间 优选时间
 ipv6 nd ra prefix 2001:123::/64 2592000 604800
 # 扩展:发布第二个网段前缀示例
 # ipv6 nd ra prefix 2003:123::/64 10000 5000 off-link no-autoconfig
 # off-link:不生成直连路由;no-autoconfig:关闭A位,禁止SLAAC

3. PC 终端 SLAAC 配置(两种模式)

模式 1:仅生成 IPv6,不自动学习默认网关
代码语言:javascript
复制
interface GigabitEthernet 0/0
 ipv6 enable
 ipv6 address auto global  # 仅基于RA前缀生成全球地址,无默认路由

模式 2:生成 IPv6 + 自动获取 RA 默认网关(推荐)

代码语言:javascript
复制
interface GigabitEthernet 0/0
 ipv6 enable
 # auto global default:生成SLAAC地址,同时学习RA中的默认网关路由
 ipv6 address auto global default

重点说明:SLAAC 生成的默认路由,下一跳永远是路由器链路本地地址;多台路由器同时发布 RA,可通过ipv6 nd ra preference设置高低优先级实现网关负载分担。

四、华为设备排错核心命令(ICMPv6/NDP/SLAAC 专用)

代码语言:javascript
复制
# 1. 查看接口全部IPv6信息、地址状态、DAD开关、链路本地地址
display ipv6 interface GigabitEthernet 0/0
# 2. 查看邻居表(IPv6与MAC映射,排查NS/NA解析故障)
display ipv6 neighbors
# 3. 查看IPv6路由表,检查SLAAC学习的默认网关、前缀路由
display ipv6 routing-table
# 4. 查看接口RA完整配置:间隔、优先级、M/O标记、发布前缀
display ipv6 nd interface GigabitEthernet 0/0

五、核心知识点总结

  1. ICMPv6 是 IPv6 必备协议,Next Header=58,承载差错、Ping、全部 NDP 报文;
  2. NDP 基于 ICMPv6 实现,一套协议完成 ARP、网关发现、地址冲突检测、路由优化;
  3. RA 报文是 SLAAC 核心,M/O 标记控制是否启用 DHCP,A 位控制前缀能否自动分配地址;
  4. SLAAC 无需服务器,依靠路由器 RA 下发前缀,终端自动拼接地址;
  5. 所有 IPv6 单播地址启用前必须执行 DAD,防止网段地址冲突;
  6. SLAAC 默认网关下一跳为路由器链路本地地址,auto global default才能自动学习默认路由。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ICT系统集成阿祥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 3. PC 终端 SLAAC 配置(两种模式)
      • 模式 1:仅生成 IPv6,不自动学习默认网关
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档