注: 本文为 “IPv6 中 DHCPv6 路由通告及地址分配”相关文章合辑。
略作重排,未整理去重。
IPv6 下的 DHCP(DHCPv6)
alphadevgo 于 2014-07-16 14:25:11 发布
一、IPv6 概述
IPv6 在 IPv4 的基础上做了很多改进,如扩编地址(由 32 位扩编为 128 位)、支持无状态地址自动配置、简化报头、身份验证、支持新的网络服务(QoS)等,并且增强了移动性和安全性,这使得 IPv6 成为下一代互联网的核心协议。

二、IPv6 支持的两种地址分配方式
2.1 无状态地址自动配置
无状态地址自动配置是指主机通过监听路由通告获得全局地址前缀(64 位),然后在后边缀上自己的接口地址得到全局 IP 地址。接口地址实际上就是 MAC 地址,由于 MAC 地址是 48 位的,通过 IEEE 提供的 EUI64 转换算法,将 48 位的 MAC 地址换算为 64 位后,可从主机向该地址发送一个邻居发现请求(Neighbor Discovery Request),如果无响应,则证明网络地址是可用的。
主机通过无状态地址自动配置获得 IPv6 的过程如图所示

2.2 有状态地址自动配置
有状态地址自动配置是由 IPv4 下的 DHCP 转化而来,IPv6 继承并改进了 DHCP 服务,即 DHCPv6 协议。它向 IPv6 主机提供有状态或无状态的的地址配置。IPv6 主机自动执行无状态地址自动配置,并在相邻路由器发送的路由器公告消息中使用基于以下标记的配置协议(如 DHCPv6):
| 标记 | 含义 |
|---|---|
| M | 托管地址配置标记,也称为 M 标记。 设置为 1 时,此标记指示主机使用配置协议来获取有状态地址。 |
| O | 其他有状态配置标记 ,也称为 O 标记。设置为 1 时,此标记指示主机使用配置协议来获取其他配置设置。 |
M 和 O 标记的组合含义:
| M | O | 含义 |
|---|---|---|
| 0 | 0 | 此组合对应不具有 DHCPv6 基础结构的网络。主机使用非链接本地地址的路由器公告以及其他方法(如手动配置)来配置其他设置。此组合称为无状态自动配置 ( Stateless autoconfiguration )。 |
| 1 | 1 | DHCPv6 用于两种地址(链接本地地址和其他非链接本地地址)和其他配置设置。此组合称为 DHCPv6 有状态(Stateful DHCPv6),其中 DHCPv6 将有状态地址分配给 IPv6 主机。 |
| 0 | 1 | DHCPv6 不用于分配地址,仅用来分配其他配置设置。相邻路由器配置为通告非链接本地地址前缀,IPv6 主机从中派生出无状态地址。此组合称为 DHCPv6 无状态( Stateless DHCPv6 ):DHCPv6 不为 IPv6 主机分配有状态地址,但分配无状态配置设置。 |
| 1 | 0 | DHCPv6 用于地址配置,但不用于其他设置。因为 IPv6 主机通常需要使用其他设置(如域名系统 (DNS) 服务器的 IPv6 地址)进行配置,所以这是一种不太可能的组合。 |
类似于 DHCPv4,DHCPv6 基础结构的组件由下列各项构成:
请求配置的 DHCPv6 客户端、提供配置的 DHCPv6 服务器、以及 DHCPv6 中继代理(当客户端位于不具备 DHCPv6 服务器的子网上时,它在客户端和服务器之间传递信息)。
2、DHCPv6 协议下主机与服务器交互
DHCPv6 协议下客户端与服务器端的交互与 DHCPv4 类似采用如图所示的四步交互:

但 DHCPv6 支持主机与服务器的快速两步交互,即如果客户端发送的 Solicit 报文中有 rapid commit 选项,并且服务器支持该交互方式,就可以进行如图所示的两步交互:

