DHCP (Dynamic Host Configuration Protocol)
在复杂的现代网络中,动态主机配置协议 (DHCP) 是必不可少的。它负责自动分配合适的 IP 地址及其相关的配置选项,使网络管理更加高效、便捷。
什么是 DHCP?
DHCP 是一种应用层协议,它允许网络管理器在一个中心位置管理 IP 地址的分配,并将该信息分发给各工作站。
核心作用
- 分配 IP 地址: 避免地址冲突并提高利用率。
- 提供网关信息: 配置默认网关。
- 提供 DNS 信息: 配置域名系统服务器的 IP 地址。
交互过程 (四个阶段)
DHCP 使用 UDP 协议,端口号为:客户端 (68) 和 服务端 (67)。
在客户端启动时,它通常会经历所谓的 DORA 流程:
- Discover (发现): 客户端发送广播包,由于它还没有 IP,会以
0.0.0.0为源地址,寻找局域网内的 DHCP 服务器。 - Offer (提供): 服务器收到请求后,从自己的地址池中选出一个未分配的地址,发送一条包含租约信息的广播/单播(取决于具体实现)。
- Request (请求): 客户端从多个 Offer 中选择一个(通常是第一个收到的),并再次广播,通知所有服务器它已经选择了哪一个。
- Acknowledge (确认): 被选中的服务器确认租约合法,完成正式分配。
续约过程
DHCP 分配的 IP 并不是永久的,而是具有一个 租约 (Lease Time):
- 50% 租约时间: 客户端会尝试向服务器发送单播
Request进行续约。 - 87.5% 租约时间: 如果第一次续约失败,客户端会广播发送
Request,寻找原服务器或备用服务器进行续约。 - 租约过期: 如果第二次续约仍未成功,客户端必须释放该 IP 并重新开始 Discover 流程。
技术细节
- 地址范围 (Pool): 服务器可分配的所有地址范围。
- 排除地址 (Exclusion): 手动分配给服务器、打印机等设备的静态 IP。
- 保留地址 (Reservation): 某些设备通过其 MAC 地址进行绑定,每次获取相同的 IP 地址。
安全问题
- DHCP 饥饿攻击 (DHCP Starvation): 攻击者伪造大量 MAC 地址耗尽服务器的 IP 池,导致合法用户无法获取地址。
- 流氓 DHCP 服务器: 攻击者设置非法 DHCP 服务器,引导用户连接到伪造的网关或 DNS,实施中间人攻击。
防护措施: 交换机常用的 DHCP Snooping (DHCP 监听) 技术可以有效防止流氓服务器和欺骗。