网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

动态主机配置协议(DHCP)

更新时间:2026年03月27日   作者:spoto   标签(Tag):

DHCP是一种网络协议,它能够自动为设备分配IP地址以及其他网络设置。这样一来,设备就可以无需手动配置即可在网络中连接并进行通信了。

  • 为每台设备分配一个唯一的IP地址。
  • 提供子网掩码,以定义本地网络的覆盖范围。
  • 用于配置本地网络之外的通信所使用的默认网关。
  • 这些资源用于提供域名解析所需的DNS服务器地址。

DHCP的组成部分

DHCP的工作原理是基于客户端-服务器模型。客户端会请求网络设置,而服务器则从地址池中分配这些设置。这些设置会以固定租约期限的形式被提供给客户端。

  • DHCP服务器:负责管理DHCP服务的设备(路由器/服务器),它负责维护IP地址池,并为客户端分配IP地址以及相关的配置信息。
  • DHCP中继:这是一种路由器/交换机功能,它能够在不同网络之间(即不同的子网之间)实现客户端与服务器之间的DHCP请求和回复的传递。
  • DHCP客户端:任何需要从DHCP服务器获取IP地址和设置的设备(如电脑、手机、打印机、物联网设备等)。
  • IP地址池:可供分配给客户端的IP地址范围(通常包含一些被排除或预留的地址)。
  • 租赁:分配给某个IP地址的有效期限;用户必须续订该地址的租约,才能继续使用它。
  • 默认网关:分配给客户端的路由器IP地址,使其能够在本地网络之外进行通信(即能够访问互联网或其他网络)。
  • DNS服务器:这些DNS地址被提供给客户端,以便将域名(如google.com)转换为IP地址。

DHCP高级功能

  • 续费:客户提前续签了租约,以便保持相同的IP地址并继续保持连接状态。
  • 故障转移:这两台DHCP服务器共同负责提供IP地址的分配服务。如果其中一台服务器出现故障,另一台服务器仍然可以继续提供服务。
  • 动态更新:当分配或更改客户端IP地址时,DHCP会自动更新DNS记录(A/PTR记录)。
  • 审计日志记录:记录租赁事件(分配、续订、释放等),以便进行跟踪、故障排除以及审计工作。

DHCP数据包格式

DHCP数据包格式
  • 硬件长度(8位):MAC地址的长度(例如,对于以太网来说,长度为6位)。
  • 跳跃次数(8位):数据包能够经过的最大跳数。
  • 交易ID(32位):由客户自行设置,用于匹配请求和回复内容。
  • 秒数(16位):自客户开始启动以来,已经过去了多长时间。
  • 旗帜信息(16位):最左边的位表示是否需要发送回复。
  • 客户端IP地址(4个字节):如果客户已经拥有了一个IP地址,则值为1;否则,值为0。
  • 您的IP地址(4个字节):由服务器分配的客户端IP地址。
  • 服务器IP地址(4个字节):响应DHCP服务器的IP地址。
  • 网关IP地址(4个字节):路由器IP地址(如适用)。
  • 客户端硬件地址:该设备的MAC地址。
  • 服务器名称(64个字节):可选的服务器主机名。
  • Boot文件名(128字节):启动文件的路径名(适用于无磁盘的客户端)。
  • 选项(变量):特定于供应商的或额外的配置。

DHCP的工作原理

DHCP工作在应用层,使用UDP端口67(服务器)和68(客户端)来自动分配网络配置。这一过程是通过一种称为DORA的客户端-服务器通信机制来实现的,该机制的流程包括发现、提供、请求和确认四个步骤。

DHCP发现消息:

DHCP Discover是DHCP客户端发送的第一条消息,用于检查网络中是否存在可用的DHCP服务器,并开始获取IP地址。

  • 触发条件:该设备能够连接到网络,或者启动后没有有效的IP地址配置。
  • 传输方式:因为客户端不知道DHCP服务器的地址,所以需要进行广播传输。
  • 目的:请找出能够分配IP地址及网络参数的DHCP服务器。

2. DHCP报价消息