在上述交互过程中提到的 DHCPv6 报文与 DHCPv4 类似,如 solicit 报文类似与 discover 报文,advertise 报文类似于 offer 报文等等。
DHCPv6 报文与 DHCPv4 报文对比
| DHCPv6 消息 | 描述 | 等效的 DHCPv4 消息 |
|---|---|---|
| 要求(solicit) | 由客户端发送以定位服务器。 | DHCP Discover |
| 公告(advertise) | 由服务器对 “要求” 消息进行响应时发送以指明可用性。 | DHCP Offer |
| 请求(request) | 由客户端发送以请求来自特定服务器的地址或配置设置。 | DHCP Request |
| 确认(confirm) | 由客户端发送给所有服务器,以确定对于已连接的链接客户端的配置是否有效。 | DHCP Request |
| 更新(renew) | 由客户端发送给特定服务器以延长分配地址的生存期并获取更新的配置设置。 | DHCP Request |
| 重新绑定(rebind) | 未接收到对 “更新” 消息的响应时由客户端发送给任何服务器。 | DHCP Request |
| 应答(reply) | 对要求、请求、更新、重新绑定、信息请求、确认、发布或拒绝消息进行响应时由服务器发送给特定客户端。 | DHCP Ack |
| 发布(release) | 由客户端发送以指明客户端不再使用分配的地址。 | DHCP Release |
| 拒绝(decline) | 由客户端发送给特定服务器以指明分配的地址已在使用中。 | DHCP Decline |
| 重新配置(reconfigure) | 由服务器发送给客户端以指明该服务器具有新的或更新的配置设置。客户端随后发送 “更新” 或 “信息请求” 消息。 | N/A |
| 信息请求(information-request) | 由客户端发送以请求配置设置(但不包括地址)。 | DHCP Inform |
| 中继转发(relay-forw) | 由中继代理发送以转发消息给服务器。中继转发包含封装为 DHCPv6 中继消息选项的客户端消息。 | N/A |
| 中继应答(relay-reply) | 由服务器发送以通过中继代理发送消息给客户端。中继应答包含封装为 DHCPv6 中继消息选项的服务器消息。 | N/A |
DHCPv6 与 DHCPv4 端口号
DHCP 报文是承载于 UDP 上的高层协议报文,DHCPv4 采用 67(DHCP 服务器)和 68(DHCP 客户端)两个端口号。
DHCPv6 推荐采用 547(DHCPv6 服务器 / Relay)和 546(DHCPv6 客户端)两个端口号。
3、DHCPv6 两种报文结构
DHCPv6 封包有两种结构,在客户端上与中继上使用的报文结构是不同的。
3.1 Client/Server Message Formats(客户端 / 服务器消息格式)
客户端和服务器之间发送的所有 DHCP 消息共享相同的固定格式标头和用于选项的可变格式区域。
消息头和选项中的所有值均按网络字节顺序排列。
选项串行存储在选项字段中,选项之间没有填充。选项是字节对齐的,但不以任何其他方式对齐,例如在 2 或 4 字节边界上。
在客户端和服务器之间发送的 DHCP 消息的格式如图所示:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type | transaction-id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . options . . (variable) . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
msg type :DHCP 消息类型。
transaction-id :此消息交换的事务 id。
3.2 Relay Agent/Server Message Formats(中继代理 / 服务器消息格式)
中继代理与服务器交换消息,以在未连接到同一链路的客户端和服务器之间中继消息。
消息头和选项中的所有值均按网络字节顺序排列。
选项串行存储在选项字段中,选项之间没有填充。选项是字节对齐的,但不以任何其他方式对齐,例如在 2 或 4 字节边界上。
有两条中继代理消息,它们共享以下格式:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type | hop-count | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | link-address | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | peer-address | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | . . . options (variable number and length) .... . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
结束语
从 IPv4 走向 IPv6 是必然的发展趋势,虽然 IPv6 支持无状态的自动分配地址,但这并不意味着 DHCP 会随着 IPv6 的出现以及 IPv6 设备的大量部署而退出历史舞台。不仅在过渡时期 DHCP 是不可或缺的,即便是在将来DHCP 仍将发挥重要作用。
IPV6 协议之 DHCPV6
Smiling Mr. Rui 已于 2024-03-24 16:58:58 修改
背景:
IPv6 动态主机配置协议 DHCPv6 (Dynamic Host Configuration Protocol for IPv6) 是针对 IPv6 编址方案设计, 为主机分配 IPv6 地址 / 前缀和其他网络配置参数。
IPv6 协议具有地址空间巨大的特点,但同时长达 128 比特的 IPv6 地址又要求高效合理的地址自动分配和管理策略。IPv6 无状态地址配置方式是目前广泛采用的 IPv6 地址自动配置方式。配置了该协议的主机只需相邻设备开启 IPv6 路由通告功能,即可以根据通告报文包含的前缀信息自动配置本机地址。
无状态地址配置方案中设备并不记录所连接的 IPv6 主机的具体地址信息,可管理性差。而且当前无状态地址配置方式不能使 IPv6 主机获取 DNS 服务器的 IPv6 地址等配置信息,在可用性上有一定缺陷。对于互联网服务提供商来说,也没有相关的规范指明如何向设备自动分配 IPv6 前缀,所以在部署 IPv6 网络时,只能采用手动配置的方法为设备配置 IPv6 地址。
DHCPv6 技术解决了这一问题。DHCPv6 属于一种有状态地址自动配置协议。
与其他 IPv6 地址分配方式(手工配置、通过路由器通告消息中的网络前缀无状态自动配置等)相比, DHCPv6 具有以下优点:
-
更好地控制 IPv6 地址的分配。DHCPv6 方式不仅可以记录为 IPv6 主机分配的地址,还可以为特定的 IPv6 主机分配特定的地址,以便于网络管理。
-
DHCPv6 支持为网络设备分配 IPv6 前缀,便于全网络的自动配置和网络层次性管理。
-
除了为 IPv6 主机分配 IPv6 地址 / 前缀外,还可以分配 DNS 服务器 IPv6 地址等网络配置参数。
一、DHCPV6 概述
DHCPv6 是一种运行在客户端和服务器之间的协议,与 IPv4 中的 DHCP 一样,所有的协议报文都是基于 UDP 的。但是由于在 IPv6 中没有广播报文,因此 DHCPv6 使用组播报文,客户端也无需配置服务器的 IPv6 地址。
-
客户端侦听的 UDP 目的端口号是 546。
-
服务器、中继代理侦听的 UDP 端口号是 547。
IPv6 协议具有地址空间巨大的特点,但同时长达 128 比特的 IPv6 地址又要求高效合理的地址自动分配和管理策略。
目前 IPv6 地址的分配方法有以下几种:
-
手动配置。手动配置 IPv6 地址 / 前缀及其他网络配置参数(DNS、NIS、SNTP 服务器地址等参数)。
-
无状态自动地址分配。由接口 ID 生成链路本地地址,再根据路由通告报文 RA(Router Advertisement)包含的前缀信息自动配置本机地址。
-
有状态自动地址分配,即 DHCPv6 方式。DHCPv6 又分为如下两种:
1、DHCPv6 有状态自动分配。DHCPv6 服务器自动分配 IPv6 地址 / PD 前缀及其他网络配置参数 (DNS、NIS、SNTP 服务器地址等参数)。
2、DHCPv6 无状态自动分配。主机 IPv6 地址仍然通过路由通告方式自动生成,DHCPv6 服务器只分配 除 IPv6 地址以外的配置参数,包括 DNS、NIS、SNTP 服务器等参数 — 无状态前面已经介绍过,不 在此赘述。

