DHCP 是 Dynamic Host Configuration Protocol 的缩写,是一种用于动态分配 IP 地址的协议。DHCP 服务器会根据 DHCP 客户端的请求,分配一个 IP 地址给该客户端,并返回给该客户端。DHCP 客户端会根据返回的 IP 地址,进行 IP 地址的配置。
动态主机配置协议【Dynamic Host Configuration Protocol】#
工作流程#
DHCP 工作流程分为4个步骤,通常称为 DROA ,表示4个英文单词首字母缩写:Discovery、Offer、Request、Ack。
- Discovery : DHCP 客户端向 DHCP 服务器发送一个 DISCOVER 消息,请求 DHCP 服务器的 IP 地址。
- Offer : DHCP 服务器向 DHCP 客户端发送一个 OFFER 响应,包含 DHCP 服务器的 IP 地址。
- Request : DHCP 客户端向 DHCP 服务器发送一个 REQUEST 响应,请求 DHCP 服务器的 IP 地址。
- Ack : DHCP 服务器向 DHCP 客户端发送一个 ACK 响应,确认 DHCP 客户端的 IP 地址。
一、Discovery#
客户端使用 DHCP 方式接入网络,没有 IP 地址时,需要获取IP地址。客户端使用广播发送一个 discover 数据包,寻找网络中的DHCP服务器。
内容:
- 此时客户端没有IP,通过发送 广播包 寻找网络中的DHCP服务器。
| 名称 | 信息 |
|---|---|
| src mac | 00:50:79:66:68:09 |
| src IP | 0.0.0.0 |
| dst mac | ff:ff:ff:ff:ff:ff(mac 广播地址) |
| dst IP | 255.255.255.255(ip 广播地址) |

二、Offer#
DHCP服务器收到 Discover 数据包后,从当前 地址池 中选择一个 可用的 IP地址,并返回一个 Offer 数据包,包含该IP地址。
分析:如果网络中有多个 DHCP 服务器,客户端可能会收到多个 Offer,通常会选择 第一个收到的。
| 名称 | 信息 |
|---|---|
| src mac | 00:50:79:66:68:09 |
| src IP | 192.168.10.2 |
| dst mac | 50:00:00:03:80:1e |
| dst IP | 192.168.10.1 |

三、Request#
客户端在收到一个或多个 DHCP Offer 后,从中选择一个(通常是第一个),然后向网络广播一个 DHCP Request 消息,表示:“我想要这个 IP!”.
内容:
- 告诉网络中所有DHCP服务器:“我要接受某个服务器提供的 IP 地址”,从抓包可以看到,发送的是 三层广播包.
| 名称 | 信息 |
|---|---|
| src mac | 00:50:79:66:68:09 |
| src IP | 0.0.0.0 |
| dst mac | 50:00:00:03:80:1e |
| dst IP | 255.255.255.255 |

四、Ack#
被客户端选中的 DHCP 服务器收到 Request 后,会发送一个 DHCP Ack(确认)消息 给客户端,表示:“好的,这个 IP 正式分配给你了!”
内容:
- 确认 IP 地址以及相关参数(子网掩码、网关、DNS 等)
- 同时开始计时(租期开始)
- 客户端收到 Ack 后,就正式使用了这个 IP 地址,完成 DHCP 配置。
| 名称 | 信息 |
|---|---|
| src mac | 50:00:00:03:80:1e |
| src IP | 192.168.10.1 |
| dst mac | 00:50:79:66:68:09 |
| dst IP | 192.168.10.2 |

验证#
交换机#
cisco交换机使用show ip dhcp binding命令显示绑定信息。
AS-1#show ip dhcp binding
Bindings from all pools not associated with VRF:
IP address Client-ID/ Lease expiration Type State Interface
Hardware address/
User name
192.168.10.2 0100.5079.6668.09 Nov 20 2025 01:06 AM Automatic Active Vlan30
讨论#
问题1: 网络中存在多个 DHCP 服务器,客户端如何获取 IP 信息?#
当网络中存在 多个 DHCP 服务器 时,客户端在启动 DHCP 请求流程(即发送 DHCP Discover 广播)后,可能会收到多个 DHCP 服务器的 Offer(提供 IP 地址的响应)。
具体过程如下:
- 客户端广播 DHCP Discover(目的 IP 255.255.255.255 或 FF:FF:FF:FF:FF:FF),寻找可用的 DHCP 服务器。
- 所有可用的 DHCP 服务器(在同一个广播域内)都会响应,向该客户端发送 DHCP Offer 消息,其中包含:
- 一个可用的 IP 地址
- 子网掩码、网关、DNS 等网络参数
- 客户端通常会选择 “最先到达” 的 DHCP Offer(也可能是根据策略选择,但一般是第一个),然后向网络中广播 DHCP Request,表示:“我选择这个 IP,我要使用它。”
- 其他 DHCP 服务器 收到这个 Request 后,发现客户端没有选择自己提供的 IP,就会 放弃该 IP,将其放回地址池。
- 被选中的 DHCP 服务器 最终会回复 DHCP Ack(确认),正式将该 IP 分配给客户端,完成配置。
🔒 注意事项:
- 多个 DHCP 服务器如果 管理不当(比如地址池重叠、配置错误),可能会导致 IP 冲突或分配混乱。
- 在企业网络中,通常会 控制 DHCP 服务器的数量与范围,甚至使用 DHCP Snooping(DHCP 监听)等安全技术,只允许信任的 DHCP 服务器响应客户端请求,防止非法 DHCP 服务器分配错误 IP。
问题 2:DHCP 服务器如何确认分配的地址是否已经被使用(IP地址已经被手动配置)?是否使用免费 ARP?#
大多数现代 DHCP 服务器在将某个 IP 地址分配给客户端之前,会先检测该 IP 是否已经被网络中的其他设备使用,以避免 IP 冲突。检测方法之一就是 免费 ARP(Gratuitous ARP) 。
DHCP 服务器如何检查 IP 是否已被占用?
- 免费 ARP(Gratuitous ARP)探测(最常用)
- 在将某个 IP 地址提供给客户端之前(即在 DHCP Offer 阶段之前或分配时),DHCP 服务器会先以该 IP 为源 IP,发送一个 ARP 广播(免费 ARP),询问:“谁在使用这个 IP 地址?”
- 如果网络中有其他设备(比如手动配置了该 IP 的电脑)已经使用了这个 IP,它会回复 ARP 响应,表明 “这个 IP 是我的”。
- 如果无人响应,说明该 IP 当前未被使用,是安全的,可以被分配。

结论#
DHCP(动态主机配置协议)用于自动为客户端分配IP地址及网络参数(如子网掩码、网关、DNS),简化网络管理。其工作流程为“DORA”四步:客户端广播Discover寻找服务器,服务器Offer提供IP,客户端Request申请,服务器Ack确认分配。客户端在收到Ack后正式获得并使用IP,实现即插即用上网。