DHCP服务器会返回一个响应,其中包含可用的IP地址以及相关的配置选项,比如子网掩码、网关、DNS服务器以及租约期限等。

  • 可以进行广播或单播传输(具体取决于客户端/网络的行为)。
  • 包含服务器标识符,这样客户端就能知道是哪个服务器发送了该提议。
  • 所提供的IP地址存储在yiaddr字段中。

3. DHCP请求消息

DHCP请求是一种消息,它用于让客户端确认自己选择的一个IP地址,并请求选定的DHCP服务器正式分配该IP地址。同时,这种消息还会通知其他DHCP服务器,不要继续保留他们所提供的IP地址。

  • 发送者:DHCP客户端
  • 当它被发送时:在客户端接收到一个或多个DHCP请求之后……r消息/信息
  • 它只接受用户提供的IP地址,并能够识别所选的服务器。
  • 防止多个服务器为同一个客户端分配不同的IP地址。

4. DHCP确认消息

DHCP ACK是选定的DHCP服务器在收到客户端的DHCP请求后发送的最终确认消息。这条消息正式地将IP地址分配给客户端,同时还会提供完整的网络配置参数信息。

  • 发送者:DHCP服务器
  • 当它被发送时:在服务器接受客户端的DHCP请求之后
  • 目的:确认租赁协议,并完成最后的配置工作,以便客户能够开始网络通信。

5. DHCP否定确认消息

  • DHCP NAK是由服务器发送的响应,用于通知客户端:所请求的IP配置无效,因此无法分配该IP地址。
  • 发送者:DHCP服务器
  • 目的:拒绝客户的DHCP请求。
  • 所请求的IP地址超出了配置的范围。
  • 该IP地址已经被分配给了其他设备。
  • 客户已经迁移到了另一个网络环境。
  • 客户端必须从“Discover”阶段重新开始DHCP过程。

6. 拒绝DHCP分配

  • 当客户端检测到所提供的IP地址已经在网络中被占用时,就会发送DHCP Decline消息。
  • 发送者:DHCP客户端
  • 目的:请告知服务器,所提供的IP地址并不安全,不宜使用。
  • 典型的触发因素:客户端通过ARP探测或无意义的ARP操作来检测是否存在IP地址冲突。
  • 结果:服务器将该IP地址标记为不可用,并选择另一个地址用于后续的分配工作。

7. DHCP释放

DHCP释放功能允许客户端在租约到期之前,将其分配的IP地址返还给服务器。

  • 发送者:DHCP客户端
  • 目的:免费提供该IP地址,以便用户可以再次使用它。
  • 当设备断开连接、关闭或禁用接口时,就会发生这种情况。
  • 有助于保持高效的IP地址使用效率。

8. DHCP信息提示

  • 当客户端已经拥有手动配置的(静态)IP地址,但还需要从DHCP服务器获取额外的网络设置时,就会使用DHCP Inform功能。
  • 发送者:DHCP客户端
  • 目的:无需获取新的IP地址,即可配置诸如DNS、域名、NTP等参数。
  • 服务器响应:发送一个仅包含配置选项的DHCP确认消息。
  • 交付/送达:通常来说单播因为客户已经拥有有效的IP地址了。

与DHCP相关的安全问题

DHCP本身没有内置的认证机制,因此,同一局域网中的攻击者可以利用这一特性来破坏服务或引导流量。

  • DHCP饥饿(IP地址池耗尽):攻击者通过伪造MAC地址来发送DHCP请求,从而占据所有可用的租约资源,进而阻止合法客户端的连接。
  • 恶意DHCP服务器:虚假的服务器会向客户端提供错误的IP地址设置(如网关、DNS等),从而控制客户端的网络路径。
  • 中间人攻击:通过利用攻击者控制的网关/DNS,使用伪造的DHCP协议来拦截或篡改流量。
  • DNS滥用:恶意的DHCP选项可能会让客户端指向未经授权的DNS服务器,从而实现重定向或网络钓鱼攻击。

针对DHCP攻击的防护机制

  • 在交换机上启用DHCP Snooping功能,并且只允许在受信任的端口上接收DHCP响应。
  • 可以采用端口安全或速率限制来减少伪造请求的发生,从而防止系统出现“饥饿”现象。
  • 使用IP/MAC过滤功能,结合监控与日志分析技术,来检测并阻止那些异常的租赁行为。
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料