DHCPv6 基本协议架构中,主要包括以下三种角色:
DHCPv6 Client:
DHCPv6 客户端,通过与 DHCPv6 服务器进行交互,获取 IPv6 地址 / 前缀和网络配置信息,完成自身的地址配置功能。
DHCPv6 Relay:
DHCPv6 中继代理,负责转发来自客户端方向或服务器方向的 DHCPv6 报文,协助 DHCPv6 客户端和 DHCPv6 服务器完成地址配置功能。一般情况下,DHCPv6 客户端通过本地链路范围的组播地址与 DHCPv6 服务器通信,以获取 IPv6 地址 / 前缀和其他网络配置参数。如果服务器和客户端不在同一个链路范围内,则需要通过 DHCPv6 中继代理来转发报文,这样可以避免在每个链路范围内都部署 DHCPv6 服务器,既节省了成本,又便于进行集中管理。
DHCPv6 基本协议架构中,DHCPv6 中继代理不是必须的角色。如果 DHCPv6 客户端和 DHCPv6 服务器位于同一链路范围内,或 DHCPv6 客户端和 DHCPv6 服务器直接通过单播交互完成地址分配或信息配置的 情况下,是不需要 DHCPv6 中继代理参与的。只有当 DHCPv6 客户端和 DHCPv6 服务器不在同一链路范围内,或 DHCPv6 客户端和 DHCPv6 服务器无法单播交互的情况下,才需 DHCPv6 中继代理的参与。
DHCPv6 Server:
DHCPv6 服务器,负责处理来自客户端或中继代理的地址分配、地址续租、地址释放等请求,为客户端分配 IPv6 地址 / 前缀和其他网络配置信息。
二、DHCPV6 工作原理
和 DHCPV4 协议类似,DHCPV6 也需要协商一些报文参数用来地址的下发。
DHCPV6 四步交互(当网络环境中存在多个 DHCPV6 服务端):
| 步骤 | 报文 | 发送方 | 目标 | 功能 |
|---|---|---|---|---|
| 第 一 步 | DHCPV6 solicit | DHCPV6 客户端 | DHCPV6 服务端 或者 DHCPV6 服务器 代理 | 类似 DHCPV4 的 discover 报文,用来定位 DHCPV6 服务器,因为 DHCPV6 没有广播,所以采用组播 FF02::1:2 (All DHCP Relay Agents and Servers):所有 DHCPv6 服务器和中继代理的组播地址,这个地址是链路范围的,用于客户端和相邻的服务器及中继代理之间通信。所有 DHCPv6 服务器和中继代理都是该组的成员。 |
| 第 二 步 | DHCPV6 advertise | DHCPV6 服务端 | DHCPV6 客户端 | 类似 DHCPV4 的 Offer 报文,DHCPv6 服务器发送 Advertise 报文来对 Solicit 报文进行回应,宣告自己能够提供 DHCPv6 服务。因为四步交互常用于网络环境存在多个服务端的情况,所以实际上客户端往往会收到多个 advertise 报文,此时客户端需要根据 advertise 报文中携带的服务器优先级等参数,选择其中一个。 |
| 第 三 步 | DHCPV6 request | DHCPV6 客户端 | DHCPV6 服务端 | 客户端收到 advertise 报文后,会发送 requset 报文请求 一个 IPV6 地址,这里同样采用组播发送给所有的服务端。值得注意的是该报文中携带已选择的 DHCPv6 服务 器的 DUID。 含义 1:告知其中一个服务器,我选择了你 ,并向其请求 IPV6 地址 含义 2:告知网络中其他服务器,我选择了其他服务器。 |
| 第 四 步 | DHCPV6 reply | DHCPV6 服务端 | DHCPV6 客户端 | 类似 DHCPV4 的 ACK,DHCPv6 服务器回复 Reply 报文,确认将地址和网络配置参数分配给客户端使用。 |

