从上一篇文章 DHCPv6概述 中介绍我们已经知道DHCPv6有Stateful和Stateless两种方式,这篇文章我们就来详细介绍一下这两种方式。
有状态DHCPv6方式:
客户端通过 DHCPv6 方式获取地址和其他网络配置信息(例如DNS、NIS、SNTP服务器等参数)。有状态DHCPv6方式可以通过DHCPv6四步交互和DHCPv6两步交互来实现。
无状态DHCPv6方式:
客户端通过DHCPv6方式获取网络配置信息(不包括地址)。
以下介绍DHCPv6的各种交互方式:
一、Stateful DHCPv6 - 四步交互
DHCPv6-Client DHCPv6-Server
| (1)Solicit |
|------------------------->|
| (2)Advertise |
|<-------------------------|
| (3)Request |
|------------------------->|
| (4)Reply |
|<-------------------------|
有状态DHCPv6方式-四步交互地址 分配过程:
1)DHCPv6客户端发送Solicit报文,请求DHCPv6服务器为其分配IPv6地址和网络配置参数。
2)如果Solicit报文中没有携带Rapid Commit选项,或Solicit报文中携带Rapid Commit选项,但服务器不支持快速分配过程,则DHCPv6服务器回复Advertise报文,通知客户端可以为其分配的地址和网络配置参数。
3)如果 DHCPv6 客户端接收到多个服务器回复的Advertise报文,则根据Advertise报文中的服务器优先级等参数,选择其中一台服务器,并向该服务器发送Request报文,请求服务器确认为其分配地址和网络配置参数。
4)DHCPv6服务器回复Reply报文,确认将地址和网络配置参数分配给客户端使用。
DHCPv6服务器分配给客户端的IPv6地址/前缀具有一定的租借期限。租借期限由有效生命期决定(renew rebind)。
Renew
DHCPv6-Client DHCPv6-Server
| (1)Renew |
T1 |------------------>|
| (2)Reply |
|<------------------|
Rebind
DHCPv6-Client DHCPv6-Server
| (1)Renew |
T1 |----------------------->|
| . |
| . |
| . |
T2 | (2)Rebind |
|----------------------->|
| (3)Reply |
|<-----------------------|
DHCPv6客户端会在T2时,向所有 DHCPv6 服务器组播发送Rebind报文请求更新租约。
地址租约:T1=0.5(首选生命期Preferred Lifetime的一半),T2=0.8(向所有DHCPv6服务器组播发送Rebind报文请求更新租约)
有状态DHCPv6方式- 两步交互
DHCPv6-Client DHCPv6-Server
| (1)Solicit(cotains a Rapid Commit option) |
|------------------------------------------>|
| (2)Reply |
|<------------------------------------------|
二、有状态DHCPv6方式- 两步交互地址 分配过程:
1)DHCPv6客户端在发送的Solicit报文中携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配地址和网络配置参数。
2)如果DHCPv6服务器支持快速分配地址,则直接返回Reply报文,为客户端分配IPv6地址和其他网络配置参数。
注:两步交互常用于网络中只有一个DHCPv6服务器的情况, DHCPv6客户端在发送的Solicit消息中携带Rapid Commit选项!
三、DHCPv6无状态方式
无状态DHCPv6服务主要是配合基于路由器公告的无状态地址自动配置方式使用, DHCPv6 客户端希望从DHCPv6服务器获取通过路由器公告不能获得的配置参数,如DNS服务器地址、域名等信息,客户端IPv6地址仍然通过路由器公告方式生成,并不希望DHCPv6服务器分配地址。
在实现上,DHCPv6客户端选择了服务器以后,向服务器发送INFORMATION-REQUEST报文请求提供相关配置参数,服务器收到请求回应以REPLY报文提供请求的配置参数发送给客户端。无状态DHCPv6服务允许和有状态DHCPv6服务同时使用,DHCPv6服务器根据客户端的请求类型决定不同的应答方式。
注:Stateless-used if another methed of assigning IPv6 address is preferred over DHCPv6。
Link-local 地址可用于邻居发现协议(neighbor discovery protocol)和无状态自动配置进程。DHCPv6无状态一般只分DNS、Domain等参数信息,不分地址,而RADVD是分地址,网关用的。
DHCPv6无状态配置过程
DHCPv6-Client DHCPv6-Server
| |
| Infomation-request: |
| includes an Option Request option |
|------------------------------------------->|
| Reply: |
| includes the requested options |
|<-------------------------------------------|
DHCPv6 无状态配置的具体过程为:
客户端以组播的方式向DHCPv6服务器发送Information-request报文,该报文中携带Option Request选项,指定客户端需要从服务器获取的配置参数。服务器收到Information-request报文后,为客户端分配网络配置参数,并单播发送Reply报文将网络配置参数返回给客户端。
客户端检查Reply报文中提供的信息,如果与Information-request报文中请求的配置参数相符,则按照Reply报文中提供的参数进行网络配置;否则,忽略该参数。如果接收到多个Reply报文,客户端将选择最先收到的Reply报文,并根据该报文中提供的参数完成客户端无状态配置.