ND协议——无状态地址自动配置 (SLAAC)

参考学习:计算机网络 | 思科网络 | 无状态地址自动配置 (SLAAC) | 什么是SLAAC_瘦弱的皮卡丘的博客-CSDN博客

与 IPv4 类似,可以手动或动态配置 IPv6 全局单播地址。但是,动态分配 IPv6 全局单播地址有两种方法:

  • 如图所示,无状态地址自动配置 (SLAAC)
  • IPv6 的动态主机配置协议(有状态 DHCPv6)

有状态 DHCPv6分配IPv6地址可以阅读我的上一篇文章
一文读懂DHCP协议 && DHCPv6协议
过程")

一、SLAAC概述

SLAAC 是一种可以在没有 DHCPv6 服务器服务的情况下获取 IPv6 全局单播地址的方法。SLAAC 的核心是 ICMPv6

ICMPv6 与 ICMPv4 类似,但它包括其他功能,也是一种更稳定的协议。SLAAC 使用 ICMPv6 路由器请求消息路由器通告消息提供通常本由 DHCP 服务器提供的编址和其他配置信息。

  • 路由器请求 (RS) 消息 - 当配置客户端以使用 SLAAC 自动获取其编址信息时,该客户端会将 RS 消息发送至路由器。将 RS 信息发送至 IPv6 所有路由器组播地址 FF02::2
  • 路由器通告 (RA) 消息 - 路由器发送 RA 消息来提供所配置客户端的编址信息,以自动获取其 IPv6 地址。RA 消息包括本地数据段的前缀和前缀长度。客户端使用此信息创建自己的 IPv6 全局单播地址。**路由器定期发送 RA 消息或响应 RS 消息。**默认情况下,思科路由器每隔 200 秒发送一次 RA 消息。始终将 RA 消息发送到 IPv6 全节点组播地址 FF02::1

SLAAC 是无状态的。无状态服务意味着没有维护网络地址信息的服务器。与 DHCP 不同,没有 SLAAC 服务器知道哪些 IPv6 地址正在使用中,哪些地址是可用的。

二、SLAAC 工作原理

路由器必须启用 IPv6 路由,然后才能发送 RA 消息:

makefile 复制代码
 Router(config)# ipv6 unicast-routing 

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

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

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

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

  • EUI-64 - PC1 将使用 EUI-64 进程通过其 48 位 MAC 地址创建一个 IID。
  • 随机生成 - 该 64 位 IID 可以是客户端操作系统随机生成的数值。

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

由于 SLAAC 是无状态的过程,PC1 必须先验证此新创建的 IPv6 地址是唯一的,然后才能使用。

如图 4 所示,PC1 使用一个特殊构造的多播地址发送 ICMPv6 邻居请求消息,此地址称为请求节点组播地址,它复制 PC1 的 IPv6 地址的最后 24 位。

  • 如果没有其他设备回应邻居通告消息,则实际上确保该地址是唯一的,可被 PC1 使用。
  • 如果 PC1 接收到邻居通告,那么该地址就不是唯一的,而且操作系统必须确定可用的新接口 ID。

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

三、SLAAC 和 DHCPv6

是否要配置客户端以使用 SLAAC、DHCPv6 或两者的组合来自动获取其 IPv6 地址信息取决于 RA 消息中的设置。

这两个标记是管理地址配置标记(M 标记)其他配置标记(O 标记)

如图所示,如果使用 M 标记和 O 标记的不同组合,RA 消息会包含 IPv6 设备的三个编址选项之一。

  • SLAAC(仅路由器通告【RA】)【A=1, M=0, O=1】
  • 无状态 DHCPv6(路由器通告【RA】和 DHCPv6)
  • 有状态 DHCPv6(仅限 DHCPv6)【A=0, M=1】

:虽然 RA 消息指定了客户端在动态获取 IPv6 地址时应使用的过程,但是客户端操作系统也可能选择忽略 RA 消息,并且只使用 DHCPv6 服务器的服务。

=2023/10/10更新=====

ICMPv6路由器请求(Router Solicitation)消息

其中字段含义如下:

Options(选项)字段:只能是源链路层地址选项,表明该报文发送者的链路层地址,不过如果IPv6报头的源地址为未指定地址,则不能包括该选项。

ICMPv6路由器请求(Router Solicitation)消息 :Type字段值为133,节点启动后,通过RS消息向路由器发出请求,请求前缀和其他配置信息,用于节点的自动配置。

ICMPv6路由器通告(Router Advertisement)消息

其中字段含义如下:

选项字段中个选项的含义如下:

1)源链路层地址选项:路由器发送RA报文的接口的链路层地址。

2)MTU选项:包含了在链路上运行的链路层协议所能支持的MTU最大值。

3)前缀信息选项(Prefix Information Option):用于地址自动配置的前缀信息,可包含多个。前缀信息选项在RFC2461中定义,用于表示地址前缀和有关地址自动配置的信息,值用于RA报文中;在其他的消息中,此选项应该被忽略。其格式如下图所示:

其各字段的含义如下所示:

4)路由信息选项(Route Information Option):用于主机生产默认路由。路由信息选项在RFC4191中定义,取代了原前缀信息选项的功能。接收RA报文的主机将选项中的信息添加到自己的贝蒂路由表中,以便在发送报文时做出更好地转发决定,其个数如下图所示:

其中各字段含义如下所示:

ICMPv6路由器通告(Router Advertisement)消息 :Type字段值为134,对RS消息进行回应。在没有抑制RA消息发布的条件下,路由器会周期性地发布RA消息,其中包括前缀信息选项和一些标志位的信息。

在Native模式下分为RA模式和PD模式。板子如果在Native模式下,会先启动RA模式,再到PD模式。
而SLAAC在RA模式下启动,DHCPv6在PD模式启动。

相关推荐
网络研究院2 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智2 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest2 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_2 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
2601_961845152 天前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博
程序猿阿伟2 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
InHand云飞小白2 天前
无人值守站点网络困境?工业级路由器IR315破解连接难题
网络·物联网·4g·工业路由器·4g路由器·iiot·蜂窝路由器
森G2 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
江华森2 天前
TCP/IP 协议栈实战 — 7 个实验详解
网络·tcp/ip·智能路由器
酉鬼女又兒2 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php