同时,DHCPV6 设计了一个两步交互的过程,用来当网络中仅存在一个 DHCPV6 服务器的情况,加快下发地址的速度。

DHCPv6 两步交互地址分配过程如下:
-
DHCPv6 客户端在发送的 Solicit 报文中携带 Rapid Commit 选项,标识客户端希望服务器能够快速为其分配地址和网络配置参数。
-
DHCPv6 服务器接收到 Solicit 报文后,将进行如下处理:
-
如果 DHCPv6 服务器支持快速分配地址,则直接返回 Reply 报文,为客户端分配 IPv6 地址和其他网络配置参数,Reply 报文中也携带 Rapid Commit 选项。
-
如果 DHCPv6 服务器不支持快速分配过程,则采用四步交互方式为客户端分配 IPv6 地址 / 前缀和其他网络配置参数。
DHCPV6 无状态自动分配
IPv6 节点可以通过 DHCPv6 无状态方式获取配置参数(包括 DNS、SIP、SNTP 等服务器配置信息,不包括 IPv6 地址)。IPV6 地址通过链路无状态规则自动生成。

DHCPV6 无状态工作过程如下:
-
DHCPV6 客户端以组播方式向 DHCPV6 服务器发送 information request 报文,该报文中携带 option request 选项,指定 DHCPV6 客户端需要从 DHCPV6 服务器获取的配置参数。
-
DHCPV6 服务器收到 information request 报文后,为 DHCPV6 客户端分配网络配置参数,并单播发送 relay 报文,将网络配置参数返回给 DHCPV6 客户端。客户端根据收到的参数完成配置。
三、DHCP 基础配置
服务端
配置 DHCPV6 DUID—DUID 即 DHCPv6 设备唯一标识符,每个服务器或客户端有且只有一个唯一标识符,服务器使用 DUID 来识别不同的客户端,客户端则使用 DUID 来识别服务器。
操作步骤:
sys
[DHCP] dhcpv6 duid ?
ll DUID-LL
llt DUID-LLT— 配置设备的 DUID,默认情况下采用 ll 标准,生成 DUID

