1、【原创 】DHCP、DHCP 中继通信过程DNS/DHCP 2009-08-02 13:16:56 阅读 221 评论 0 字号:大中小 订阅 一、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。如下
2、图:3、DHCP 客户端仍以广播的形式发出 DCHP 请求报文( DHCP Request),并在此报文的选项部分指出自己想获得的 IP 地址是 192.168.100.101(即有刚才 DHCP 服务器在 DHCP Offer 报文中指定的那个)。如下图:4、DHCP 服务器发出 DHCP ACK 应答报文广播,并在应答报文中指定客户端使用的相关选项,如“租约过期时间”、“ 续订时间”、“使用的 DNS 服务器”、“ 网关”等信息。如下图:5、DHCP 客户端获得分配的 IP 之后,还要发送 ARP 广播,以确定网络上此 IP 地址没有被占用,如果被占用,其将会送出一个 DHCPDECLIN
3、E 封包给 DHCP 服务器拒绝接受其 Dhcpoffer并重新发送Dhcpdiscover 信息。二、DHCP 通信过程之二:DHCP 客户端已经获得 IP 地址时上图是我在服务器上设置租约期限为 1 分钟时的抓图结果,从图中可以看到,在 11:26 :42 时刻客户端发出了 DHCP Requst,之后在 11:27:12 时刻再次发出 DHCP Request,间隔是 30 秒,此间隔正是 DHCP 协议规定的:在租约期限一半的时候发出 DHCP Request。如果此时得不到 DHCP 服务器的确认客户端仍然可以使用该 IP,然后在剩下的租约期限的再一半的时候 (即租约的 75%时 还
4、得不到确认的话那么客户端就不能再使用此 IP 地址了。从上述的描述可知,由于在租约期限一半及再过半的时候,DHCP 客户端要重新发出 DHCP Request,因此,给客户端设置合理的租约期限很重要。合理的租约期限可以减少网络由于大量的 DHCP通信而带来的通信负担。三、通过 DHCP 中继代理时的通信过程(只描述 DHCP 客户端首次发出 DHCP Discovery 到客户端收到DHCP ACK 过程)DHCP 客户端可以和 DHCP 服务器端不在一个网络内,此时可以通过 DHCP 中继来完成,通信过程如下:DHCP 客户端与 DHCP 中继之间抓包数据DHCP 中继与 DHCP 服务器之
5、间抓包数据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 通信完成