跳过正文
动态主机配置协议【Dynamic Host Configuration Protocol】
  1. 网络技术/

动态主机配置协议【Dynamic Host Configuration Protocol】

·1981 字·4 分钟·
目录
dhcp - 这篇文章属于一个选集。
§ 1: 本文

DHCP 是 Dynamic Host Configuration Protocol 的缩写,是一种用于动态分配 IP 地址的协议。DHCP 服务器会根据 DHCP 客户端的请求,分配一个 IP 地址给该客户端,并返回给该客户端。DHCP 客户端会根据返回的 IP 地址,进行 IP 地址的配置。

动态主机配置协议【Dynamic Host Configuration Protocol】
#

工作流程
#

DHCP 工作流程分为4个步骤,通常称为 DROA ,表示4个英文单词首字母缩写:DiscoveryOfferRequestAck

  1. Discovery : DHCP 客户端向 DHCP 服务器发送一个 DISCOVER 消息,请求 DHCP 服务器的 IP 地址。
  2. Offer : DHCP 服务器向 DHCP 客户端发送一个 OFFER 响应,包含 DHCP 服务器的 IP 地址。
  3. Request : DHCP 客户端向 DHCP 服务器发送一个 REQUEST 响应,请求 DHCP 服务器的 IP 地址。
  4. Ack : DHCP 服务器向 DHCP 客户端发送一个 ACK 响应,确认 DHCP 客户端的 IP 地址。

一、Discovery
#

客户端使用 DHCP 方式接入网络,没有 IP 地址时,需要获取IP地址。客户端使用广播发送一个 discover 数据包,寻找网络中的DHCP服务器。

内容:

  • 此时客户端没有IP,通过发送 广播包 寻找网络中的DHCP服务器。
名称信息
src mac00:50:79:66:68:09
src IP0.0.0.0
dst macff:ff:ff:ff:ff:ff(mac 广播地址)
dst IP255.255.255.255(ip 广播地址)

二、Offer
#

DHCP服务器收到 Discover 数据包后,从当前 地址池 中选择一个 可用的 IP地址,并返回一个 Offer 数据包,包含该IP地址。

分析:如果网络中有多个 DHCP 服务器,客户端可能会收到多个 Offer,通常会选择 第一个收到的。

名称信息
src mac00:50:79:66:68:09
src IP192.168.10.2
dst mac50:00:00:03:80:1e
dst IP192.168.10.1

三、Request
#

客户端在收到一个或多个 DHCP Offer 后,从中选择一个(通常是第一个),然后向网络广播一个 DHCP Request 消息,表示:“我想要这个 IP!”.

内容:

  • 告诉网络中所有DHCP服务器:“我要接受某个服务器提供的 IP 地址”,从抓包可以看到,发送的是 三层广播包.
名称信息
src mac00:50:79:66:68:09
src IP0.0.0.0
dst mac50:00:00:03:80:1e
dst IP255.255.255.255

四、Ack
#

被客户端选中的 DHCP 服务器收到 Request 后,会发送一个 DHCP Ack(确认)消息​ 给客户端,表示:“好的,这个 IP 正式分配给你了!”

内容:

  • 确认 IP 地址以及相关参数(子网掩码、网关、DNS 等)
  • 同时开始计时(租期开始)
  • 客户端收到 Ack 后,就正式使用了这个 IP 地址,完成 DHCP 配置。
名称信息
src mac50:00:00:03:80:1e
src IP192.168.10.1
dst mac00:50:79:66:68:09
dst IP192.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 地址的响应)。

具体过程如下:

  1. 客户端广播 DHCP Discover(目的 IP 255.255.255.255 或 FF:FF:FF:FF:FF:FF),寻找可用的 DHCP 服务器。
  2. 所有可用的 DHCP 服务器(在同一个广播域内)都会响应,向该客户端发送 DHCP Offer 消息,其中包含:
    • 一个可用的 IP 地址
    • 子网掩码、网关、DNS 等网络参数
  3. 客户端通常会选择 “最先到达” 的 DHCP Offer(也可能是根据策略选择,但一般是第一个),然后向网络中广播 DHCP Request,表示:“我选择这个 IP,我要使用它。”
  4. 其他 DHCP 服务器​ 收到这个 Request 后,发现客户端没有选择自己提供的 IP,就会 放弃该 IP,将其放回地址池。
  5. 被选中的 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 是否已被占用?

  1. 免费 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,实现即插即用上网。


dhcp - 这篇文章属于一个选集。
§ 1: 本文

相关文章


微信赞赏
微信赞赏
关注公众号
关注公众号
支付宝赞赏
支付宝赞赏