| 参数 | 参数说明 | 取值 |
|---|---|---|
| ll | 指定设备采用链路层地址(即 MAC 地址)方式生成 DUID。 | - |
| llt | 指定设备采用链路层地址(即 MAC 地址)加时间的方式生成 DUID。 | - |
| duid | 指定设备的 DUID。 | 偶数位长度的十六进制字符串,长度范围是 8~28, 仅可以配置为包含 0~9、A~F 和 a~f 的组合。 |
配置 IPV6 地址池 —DHCPv6 服务器需要从地址池中选择合适的 IPv6 地址分配给 DHCPv6 客户端,用户需要创建地址池并配置 IPv6 地址池的相关属性,包括地址范围、配置信息刷新时间、不参与自动分配的 IPv6 地址以及静态绑定的 IPv6 地址。根据客户端的实际需要,IPv6 地址分配方式可以选择动态分配或静态绑定方式。
执行步骤:DHCPV6 有状态自动分配 IP
[DHCP] ipv6 — 全局激活 IPV6
[DHCP] int GigabitEthernet 0/0/0— 进入接口
[DHCP-GigabitEthernet0/0/0] ipv6 enable — 接口激活 IPV6
[DHCP-GigabitEthernet0/0/0] ipv6 address 2000::1 64— 配置接口 IPv6 地址
[DHCP] dhcp enable — 启动 DHCP 服务
[DHCP] dhcpv6 pool aaa — 配置 DHCPV6 地址池名称,同时进入 DHCPV6 视图
[DHCP-dhcpv6-pool-aaa] address prefix 2000::/64 ?
life-time Lifetime— 可选,更改默认生命周期,默认有效生命周期默认值为 172800s,即 2 天
值得注意的是 DHCPV6 存在两个时间,一个是默认生命周期,一个是优先生命周期,优先生命周期默认为 86400,即一天

Please press ENTER to execute command — 配置下发地址的网络前缀,类似 IPV4 地址的网络位。
[DHCP-dhcpv6-pool-aaa] excluded-address 2000::1 — 从地址池中排错某些地址,这里需要排除
2000::1,因为这是网关的接口地址。
[DHCP-dhcpv6-pool-aaa] dns-server 2400:3200::1— 分配 IPV6 的 dns 服务器 — 此为阿里免费 dnsV6 地址
[DHCP-GigabitEthernet0/0/0] dhcpv6 server aaa— 接口绑定 DHCPV6 地址池
— 对于 PC 而言,获取 IPV6 地址是通告 IPV6 协议,所以需要开启 RA 路由器通告功能,并且 IPV6 报文中需要携带两种标志




四、DHCPV6 地址更新时间(DHCPV4 租期)
DHCPv6 服务器为 DHCPv6 客户端分配的地址是有租约的,租约由生命期(包括地址的首选生命期和有效生命期构成)和续租时间点(IA 的 T1、T2)构成。地址有效生命期结束后,DHCPv6 客户端不能再使用该地址。在有效生命期到达之前,如果 DHCPv6 客户端希望继续使用该地址,则需要更新地址租约。
DHCPv6 客户端为了延长其与 IA 关联的地址的有效生命期和首选生命期,在 T1 时刻,发送包含 IA 选项的 Renew 报文给服务器,其中 IA 选项中携带需要续租的 IA 地址选项。如果 DHCPv6 客户端一直没有收到 T1 时刻续租报文的回应报文,那么在 T2 时刻,DHCPv6 客户端通过 Rebind 报文向 DHCPv6 服务器继续续租地址。

T1 时刻地址租约更新过程如下:
-
DHCPv6 客户端在 T1 时刻(推荐值为优先生命期的 0.5 倍)发送 Renew 报文进行地址租约更新请求,默认情况下,也就是当时间来到 12h 时将来到 T1 时刻。
-
DHCPv6 服务器回应 Reply 报文。
-
如果 DHCPv6 客户端可以继续使用该地址,则 DHCPv6 服务器回应续约成功的 Reply 报文,通知 DHCPv6 客户端已经成功更新地址租约。
-
如果该地址不可以再分配给该 DHCPv6 客户端,则 DHCPv6 服务器回应续约失败的 Reply 报文,通知 DHCPv6 客户端不能获得新的租约。

