



RS(Router Solicitation,路由器请求)报文是 IPv6 邻居发现协议(NDP)中 ICMPv6 类型 133 的报文,核心作用是让 IPv6 主机主动发现链路上的路由器,并触发路由器立即回复 RA(Router Advertisement)报文,而非等待 RA 的周期性发送,以此快速获取网络配置信息。以下是其具体作用与关键细节:
核心作用
- 触发即时 RA 响应:主机接入网络或重启后,发送 RS(目的组播地址 ff02::2,所有路由器监听),路由器收到后立即单播或组播 RA,避免等待 RA 周期(通常 200 秒),加速地址配置与网关获取。
- 支撑无状态地址自动配置(SLAAC):RA 携带网络前缀、前缀长度、MTU、默认网关生命周期等,主机结合 EUI-64 生成全球单播地址,完成无 DHCPv6 的自动入网。
- 获取默认网关与网络参数:通过 RA 获取默认路由器信息,确定出网路径;同时获取 MTU 等参数,保障传输效率与路径最优。
- 适配网络拓扑变化:链路新增 / 切换路由器时,主机发送 RS 快速获取新路由信息,维持网络连通性。
报文关键特征
| 项目 | 说明 |
|---|---|
| 报文类型 | ICMPv6 Type 133,Code 0 |
| 源地址 | 主机链路本地地址(LLA),未配置时用::(未指定地址) |
| 目的地址 | ff02::2(链路上所有路由器的组播地址) |
| 发送时机 | 主机初始化、接口启用、路由表变化等场景 |


开启ra报文发布能力(默认关闭) 思科为
配置示例(Cisco 设备)
interface GigabitEthernet0/0
ipv6 enable
ipv6 address 2001:db8:1::1/64
ipv6 ospf 1 area 0
no ipv6 nd suppress-ra // 取消RA抑制,允许发送RA
RA报文
RA(Router Advertisement,路由器通告)报文是 IPv6 邻居发现协议(NDP)中 ICMPv6 类型 134 的报文,由路由器周期性发送或在收到 RS 后立即发送,用来向链路上的 IPv6 主机提供网络配置信息。它是 IPv6 无状态自动配置(SLAAC)的核心。
以下是 RA 报文的作用、格式特点、典型内容和使用场景。
一、RA 报文的核心作用
-
向主机提供 IPv6 前缀 主机根据 RA 中的前缀和前缀长度,结合自身 MAC 地址生成全球单播地址(SLAAC)。
-
告知主机默认网关RA 中包含路由器的链路本地地址,主机将其作为默认路由。
-
通告链路 MTU确保链路上所有节点使用一致的最大传输单元,避免分片。
-
指示是否使用 DHCPv6通过 M、O 两个标志位控制主机是否需要 DHCPv6 获取地址或其他配置。
-
**辅助地址自动配置与重复地址检测(DAD)**RA 中包含地址生成相关参数,如前缀有效期、路由器寿命等。
二、RA 报文的关键特征
- ICMPv6 类型:134,代码:0
- 源地址:路由器的链路本地地址
- 目的地址:
- 周期性发送:ff02::1(所有节点)
- 响应 RS:通常单播给请求主机
- 发送周期:默认 200 秒,也可由 RS 触发立即发送
三、RA 报文中的重要字段
-
**当前跳数限制(Cur Hop Limit)**主机默认的 IPv6 跳数限制(类似 IPv4 TTL)。
-
M 标志位(Managed Address Configuration)
- 0:不使用 DHCPv6 获取地址
- 1:必须使用 DHCPv6 获取地址(状态化地址配置)
-
O 标志位(Other Configuration)
- 0:不使用 DHCPv6 获取其他配置
- 1:使用 DHCPv6 获取 DNS、NTP 等其他信息

-
**路由器寿命(Router Lifetime)**主机将该路由器作为默认网关的有效时间(秒)。
-
**前缀信息选项(Prefix Information)**包含:
- IPv6 网络前缀
- 前缀长度
- 前缀有效期(Preferred / Valid Lifetime)
- 是否可用于地址自动配置(Autonomous Flag)
-
MTU 选项通告链路 MTU,避免路径 MTU 发现失败。
四、RA 报文的典型交互流程
- 主机启动后发送 RS 报文。
- 路由器收到 RS 后立即发送 RA。
- 主机根据 RA 中的前缀生成 IPv6 地址。
- 主机将 RA 中的路由器链路本地地址设为默认网关。
- 主机完成 DAD 后正式使用地址。
作用
RA 报文用来让 IPv6 主机自动获得 IPv6 地址、默认网关和网络参数,从而实现无配置或少量配置即可上网
且RA 不仅用于 SLAAC,也用于告诉 IPv6 主机是否需要使用 DHCPv6、如何获取地址和其他配置信息,因此在 DHCPv6 环境中依然必不可少。
更具体一点:
-
在 SLAAC 模式下RA 直接提供前缀,主机自己生成地址,不需要 DHCPv6。
-
在 DHCPv6 模式下RA 通过 M、O 标志位告诉主机:
- 是否需要向 DHCPv6 要地址(M=1)
- 是否需要向 DHCPv6 要 DNS 等其他配置(O=1)同时 RA 仍然提供默认网关信息。

