发送 RA 消息之前必须将路由器启用为 IPv6 路由器。 要启用 IPv6 路由,请使用以下命令配置路由器:

Router(config)# ipv6 unicast-routing

1. 在图 1 所示的示例拓扑结构中,配置 PC1 以自动获取 IPv6 寻址。 自启动开始,PC1 未收到一条 RA 消息,因此,它发送 RS 消息至所有路由器组播地址来通知本地 IPv6 路由器它需要 RA。

2. 如图 2 所示,R1 接收 RS 消息并以 RA 消息作为回应。 RA 消息中包括网络的前缀和前缀长度。 以路由器的本地链路地址为 IPv6 源地址将 RA 消息发送至 IPv6 全节点组播地址 FF02::1。

3. PC1 收到包含本地网络前缀和前缀长度的 RA 消息。 PC1 会使用此信息创建自己的 IPv6 全局单播地址。 PC1 现在有一个 64 位网络前缀,但是还需要一个 64 位接口 ID (IID) 来创建全局单播地址。

PC1 可以使用两种方式创建自己的唯一 IID:

如图 3 所示,PC1 可以将 64 位前缀与 64 位 IID 相结合创建一个 128 位 IPv6 全局单播地址。 PC1 会将路由器的本地链路地址用作其 IPv6 默认网关地址。

4. 由于 SLAAC 是无状态过程,因此,在 PC1 可以使用这个新创建的 IPv6 地址之前必须检验它是否是唯一的地址。 如图 4 所示,PC1 将自己的地址用作目标 IPv6 地址发送了一条 ICMPv6 邻居请求消息。 如果没有其他设备以邻居通告消息作为回应,那么该地址就是唯一的,并且可以由 PC1 使用。 如果 PC1 接收到邻居通告,那么该地址就不是唯一的,而且操作系统必须确定可用的新接口 ID。

此过程是 ICMPv6 邻居发现的一部分,称为重复地址检测 (DAD)。