T2 时刻地址租约更新过程如下:
-
DHCPv6 客户端在 T1 时刻发送 Renew 请求更新租约,但是没有收到 DHCPv6 服务器的回应报文。
-
DHCPv6 客户端在 T2 时刻(推荐值为优先生命期的 0.8 倍),向所有 DHCPv6 服务器组播发送 Rebind 报文请求更新租约。
-
DHCPv6 服务器回应 Reply 报文。
-
如果 DHCPv6 客户端可以继续使用该地址,则 DHCPv6 服务器回应续约成功的 Reply 报文,通知 DHCPv6 客户端已经成功更新地址 / 前缀租约。
-
如果该地址不可以再分配给该 DHCPv6 客户端,则 DHCPv6 服务器回应续约失败的 Reply 报文,通知 DHCPv6 客户端不能获得新的租约。
如果 DHCPv6 客户端没有收到 DHCPv6 服务器的应答报文,则到达有效生命期后,DHCPv6 客户端停止使用该地址。
五、DHCPV6 一些常用参数基本概念
DHCPV6 组播
在 DHCPv6 协议中,客户端不用配置 DHCPv6 Server 的 IPv6 地址,而是发送目的地址为组播地址的 Solicit 报文来定位 DHCPv6 服务器。
在 DHCPv4 协议中,客户端发送广播报文来定位服务器。为避免广播风暴,在 IPv6 中,已经没有了广播类型的报文,而是采用组播报文。DHCPv6 用到的组播地址有两个:
-
FF02::1:2(All DHCP Relay Agents and Servers):所有 DHCPv6 服务器和中继代理的组播地 址,这个地址是链路范围的,用于客户端和相邻的服务器及中继代理之间通信。所有 DHCPv6 服务器和中继代理都是该组的成员。
-
FF05::1:3(All DHCP Servers):所有 DHCPv6 服务器组播地址,这个地址是站点范围的,用于中继代理和服务器之间的通信,站点内的所有 DHCPv6 服务器都是此组的成员。
UDP 端口号
-
DHCPv6 报文承载在 UDPv6 上。
-
客户端侦听的 UDP 目的端口号是 546。
-
服务器、中继代理侦听的 UDP 端口号是 547。
DHCP 唯一标识符(DUID)
-
DHCP 设备唯一标识符 DUID(DHCPv6 Unique Identifier),每个服务器或客户端有且只有一个唯一标识符,服务器使用 DUID 来识别不同的客户端,客户端则使用 DUID 来识别服务器。
-
客户端和服务器 DUID 的内容分别通过 DHCPv6 报文中的 Client Identifier 和 Server Identifier 选项来 携带。两种选项的格式一样,通过 option-code 字段的取值来区分是 Client Identifier 还是 Server Identifier 选项。
身份联盟(IA)
-
身份联盟 IA(Identity Association)是使得服务器和客户端能够识别、分组和管理一系列相关 IPv6 地址的结构。每个 IA 包括一个 IAID 和相关联的配置信息。
-
客户端必须为它的每一个要通过服务器获取 IPv6 地址的接口关联至少一个 IA。客户端用给接口关联的 IA 来从服务器获取配置信息。每个 IA 必须明确关联到一个接口。
-
IA 的身份由 IAID 唯一确定,同一个客户端的 IAID 不能出现重复。IAID 不应因为设备的重启等因素发生丢失或改变。
-
IA 中的配置信息由一个或多个 IPv6 地址以及 T1 和 T2 生存期组成。IA 中的每个地址都有首选生存期和有效生存期。
-
一个接口至少关联一个 IA,一个 IA 可以包含一个或多个地址信息。
六、DHCPV6 拓展报文