不设置 RA 周期时间,RA 会按默认周期(约 200 秒)自动发送,SLAAC 依然能正常工作,只是主机感知网络变化会慢一些。
dis ipv6 int eth《》
查看获取的ip 如图所示


并且服务器如果在这个接口有多个地址 则每个地址都会通过slaac分配到客户端




ipv6 nd autoconfig managed-ad
- M 位设为 1 → 不用 SLAAC,终端必须通过 DHCPv6 拿地址;
- M 位默认 0 → 用 SLAAC,终端自己用 RA 前缀生成地址。
ipv6 nd auto other
O 位设为 1,终端去 DHCPv6 要 DNS 这些参数;
O 位默认 0,终端直接从 RA 报文里拿这些参数。


NS报文
NS(Neighbor Solicitation,邻居请求)是 IPv6 NDP 的 ICMPv6 类型 135 报文,核心作用是查询链路上某 IPv6 地址对应的 MAC 地址(替代 IPv4 的 ARP),同时也用于重复地址检测(DAD)。
某设备(源地址::表示还没配好地址)发的 NS 报文,目标是组播地址 ff02::1:ff00:5(对应目标 IPv6 地址 2056::5 的请求节点组播地址),用来查 2056::5 的 MAC 地址。
同个请求节点组播地址不同前缀的都会在一个组收到这个报文
但是看完target后都会不理睬 只有有这个target的才会返回NA报文
NA(Neighbor Advertisement,邻居通告)是 IPv6 NDP 的 ICMPv6 类型 136 报文,核心是回应 NS 请求,告诉对方自己的 IPv6 地址对应的 MAC 地址(替代 IPv4 的 ARP 响应),也会主动通知地址变化。
回复 NA 说明:持有目标 IPv6 地址的设备,在回应 NS 的 MAC 查询,或者主动告知自己的地址 / MAC 变化了。
回复 NA 的时机:
- 收到 NS 请求时:当设备收到针对自己 IPv6 地址的 NS 报文,会发 NA 回应,告诉对方自己的 MAC 地址;
- 地址 / MAC 变化时:设备的 IPv6 地址或 MAC 更新后,会主动发 NA 通知邻居(比如接口重启、地址变更);
- DAD 检测时 :若设备发现自己的地址和别人重复,会发 NA 宣告冲突。

冲突
谁后做谁出问题
然后地址解析
已知对方ipv6的地址不知道对方mac
ipv6也没有arp
直接通过ns 报文去问 对方na回复mac
地址解析的ns报文有源地址
冲突检测的ns报文无源地址为::
冲突检测na为组播
注意地址解析NA报文为单播!

NA 之后→终端 / 设备把对方的 IPv6 地址和 MAC 地址存进自己的邻居缓存表→之后发数据直接用这个 MAC 地址,不用再发 NS 查询
NA 让双方 "记住了对方的地址对应关系",接下来就能直接通信了。
ipv6终端入网全流程
-
**终端启动,生成链路本地地址(LLA)**如:fe80::xxxx:xxxx:xxxx:xxxx(这一步不需要 RA)
-
终端发送 RS 报文目的:ff02::2(所有路由器)作用通告我来了
-
路由器回复 RA 报文内容包括:
- IPv6 前缀(如 2001:db8:1::/64)
- 是否用 SLAAC(A 位)
- 是否用 DHCPv6(M/O 位)
- 默认网关(路由器自己的链路本地地址)
- MTU 等参数
-
**终端根据 RA 生成全球单播地址(SLAAC)**格式:前缀 + 接口标识(EUI‑64)例:2001:db8:1::aabb:ccff:fedd:eeff
-
终端执行 DAD(重复地址检测)
- 发 NS:目标地址 = 自己要使用的地址
- 看有没有设备回复 NA
- 有回复 → 地址冲突,不能用
- 无回复 → 地址可用
-
终端设置默认网关把 RA 报文中的路由器链路本地地址加入路由表。
-
终端要和网关通信,发 NS 查询网关 MAC目标网关的 IPv6 地址目的地址:请求节点组播地址
-
网关回复 NA,告诉终端自己的 MAC终端收到后,把 "IPv6 → MAC" 写入邻居缓存表。
-
终端开始正常通信 有了地址、网关、MAC,就能发 IPv6 数据包了








跨链路转发