DHCPV6 地址分配设计
DHCPV6地址分配设计包括 DHCPV6地址/前缀分配过程、DHCPV6地址/前缀租约史新过程、DHCPV6中继代理。
1、DHCPV6 地址/前缀分配过程
DHCPV6 服务器可以为客户端 Client 进行服务,服务的内容是分配地址/前缀的过程,分配地址/前缀的过程可以分成两种,一种是两个消息交互的快速分配过程,另外一种是四个消息交互的分配过程。
1)快速分配地址过程
两个消息交互的快速分配过程如下图所示:
2)如果 DHCPV6服务器支持快速分配过程,则直接返回 Reply 消息,为客户端分配 IPV6地址/前缀和其他网络配置参数。如果 DHCPV6服务器不支持快速分配过程,则采用交互四个消息的分配过程为客户端分配 PPV6地址/前缀和其他网络配置参数。
四个消息交互的分配过程如下图所示:
步骤 | 发送的消息 | 说明 |
1 | Solicit | DHCPV6客户端发送该消息,请求DHCPV6服务器为其分配IPV6地址/前缀和网络配置参数。 |
2 | Advertise | 如果 Solicit 消息中没有携带 Rapid Commit 选项,或 Solicit 消息中携带 Rapid Commit 选项,但服务器不支持快速分配过程,则DHCPV6 服务器回复该消息,通知客户端可以为其分配的地址前缀和网络配置参数。 |
3 | Request | 如果 DHCPV6 客户端接收到多个服务器回复的 Advertise 消息,则根据消息接收的先后顺序、服务器优先级等,选择其中一台服务器,并向该服务器发送Request 消息,请求服务器确认为其分配地址/前级和网络配置参数。 |
4 | Reply | DHCPV6 服务器回复该消息,确认将地址/前缀和网络配置参数分配给客户端使用。 |
DHCPV6分配方式为前缀表示方法类似于 DHCPV4 CIDR:prefix/prefix-length,如:2001:DB8:12::/40,专门的单播地址(Special UnicastDHCPV6地址):::FF/96+ [32比特 DHCPV4地址],如: ::FFFF:192.168.41.90
全球单播地址(Global Unicast Addresses),唯一和可路由 DHCPV6地址,目前只有头三位的001被指派:如0010000000000000(2000::/3)、0011111111111111 (3FFF::/3)
2、DHCPV6 地址/前缀租约更新过程
DHCPV6服务器分配给客户端的 IV6地址/前缀具有一定的租借期限。租借期限由有效生命期(Valid Lifetime)决定。地址/前缀的租借时间到达有效生命期后,DHCPV6客户端不能再使用该地址/前缀。在有效生命期到达之前,如果 DHCPV6客 户端希望继续使用该地址/前缀,则需要更新地址/前缀租约。通过 Renew 更新地址/前缀租约如下图所示:
如上图所示,地址/前缀租借时间到达时间 T1(推荐值为首选生命期 PreferredLifetime 的一半)时,DHCPV6客户端会向为它分配地址/前缀的 DHCPV6服务器单播发送 Renew 报文,以进行地址/前缀租约的更新。如果 客户端可以继续使用该地址/前缀,则 DHCPV6服务器回应续约成功的 Reply报文,通知DHCPV6客户端已经成功更新地址/前缀租约:如果该地址/前缀不可以再分配给该客户端,则 DHCPV6服务器回应续约失败的 Reply报文,通知客户端不能获得新的租约。通过 Rebind 更新地址/前缀租约如下图所示:
如上图所示,如果在 T1时发送的 Renew 请求更新租约,但是没有收到DHCPV6服务器的回应报文,则 DHCPV6客户端会在 T2(推荐值为首选生 命期的0.875倍)时,向所有DHCPV6服务器组播发送Rebind 报文请求更新租约。如果客户端可以继续使用该地址/前缀,则 DHCPV6服务器回 应续约成功的 Reply报文,通知 DHCPV6客户端已经成功更新地址/前缀租约:如果该地址/前缀不可以再分配给该客户端,则 DHCPV6服务器回应续 约失败的Reply报文,通知客户端不能获得新的租约:如果 DHCPV6客户端没有收到服务器的应报文,则到达有效生命期后,客户端停止使用该地址/前缀。
3、DHCPV6 中继代理
"DHCPV6客户端希望从位于不同链路的 DHCPV6服务器请求地址和配置参数时,客户端需要通过 DHCPV6中继代理才能与服务器进行通信。中继代理节点收到来自客户端的 DHCPV6消息,重新封装成 Relay-forwward 报文转发给不在同一链路的服务器,服务器回应的 DHCPV6消息被封装成 Relay-reply 报文交给 DHCPV6中继代理节点,中继代理节点拆除中继封装还原成DHCPV6消息再转交给 DHCPV6客户端,从而完成客户端与服务器之间的通信。
对于 DHCPV6客户端 Client 与服务器 Server 的通信路径来说,是可以涵盖不止一个 DHCPV6的中继的。并且每当 DHCPV6客户端与服务器的通信路径经过一个中继节点,DHCPV6的消息都会重新进行再一次的中继封装和解封装。DHCPV6中继代理的工作过程如下图所示: