您的当前位置:首页正文

DHCP流程详细总结

来源:画鸵萌宠网


DHCP流程总结

在近期分析用户拿不到地址,抓了大量的DHCP报文。现将DHCP流程总结如下,以供大家日后抓到DHCP报文有个参考的模板。

先来介绍一下DHCP流程:

首先是用户端发现本机上没有任何IP数据的设定,它会向网络发出一个DHCP discover的广播包。在一般情况下,DHCP discover的等待时间预设为4秒,也就是说当客户端将第一个DHCP discover广播包发出去之后,在4秒之内没有得到响应的话,就会进行第二次DHCP discover广播。

与此同时,DHCP server收到客户端发来的discover后就会向网络发出ARP请求,试探有没有用户在使用DHCP server即将分配的地址。

当DHCP server发现没有用户在使用这个预分配的地址时,那么DHCP server会发一个offer报文给客户端。此报文包含了分配给主机的IP地址、网关地址、子网掩码、租期时间、域名服务器地址。

客户端收到server 回的offer报文时会再次向网络中发广播包,即request报文。用以响应server端发来的offer报文,告诉DHCP server客户端已经收到服务器分配的信息。

最后DHCP server会单播给客户端一个ACK报文,明确客户端可以使用分配到的数据。到此客户端才真正获得了IP地址和相关的配置信息。

当DHCP分配完成后,客户端会发出免费ARP,确认网络中没有用户使用与我相同的IP地址。

故此一套完整的流程结束,一般情况下只出现discover、offer、request、ack这四个报文。但DHCP一共有6个报文,这些类型是通过DHCP报文option53来识别。option53的值为1是discover;2为offer;3为request;4为declient用来通告DHCP server,你所分配的地址不可用,如IP地址发生冲突时;5为ack;6为nak,是server拒绝响应request报文,一般出现nak时DHCP流程将重新开始。

用一个抓包实例来说明:

序号6的包是DHCP过程开始的第一个报文,即用户发现自己没有IP信息,于是向网络中发出一个DHCP discover的广播包。

option53 中的value值为1表明是discover报文。

序号7的包是DHCP server 发出的ARP请求,server即将分配192.168.1.109这个地址,于是就问网络中谁使用这个地址。

序号8的包是客户端没有收到server回应的offer,但是时间已经过去了4秒,于是再次广播discover。

序号9是server收到第二次discover后,发出的ARP请求。

当没有用户回应server发出的ARP,则表明网络中没有用户使用192.168.1.109这个地址。那么server此时回应一个offer报文给客户端。offer报文序号11,如下图。

序号12的包是request报文。用以响应server端发来的offer报文,告诉DHCP server客户端已经收到服务器分配的信息。

序号13是server给客户端的一个ack报文。明确客户端可以使用分配到的数据。

序号14、15、16是客户端发出的免费ARP,确认网络中没有用户使用与我相同的IP地址。

至此一套标准的DHCP流程即完成,在以后抓包分析的时候,发现有多的报文或是缺少某些报文可依据本文作参考。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top