DHCP(Dynamic Host Configuration Protocol) 动态主机配置协议

2025-5-13 杜世伟 Linux

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个网络协议,用于在IP网络中自动分配IP地址和其他网络配置信息给主机。它简化了网络管理员的工作,并避免了手动配置IP地址可能导致的错误和冲突。


一、DHCP的基本概念

1.1 作用

DHCP 的主要功能是自动为网络设备分配:

  • IP地址

  • 子网掩码

  • 默认网关

  • DNS服务器

  • 其他选项(如NTP服务器、WINS服务器等)

1.2 工作模式

DHCP 的通信采用客户端-服务器模式

  • DHCP客户端:如计算机、手机、打印机等请求网络配置的设备。

  • DHCP服务器:提供并管理IP地址池、处理请求并响应的服务器。


二、DHCP的工作过程(DORA过程)

DHCP 分配IP地址的过程可简记为 DORA 四步:

  1. Discover(发现)

    • 客户端广播发送 DHCP Discover 报文,寻找可用的DHCP服务器。

  2. Offer(提供)

    • 所有收到 Discover 的DHCP服务器响应 DHCP Offer 报文,提供一个可用IP和配置信息。

  3. Request(请求)

    • 客户端从中选择一个Offer,并广播发送 DHCP Request 报文,表明接受该配置。

  4. Acknowledge(确认)

    • 服务器收到 Request 后,发送 DHCP ACK 报文,确认分配,客户端完成配置。

注意:如果服务器认为请求有误,也可能返回 DHCP NAK(拒绝)。


三、DHCP 报文格式(基于UDP)

  • 使用端口:

    • 客户端:UDP 68

    • 服务器:UDP 67

DHCP 报文字段(简略):

  • op:操作码(1 = 请求,2 = 应答)

  • xid:事务ID

  • yiaddr:“你的”IP地址

  • siaddr:服务器IP

  • chaddr:客户端MAC地址

  • options:DHCP特有的扩展字段,如消息类型、租期、网关、DNS等


四、IP租约(Lease)

DHCP 不是永久分配IP,而是临时租用。每个IP分配都有一个租期(lease time)。租约到期后,客户端可以向服务器发送 DHCP Request 请求续租。

如果客户端关机或离网,服务器可将该IP回收并重新分配。


五、DHCP的类型

5.1 动态分配(Dynamic Allocation)

服务器动态从地址池中选择一个IP分配,适用于大部分设备。

5.2 自动分配(Automatic Allocation)

客户端第一次请求后,服务器记录分配结果,以后每次都分配同一个IP。

5.3 手动分配(Static Assignment,MAC绑定)

管理员为某个MAC地址静态绑定一个IP地址。常用于服务器、打印机等固定设备。


六、DHCP常见安全问题

  • IP地址欺骗:恶意用户伪造DHCP服务器,诱导用户获取错误配置。

  • 地址耗尽攻击:攻击者发送大量DHCP请求,耗尽地址池。

解决方案

  • 使用DHCP Snooping(交换机层面)

  • 对可信设备使用MAC绑定

  • 网络访问控制(如802.1X)


七、DHCP 与 DNS 的协同

DHCP 可以与 DNS 联动,在分配IP地址的同时动态更新DNS记录,实现主机名与IP的同步。


八、应用场景

  • 企业局域网

  • 家庭网络

  • 大型公共Wi-Fi

  • 数据中心虚拟网络环境

标签: linux dhcp

Powered by emlog 沪ICP备2023034538号-1