第一步:discover
- DHCP客户端主动发起DHCP Discover包, 用来寻找DHCP服务器, 其中:
- 源MAC是自己的MAC地址, 目的MAC是FFFF.FFFF.FFFF的广播
- 源IP是0.0.0.0(现在还没有IP, 就用全0地址) , 目的IP是255.255.255.255的三层广播
- 因为DHCP服务器在哪里还不知道, 所以使用广播来寻找, 广播会泛洪到整个网段中;
第二步:Offer
- DHCP服务器收到客户端发的DHCP Discover之后, 会在自己的地址池中拿出一个没有分配的
地址以及配套的参数(如: 掩码、 DNS、 网关、域名、 租期……) , 然后以一个DHCP Offer包发
送出去。这个DHCP Offer数据包的地址如下: - 源MAC是DHCP服务器的MAC, 目的MAC是FFFF.FFFF.FFFF的广播
- 源IP是DHCP服务器的IP, 目的IP是255.255.255.255的广播
- 这时客户端还没有获得IP, DHCP服务器端现在还无法定位客户端, 所以用广播来回应。
第三步: Requests
- 客户端收到这个DHCP Offer后, 会再发出一个DHCP Request给服务器来申请这个Offer中包含的地址。这个时候, 客户端还没有正式拿到地址,所以还需要向DHCP服务器申请。
- 这时客户端的源IP还是0.0.0.0, 目的IP还是255.255.255.255
- 源MAC是客户端的MAC, 目的MAC是FFFF.FFFF.FFFF广播包
第四步: ACK
- 服务器收到客户端的请求后, 会发出一个DHCP ACK用来确认这个IP地址可以分配给这个客户端。客户端收到第四个DHCP ACK数据包才算正式拿到了这个IP。
续期
- 当租期不到1/2左右时候,如果还要继续使用该IP,客户端会自动向服务器发起续租请求报文Request报文,服务器会向客户端发送ACK报文确认。
转载请注明:爱开源 » 通过抓包分析整个DHCP过程