DHCP,Dynamic Host Configuration Protocol, 动态主机配置协议, 简单来说就是主机获取 IP 地址的过程, 属于应用层协议.
DHCP 采用 UDP 的 68(客户端) 和 67(服务器) 端口进行通信.
[过程]
DHCP 过程主要为 DHCP Discover-->DHCP Offer-->DHCP Request-->DHCP Ack 四个过程.
通过 Wireshark 抓取 DHCP 获取 IP 过程的数据报文.
1, 开 Wireshark 抓包
2,PC 当前已有 IP, 使用 cmd 命令释放 IP(ipconfig /release), 并重新获取 IP(ipconfig /renew)
3, 停止抓包, 使用 bootp 过滤报文.
4, 可以看到图中的 5 个报文, 其中 DHCP Release 报文为 PC 释放 IP 时发出的报文.
获取 IP 时, PC 会发送 DHCP Discover 广播报文, 由于当前 PC 没有 IP, 故源 IP 为 0.0.0.0; 特别要注意到的是, PC 会随机出一个 Transaction ID, 如果之后收到的 Offer 报文中的 Transaction ID 与 PC 模拟出的不同, PC 会将该 Offer 报文直接丢弃.
DHCP Offer 报文
DHCP Request 报文
DHCP Ack 报文
[模拟服务器发送 Offer 报文的过程及注意事项]
1, 保证服务器与客户端的连通性
2, 准备好一个 Offer 报文 (可编辑)
3, 使用 Wireshark 抓取客户端发出的 Discover 报文, 确定当前客户端随机出的 Transaction ID
4, 更改 Offer 报文中的 Transaction ID 与 Discover 报文中一致
5, 使用发包软件发送 Offer 报文
注: Transaction ID
[地址租期]
DHCP 服务器提供的每个 IP 地址都有相应的租用期, 在 Offer 报文中的 IP Address Lease Time 中可以看到. 地址租期时间过长会导致地址资源长期被占用, 租期过短会导致 DHCP 请求包过多, 增加网络负担. 还要结合当前使用场景来设置. 一般来说, 对 DHCP 客户端数量较大, 且断开网络比较频繁的场所, 如机场, 商铺等, 一般把 DHCP 租期配置较短, 这样 IP 地址能很快被回收.
[IP 续租过程]
客户端会在地址租期还有 1/2 的时候, 向 DHCP 服务器发送 DHCP Request 报文; 如果收到服务器的 DHCP Ack 后, 客户端的 IP 地址租期重新回满.
如果未收到 Ack, 可继续使用该 IP, 在租期还有 1/4 时发出第二次 Request 报文; 如果收到 Ack, 租期回满;
如果未收到 Ack, 在租期还有 1/8 时发出第三次 Request 报文, 如果收到 Ack, 租期回满
如果未收到 Ack, 租期结束后 IP 被回收.
来源: https://www.cnblogs.com/Wendy-r/p/12679241.html