字段含义:
| 字段 | 长 度 | 含义 |
|---|---|---|
| msg-type | 1 字 节 | 表示报文的类型,取值为 1~13,具体请参见 DHCPv6 报文类型 。 |
| transaction-ID | 3 字 节 | DHCPv6 交互 ID,也叫事务 ID,用来标识一个来回的 DHCPv6 报文交互。例如 Solicit/Advertise 报文为一个交互。Request/Reply 报文为另外一个交互,两者有不同的事务 ID。 交互 ID 特点如下:交互 ID 是 DHCPv6 客户端生成的一个随机值,DHCPv6 客户端应当保证交互 ID 具有一定的随机性。 对于 DHCPv6 服务器响应报文和相应的请求报文,两者交互 ID 保持一致。如果是 DHCPv6 服务器主动发起的会话报文,则交互 ID 为 0。 |
| options | 可 变 | 表示 DHCPv6 的选项字段。此字段包含了 DHCPv6 服务器分配给 IPv6 主机的配置 信息,如 DNS 服务器的 IPv6 地址等信息。 |
DHCP 报文类型:
目前 DHCPv6 定义了如下十三种类型报文,DHCPv6 服务器和 DHCPv6 客户端之间通过这十三种类型的报文进行通信,下表记录部分报文和 DHCPV4 的比较。
| 报 文 类 型 | DHCPV6 报文 | DHCPV4 报文 | 说明 |
|---|---|---|---|
| 1 | SOLICIT | DHCP DISCOVER | DHCPv6 客户端使用 Solicit 报文来确定 DHCPv6 服务器的位置。 |
| 2 | ADVERTISE | DHCP OFFER | DHCPv6 服务器发送 Advertise 报文来对 Solicit 报文进行回应,宣告自己能够提供 DHCPv6 服务。 |
| 3 | REQUEST | DHCP REQUEST | DHCPv6 客户端发送 Request 报文来向 DHCPv6 服务器请求 IPv6 地址和其它配置信息。 |
| 4 | CONFIRM | - | DHCPv6 客户端向任意可达的 DHCPv6 服务器发送 Confirm 报文检查自己目前获得的 IPv6 地址是否适用与它所连接的链路。 |
| 5 | RENEW | DHCP REQUEST | DHCPv6 客户端向给其提供地址和配置信息的 DHCPv6 服务 器发送 Renew 报文来延长地址的生存期并更新配置信息。 |
| 6 | REBIND | DHCP REQUEST | 如果 Renew 报文没有得到应答,DHCPv6 客户端向任意可达的 DHCPv6 服务器发送 Rebind 报文来延长地址的生存期并更新配置信息。 |
| 7 | REPLY | DHCP ACK/NAK | DHCPv6 服务器在以下场合发送 Reply 报文:DHCPv6 服务器发送携带了地址和配置信息的 Reply 消息来回应从 DHCPv6 客户端收到的 Solicit、Request、Renew、Rebind 报文。 DHCPv6 服务器发送携带配置信息的 Reply 消息来回应收到的 Information-Request 报文。用来回应 DHCPv6 客户端发来的 Confirm、Release、Decline 报文。 |
| 8 | RELEASE | DHCP RELEASE | DHCPv6 客户端向为其分配地址的 DHCPv6 服务器发送 Release 报文,表明自己不再使用一个或多个获取的地址。 |
| 9 | DECLINE | DHCP DECLINE | DHCPv6 客户端向 DHCPv6 服务器发送 Decline 报文,声明 DHCPv6 服务器分配的一个或多个地址在 DHCPv6 客户端所在链路上已经被使用了。 |
| 10 | RECONFIGURE | - | 在链路上已经被使用了。 10 RECONFIGURE - DHCPv6 服务器向 DHCPv6 客户端发送 Reconfigure 报文, 用于提示 DHCPv6 客户端,在 DHCPv6 服务器上存在新的网络配置信息。 |
| 11 | INFORMATION- REQUEST | DHCP INFORM | DHCPv6 客户端向 DHCPv6 服务器发送 InformationRequest 报文来请求除 IPv6 地址以外的网络配置信息。 |
| 12 | RELAY-FROM | - | 中继代理通过 Relay-Forward 报文来向 DHCPv6 服务器转发 DHCPv6 客户端请求报文。 |
| 13 | RELAY-REPL | - | DHCPv6 服务器向中继代理发送 Relay-Reply 报文,其中携带了转发给 DHCPv6 客户端的报文。 |
via:
-
IPv6 下的 DHCP(DHCPv6)_dhcpv6 路由通告及地址分配过程 - 优快云 博客 alphadevgo 于 2014-07-16 14:25:11 发布
https://blog.youkuaiyun.com/u013889753/article/details/37877243 -
IPV6 协议之 DHCPV6-优快云 博客 *Smiling Mr. Rui 已于 2024-03-24 16:58:58 修改 *
https://blog.youkuaiyun.com/AXDRXS/article/details/136969582
1976

被折叠的 条评论
为什么被折叠?



