报文类型
DHCP discover
:客户端在网络中寻找
DHCP
服务器,使用的是广播报文。
DHCP offer
:服务端回复客户端的
discover
报文(该报文中携带了网络参数)
DHCP request
:客户端请求获取
offer
报文中的网络参数
DHCP ack
:对
request
报文的确认。
DHCP nak
:对
request
报文的拒绝。
DHCP release
:客户端发送给服务端,要求释放
IP
地址
DHCP inform
:当客户端获取到
IP
地址后,使用该报文获取其他网络参数(现在已经不使用了)
DHCP decline
:当客户端检测到
IP
冲突时,告知给服务器使用。
172.16.0.0/16
172.16.000 00000.00000000/19----172.16.0.0/19----172.16.0.1-172.16.31.254
172.16.001 00000.0/19----172.16.32.0/19-----172.16.32.1-172.16.63.254
172.16.010 00000.0/19----172.16.64.0/19----172.16.64.1-172.16.95.254
172.16.011 00000.0/19----172.16.96.0/19----172.16.96.1-172.16.127.254
172.16.100 00000.0/19----172.16.128.0/19
172.16.101 00000.0/19----172.16.160.0/19
172.16.110 00000.0/19----172.16.192.0/19
172.16.111 00000.0/19----172.16.224.0/19
工作过程
首先,
PC
会广播发送
DHCP discover
报文,
Server
在接收到这个广播包以后,先会选择一个未分配
的
IP
地址,然后(单播或广播)发送一个
DHCP offer
不报文,该报文携带了网络参数给
PC
。
华为体系中,所有的网络设备均使用单播,
linux
使用广播,
windows
两者均可。
若网络中存在多个
DHCP
服务器,又因为
discover
报文是广播发送,故所有的
DHCP
服务器均会回复
offer
报文给
PC
端。此时,
PC
仅对接收到的第一个
offer
报文进行回复,其余均丢弃。
PC
再一次使用广播发送
request
报文向
server
请求
offer
报文中携带的网络参数。
request
报文有两重意义;
1
、向选择的服务端请求网络参数;
2
、告诉其余服务器,已经有了
选择。
服务器接收到
request
报文后,若目的为本地,则发送
ACK
报文回复;若目的不为本地,则丢弃报
文。
当存在两台
PC
同时请求地址,结果服务器给出的地址是同一个,这也就会导致后一个发送
request
报文的
PC
无法获取地址。
PC
接收到
ack
报文后,可以使用该
IP
地址,但是同时
PC
会发送三次免费
ARP
来检测网络中是否有其
他主机使用该
IP
地址。
如果网络中存在该
IP
地址,则
PC
向
Server
发送
DHCP decline
报文来通知服务器该
IP
冲突,并
重新发送一个
DHCP discover
重新申请
IP
地址。
如果网络中不存在该
IP
地址,则直接使用该
IP
内容。
如果
PC
需要释放
IP
地址,则发送
DHCP release
报文给服务端。
DHCP
租期
PC
在申请到
IP
地址后,会启动下述三种计时器。
租期更新计时器
华为体系中,
DHCP
服务器下发给
PC
的
IP
地址可用
默认时长为
24
小时
。
当该租期到达
50%
(
12
小时),
PC
会单播发送
DHCP request
报文给服务器要求续租,如果服
务器回复
ACK
报文,则租期时间刷新为
24
小时;若服务器回复
NAK
报文,则
PC
立马放弃正在
使用的
IP
地址,重新申请。若服务器无回复,则继续使用当前
IP
地址,且租期时间无变化。
租期重绑定计时器
在网络中,可能会因为某些原因导致服务端没有收到或者无法回复
request
报文,在这种情况
下,当租期重绑定计时器超时时,
PC
会重新广播发送
DHCP discover
报文,在网络上重新寻
找
DHCP
服务器。
如果收到了回复,则刷新各类计时器,使用新的
IP
地址
如果收到了拒绝,则
PC
立刻停止使用现有
IP
地址,然后重新申请
IP
地址。
租期失效计时器
如果
PC
在租约到期前都没有收到服务器响应,则
PC
立即停止使用该
IP
地址,然后向服务器发
送
DHCP releaes
报文。
PC
主动放弃使用分配的
IP
地址,此时
PC
会将计时器设置为超时,并删除本地的
IP
地址,向服
务端发送
DHCP release
报文,主动释放
IP
地址。