DHCP原理介绍和8个报文

DHCP工作过程:
DHCP原理介绍和8个报文
DHCP采用UDP为传输协议
主机端口为68,服务器端口为67

1、Client发出DHCP Discover报文
———Client开机或重新启动网卡后,会向网络中以广播形式发出一个Discover报文,该报文的源ip为0.0.0.0,目标ip为255.255.255.255

2、服务器回复offer报文
———网络中的所有主机收到Discover报文后会直接丢弃,所有DHCP服务器接收到该报文都会发送一个Offer报文。
———Offer报文中含有能够提供给Client预使用的ip地址和服务器自己的ip地址,以便区分不同的服务器,发出Offer报文后在本地作IP地址分配记录。
服务器基于以下条件进行分配ip地址:
(1)该MAC地址曾使用过某个ip,且当前无人使用,则将此ip提供
(2)该MAC地址绑定了某特定ip,则将此ip提供
(3)以上两种情况都不符,则随机选取ip地址提供
注意:Offer报文中提供的ip地址不一定为最终分配的地址,服务器会保留该地址直到Client正式发出请求。

3、发送Request包回应服务器
———Client通常只处理最先收到的Offer报文,然后发出一个广播的Request报文,并向其中加入选中的Server ip地址和需要的ip地址
注意:Request报文采用广播形式,是为了让其它发送Offer报文的服务器也接受到该数据包,清除刚才发出的Offer报文。

4、服务器回复响应
———服务器收到Request报文后,判断报文中Server ip地址是否与自己相同,若不相同,则清除刚才ip地址分配记录;若相同,会向Client响应一个ACK报文,并在选项字段增加ip地址的使用租期信息。
注意:如果收到的Request消息中地址信息不正确,如Client已经迁移到新的子网或者租约已经过期,则服务器会发送NAK报文给Client让重新申请。

5、检查ip是否可用
———Client收到ACK报文后,检查服务器分配的ip地址能否使用,若可以使用,则成功获得ip地址并根据租期自动启动续约过程;若不能使用(已被使用),则向服务器发送Decline报文,通知禁用这个ip地址,然后开始重新申请。

6、释放ip地址
———成功获取ip地址后,可随时发送Release报文释放ip地址,服务器收到后就回收此ip并重新分配。

7、续租
———在使用租期到50%时刻处,Client会以单播形式向服务器发送Request报文来续租,若服务器没有回应ACK报文,则到87.5%时刻处,Client再以广播形式发送Request报文来续租,若服务器没有回应ACK报文,则租约到期时,Client发送Release报文释放ip地址。

DHCP的8个数据报文:
Discover:广播形式发送用于发现网络中的DHCP服务器
Offer:提供预使用ip地址和服务器自己的ip地址
Request:广播发送选中的服务器ip和请求使用的ip地址
ACK:提供Client请求的ip地址和租约信息
NAK:响应所请求的ip地址不可用,让重新申请
Decline:通知服务器提供的ip地址不可用
Release:释放ip地址,通知服务器回收
Inform:向服务器获取更详细的ip地址配置信息