[转]DHCP、DHCP中继通信过程

之前一直没弄明白在有中继的时候,DHCP的过程会是什么样的,今天找到了这篇博文,特转到自己这来。

原博文地址为:http://ewangsoft.blog.163.com/blog/static/772155822009729312332/

一、 DHCP通信过程之一:DHCP客户端首次发出DHCP Discover时

        从实际抓包可以看到,DHCP通信过程包括五部分:

              1、DHCP客户端以广播 的形式发出DHCP发现报文(DHCP Discover)。

              2、DHCP服务器(IP是192.168.100.11)收到客户端发出的DHCP发现报文,应答DHCP服务提供报文(DHCP Offer)。并在此报文中提供一个可供客户端使用的IP :192.168.100.101。如下图:

              3、DHCP客户端仍以广播 的形式发出DCHP请求报文(DHCP Request),并在此报文的选项部分指出自己想获得的IP地址是192.168.100.101(即有刚才DHCP服务器在DHCP Offer报文中指定的那个)。如下图:

              4、DHCP服务器发出DHCP ACK应答报文广播 ,并在应答报文中指定客户端使用的相关 选项,如“租约过期时间”、“续订时间”、“使用的DNS服务器”、“网关”等信息。如下图:

            5、DHCP客户端获得分配的IP之后,还要发送ARP广播,以确定网络上此IP地址没有被占用,如果被占用,其将会送出一个DHCPDECLINE封包 给DHCP服务器﹐拒绝接受其Dhcpoffer﹐并重新发送Dhcpdiscover信息。

二、 DHCP通信过程之二:DHCP客户端已经获得IP地址时

        上图是我在服务器上设置租约期限为1分钟时的抓图结果,从图中可以看到,在11:26:42时刻客户端发出了DHCP Requst,之后在11:27:12时刻再次发出DHCP Request,间隔是30秒,此间隔正是DHCP协议规定的:在租约期限一半的时候发出DHCP Request。如果此时得不到DHCP服务器的确认﹐客户端仍然可以使用该IP,然后在剩下的租约期限的再一半的时候(即租约的75%时﹐还得不到确认 的话﹐那么客户端就不能再使用此IP地址了。

      从上 述的描述可知,由于在租约期限一半及再过半的时候,DHCP客户端要重新发出DHCP Request,因此,给客户端设置合理的租约期限很重要。合理的租约期限可以减少网络由于大量的DHCP通信而带来的通信负担。

三、通过DHCP中继代理时的通信过程(只描述DHCP客户端首次发出DHCP Discovery到客户端收到DHCP ACK过程)

       DHCP客户端可以和DHCP服务器端不在一个网络内,此时可以通过DHCP中继来完成,通信过程如下:


DHCP客户端与DHCP中继之间抓包数据

 


DHCP中继与DHCP服务器之间抓包数据

 

          1、DHCP客户端发出DHCP发现报文广播

          2、DHCP中继设备根据自己配置的DHCP中继服务器,将此DHCP发现广播报文以单播 的形式转发给DHCP服务器,并将自己用来代理 DHCP中继的接口的IP加在DHCP协议选项字段中 ,如下图:

          3、DHCP服务器收到发现报文后,根据Relay agent IP选项的值,来检测自己的作用域是否包含此网段地址,如果不包含,DHCP服务器将不做任何反应,包含则从作用域中拿出一个IP,然后 发送ICMP Request报文以确定此IP未被分配 ;确定此IP未被使用后,仍以单播 的形式向DHCP中继设备发出DHCP Offer提供应答报文。

          4、DHCP中继设备以单播 的形式将收到的DHCP Offer报文转发给DHCP客户端。

          5、DHCP客户端仍以广播 的形式发送DHCP Request请求报文。

          6、DHCP中继设备以单播 形式向 DHCP服务器转发此报文。

          7、DHCP服务器以单播 形式应答此请求报文,分配IP地址选项等。

          8、DHCP中继设备一单播 形式向DHCP转发此DHCP应答报文。

          9、DHCP客户端收到报文,配置相关选项,DHCP通信完成。

你可能感兴趣的:([转]DHCP、DHCP中继通信过程)