「DHCPv6」- 有状态地址自动配置(Stateful Address Autoconfiguration)

  CREATED BY JENKINSBOT

解释:IPv6 地址分配服务器必须保存每个节点的状态信息,并管理这些保存的信息,这种方式称之为 IPv6 有状态地址自动配置。

有状态自动配置,基于 DHCPv6 来实现:
1)通过 DHCPv6 报文交互,DHCPv6 Server 自动获取,
2)并配置 IPv6 Address、Network Prefix、其他网络配置参数(DNS、NIS、SNTP 服务器地址等参数)。
3)在终端设备访问网络的场景中使用;

地址分配

四步交互

四步交互是指 DHCPv6 Client 与 DHCPv6 Server 交互四次来完成前缀/地址等参数获取的过程。

1)DHCPv6 Client 发送 Solicit 消息,请求 DHCPv6 Server 为其分配 IPv6 Address、Network Prefix、网络配置参数;
2)DHCPv6 Server 回复 Advertise 消息,通知 Client 分配给它的地址/前缀和网络配置参数;
3)DHCPv6 Client 发送 Request 消息,请求服务器确认为其分配地址/前缀和网络配置参数。如果接收到多个服务器回复的 Advertise 消息,则根据消息接收的先后顺序、服务器优先级等,选择其中一台服务器,并向该服务器发送 Request 消息;
4)DHCPv6 Server 回复 Reply 消息,确认将地址/前缀和网络配置参数分配给客户端使用(如果地址无法使用,则通过 Reply 消息的其它字段来表示地址分配失败;

两步交互

DHCPv6 Client 在发送的 Solicit 携带 Rapid Commit 选项,表示 Client 希望 Server 能够快速为其分配地址/前缀和网络配置参数。对比四步交互,省略 2、3 两步。

1)DHCPv6 Client 发送 Solicit 报文,携带 Rapid Commit 选项。
2)DHCPv6 Server 接收 Solicit 报文,将会判断:
—- 如果 DHCPv6 Server 支持快速分配,则直接返回 Reply 报文,为客户端分配IPv6地址/前缀和其他网络配置参数。
—- 如果 DHCPv6 Server 不支持快速分配,则将采用四步交互方式。
注意事项:
1)两步交换可以提高 DHCPv6 分配过程的效率,但适用在网络中只存在一台 DHCPv6 服务器的情况下。
2)在有多个 DHCPv6 Server 的网络中,多个 DHCPv6 Server 都可以为 DHCPv6 Client 分配IPv6地址/前缀和其他配置参数,但是 Client 实际只能使用其中一个 Server 为其分配的IPv6地址/前缀和配置参数,导致其他 Server 无法得知其分配的地址是否被使用而产生地址浪费。

租约更新

DHCPv6 Server 分配的IPv6地址/前缀具有有效时间。地址/前缀的租借时间超过有效时间后,DHCPv6 Client 不能再使用该地址/前缀。所以在有效时间超时前,如果DHCPv6 Client 希望继续使用该地址/前缀,则需要更新地址/前缀的租约。

T1 (Preferred Lifetime * 0.5)

1)DHCPv6 Client 在T1时刻(默认为 Preferred Lifetime * 0.5)发送 Renew 报文进行地址/前缀租约更新请求。
2)如果DHCPv6 Client 可以继续使用该地址/前缀,则DHCPv6 Server 回应续约成功的Reply报文,通知DHCPv6 Client 已经成功更新地址/前缀租约。否则,DHCPv6 Server 回应续约失败的Reply报文,通知DHCPv6 Client 不能获得新的租约。

T2 (Preferred Lifetime * 0.8)

如果DHCPv6 Server 未响应T1时刻DHCPv6 Client 发出的Renew请求,则客户端会在T2(默认为 Preferred Lifetime * 0.8)向所有DHCPv6 Server 组播发送Rebind请求更新租约。

1)DHCPv6 Client 在T1时刻发送Renew请求更新租约,但是没有收到DHCPv6 Server 的回应报文。
2)DHCPv6 Client 在T2时刻,向所有DHCPv6 Server 组播发送Rebind报文请求更新租约。
3)如果DHCPv6 Client 可以继续使用该地址/前缀,则DHCPv6 Server 回应续约成功的Reply报文,通知DHCPv6 Client 已经成功更新地址/前缀租约。否则DHCPv6 Server 回应续约失败的Reply报文,通知DHCPv6 Client 不能获得新的租约。

地址确认

当客户端有断电、掉线、漫游等情况发生时,客户端会发送Confirm报文确认自己的IPv6地址是否可用。如果客户端确认的地址是合法的,则服务器回应;如果没有回应,则客户端需要重新启动地址申请流程。

冲突检测

客户端完成地址申请后,会在开始使用该地址前发起 DAD 探测。如果 DAD 检测到地址存在冲突,则客户端发送Decline消息通知服务器,并不再使用该地址。

地址释放

当客户端不需要再使用某地址时,将发送Release消息至服务器,发起释放地址的交互流程。