8.1 SLAAC
SLAAC概述
并非每个网络都有DHCPv6服务器,但每个IPv6网络中的设备都需要GUA。SLAAC可以让主机在没有DHCPv6服务器提供服务的情况下创建自己的唯一IPv6全局单播地址。
SLAAC是一种无状态的服务。这意味没有服务器会维护网络地址信息,了解哪些IPv6地址正在使用,以及哪些IPv6地址可用。
SLAAC会使用ICMPv6 RA消息来提供通常原本由DHCP服务器提供的地址信息和其他配置信息。主机会根据RA中发送的信息来配置自己的IPv6地址。RA消息由IPv6路由器每200秒/次
主机还可以发送路由器请求(RS)消息,请求启用了IPv6的路由器向主机发送RA
SLAAC可以单独部署,也可以和DHCPv6一起部署
启用SLAAC
参阅以下拓扑:

假设R1的G0/0/1端口按照指示配置了IPv6 GUA ,同时配置了链接本地地址
使用 show ipv6 interface命令输出当前g0/0/1接口当前配置

虽然路由接口包含IPv6的配置,但这个接口还没有经过启用,让它可以用SLAAC向主机发送包含地址配置信息的RA。
若要发送RA消息,路由器必须使用 ipv6 unicast-routing 全局配置命令加入IPv6全路由器组播组,如输出信息所示。

验证SLAAC是否启用:
show ipv6 interface
仅使用SLAAC的方法:
如果配置 ipv6 unicast-routing命令,那么设备默认会启用仅SLAAC的方法。所有配置了IPv6 GUA的已启用的以太网接口将要发送RA消息,消息中的A标记会置位1,而O标记和M标记会置位0。
A=1标记建议客户端使用RA中通告的前缀来创建自己的IPv6 GUA 。客户端可以使用扩展唯一标识符的方法(EUI-64)创建自己的接口ID,也可以随机生成。
O=0和M=0 这两个标记要求客户端仅使用RA消息中的消息。这个RA消息包含前缀、前缀长度、DNS服务器。MTU和默认网关信息。DHCPv6服务器不会在提供其他可用信息。

在此示例中 PC1经配置会自动获取自己的IPv6地址信息。由于A、O、M标记的设置,PC1只会使用R1发送的RA消息中所包含的信息来执行SLAAC的方法。
默认网关地址是RA消息的源IPv6 GUA。即R1的LLA。默认网关地址只能从RA消息中自动获取。DHCPv6服务器不会提供这种信息。

ICMPv6 RS消息
路由器每200秒回发送一次RA消息。如果从主机那里接收到RS消息,那么它也会发送一条RA消息。
当客户端配置为自动获取地址信息时,它就会向ff02::2的IPv6全路由组播地址发送一条RS消息。

PC1刚刚启动,没有接受到RA消息,所以它向全路由组播地址ff02::2发送了一条RS消息请求RA。
R1也加入了IPv6全路由组播组,因此接受到了这条RS消息,它生成一个包含本地网络前缀和前缀长度的RA。然后它会像所有节点组播IPv6地址ff02::1发送RA消息。PC1则会使用其中的信息来创建唯一的IPv6 GUA
生成接口ID的主机进程
使用SLAAC,主机会从路由RA获取自己64位子网信息。它必须使用以下两种方法生成剩余的64位接口标识符(ID)
- 随机生成-这个64位接口ID可以由客户端操作系统随机生成,这是windows10主机目前使用的方法。
- EUI-64-主机使用48位MAC地址创建接口ID,并在地址中间插入fffe这个十六进制值。出于隐私,某些操作系统默认会使用随机生成,因为EUI-64会使用主机的以太网MAC地址来创建接口ID。
注意: Windows、Linux 和 Mac 操作系统允许用户修改生成的接口ID,以随机生成或使用 EUI-64。
在下面的 ipconfig 输出信息中,Windows 10 PC1 主机使用了 R1 RA 中包含的 IPv6 子网信息,并随机生成了输出中阴影部分所示的 64 位接口 ID。

重复地址检测(DAD)
此过程让主机创建IPv6地址,但不保证其唯一性。
因为SLAAC是无状态过程,所以主机可用首先验证这个新创建的IPv6地址是否唯一,在确定唯一时,才能使用。主机会使用重复地址检测(DAD)进程来确保这个IPv6 GUA是唯一的。
DAD是使用ICMPv6实现的,执行DAD,主机会使用特殊构造的组播地址发送一条ICMPv6邻居请求信息,这个地址叫请求节点组播地址。这个地址会复制主机的最后24位IPv6地址。
如果没有设备回应NA消息,那么这个地址就是唯一的,可以由此设备使用,如果主机收到了NA,那么此地址不唯一,同时操作系统也必须确定一个新的接口 ID
互联网工程任务组(IETF)建议对所以有IPv6单播地址使用DAD,无论此地址是仅SLAAC方式创建的、有状态的DHCPv6获取的、手动配置的。DAD并非强制执行的,因为64位的接口ID提供了1800京(1京为10的16次方)种可能性,并且存在重复的可能性是远程的。但大多数操作系统都会对所有IPv6单播地址执行DAD。
更新: 2025-03-11 13:43:06
原文: https://www.yuque.com/yuhui.net/network/nm4is99h4mvp71vh

评论(0)
暂无评论