DHCP地址分配过程

wKiom1Y5ePzjxJ_qAADDg5NzUFM195.jpg

1.发现阶段,即DHCP客户端寻找DHCP服务器的阶段。因为DHCP服务器的IP地址对于客户端来说是未知的,所以DHCP客户端以广播方式发送DHCP Discover报文来寻找DHCP服务器,只有DHCP Server才会进行响应。


2.提供阶段,即DHCP服务器提供IP地址的阶段。DHCP Server接收到Client的DHCP Discover报文后,从IP地址池中挑选一个尚未分配的IP地址分配给客户端,向该客户端发送包含出租IP地址和其它设置的DHCP Offer报文。


3.选择阶段,即DHCP Client选择IP地址的阶段。如果有多台DHCP Server向该客户端发来DHCP Offer报文,客户端只接受第一个收到的DHCP Offer报文,然后以广播方式向各DHCP服务器回应DHCP Request报文,该信息中包含向所选定的DHCP服务器请求IP地址的内容。


4.确认阶段,即DHCP服务器确认所提供IP地址的阶段。当DHCP服务器收到DHCP客户端回答的DHCP Request报文后,判断Option字段中的DHCP Server的IP地址是否与自己的相同。如果不相同,则不作任何处理;否则,DHCP Server会向客户端发送包含它所提供的IP地址和其它设置的DHCP ACK确认报文。DHCP Client收到DHCP ACK报文后,检查DHCP Server分配给自己的IP地址是否能够使用,比如在以太网络中,DHCP Client会发免费的ARP请求来确定IP地址是否已经被其他客户端使用。如果IP地址已经被其他客户端使用,则该DHCP Client会发DHCP Decline报文通知DHCP Server禁用这个IP地址以免引起冲突;否则,该DHCP Client成功获取IP地址。


5.更新租约,DHCP服务器向DHCP客户端出租的IP地址都有一个租界期限,期满后DHCP服务器便会回收出租的IP地址。如果DHCP客户端要延长其IP租约,须更新其IP租约。DHCP客户端在IP租约期限过一半时,会自动向DHCP服务器发送单播的DHCP Request报文续延租期。


6.更新租约,DHCP服务器收到DHCP Request续租报文后,根据报文中的ciaddr信息申请IP地址,如果成功,给DHCP客户端回应DHCP ACK报文。


7.更新租约,DHCP客户端如果收到DHCP ACK报文,则租期相应向后延长。如果没有收到DHCP ACK报文,客户端继续使用这个IP地址,在使用租期过去7/8时,向DHCP服务器发送广播的DHCP Request报文。


8.更新租约,如果此IP地址无法再分配给该DHCP客户端时,DHCP服务器给DHCP客户端回应DHCP NAK报文,否则给DHCP客户端回应DHCP ACK报文。DHCP客户端收到DHCP ACK报文后,租期相应延长。如果没有收到DHCP ACK,也没有收到DHCP NAK报文,则客户端可以继续使用这个IP地址,直到租期到期。如果收到DHCP NAK报文,则客户端不能继续使用这个IP地址。DHCP客户端在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP服务器收到DHCP Release报文后,会回收相应的IP地址重新分配。DHCP客户端断开后重新接入ME60时,如果IP地址租期没到,不会发送DHCP Discover报文了,而是直接发送包含前一次所分配的IP地址的DHCP Request请求消息。当DHCP服务器收到这一信息后,就会尝试让DHCP客户端继续使用原来的IP地址,并回答一个DHCP ACK报文。如果此IP地址已无法再分配给原来的DHCP客户端使用时,则DHCP服务器给DHCP客户端回应一个DHCP NAK报文。当原来的DHCP客户端收到此DHCP NAK报文后,会重新广播发送DHCP Discover发现信息来请求新的IP地址。


文章来自:http://blog.chinaunix.net/uid-20530497-id-2203869.html