Linux DHCP 服务教程
1. DHCP 服务原理
动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP) 是一种用于网络设备自动获取 IP 地址及其他网络配置的协议。它减少了手动配置的复杂性,特别适合大规模网络。
1.1 工作原理
DHCP 工作在客户端和服务器模式,其典型通信流程如下:
- Discover (发现): 客户端通过广播发送 DHCP Discover 报文,寻找 DHCP 服务器。
- Offer (提供): DHCP 服务器响应 Discover 报文,提供一个可用的 IP 地址及配置。
- Request (请求): 客户端选择一个 Offer,并发送 DHCP Request 报文进行确认。
- ACK (确认): 服务器确认配置,并将其绑定到客户端。
简化流程图
Details
以下是 DHCP 的工作原理:
DHCP 工作流程
-
发现阶段(DHCP Discover):
- 当一台新的设备(称为 DHCP 客户端)加入网络并需要获取 IP 地址时,它会发送一个 DHCP Discover 广播包。这个广播包发送到本地网络的广播地址(255.255.255.255),询问是否有 DHCP 服务器可以提供 IP 地址。
-
提供阶段(DHCP Offer):
- 网络上的 DHCP 服务 器接收到 DHCP Discover 消息后,会响应一个 DHCP Offer 消息。该消息包含一个可用的 IP 地址、租约时间(Lease Time)、子网掩码、默认网关、DNS 服务器地址等信息。每个 DHCP 服务器都会提供一个可能不同的 IP 地址,客户端通常会选择第一个收到的 Offer。
-
请求阶段(DHCP Request):
- 客户端从多个 DHCP Offer 中选择一个(通常是第一个收到的),然后向提供该 Offer 的 DHCP 服务器发送一个 DHCP Request 消息,请求确认提供的 IP 地址。同时,这个广播消息也会通知其他 DHCP 服务器这个 IP 地址已被接受,避免 IP 地址冲突。
-
确认阶段(DHCP Acknowledge):
- 被选中的 DHCP 服务器收到 DHCP Request 后,会发送一个 DHCP Acknowledge(ACK)消息,确认分配的 IP 地址和其他配置信息。这时,客户端会配置其网络设置,并开始使用分配的 IP 地址。
租约管理
-
租约时间(Lease Time):DHCP 服务器分配的 IP 地址有一个租约时间,超过这个时间,客户端需要重新请求一个新的 IP 地址或续租当前的 IP 地址。
-
租约续约(Lease Renewal):
- 当租约时间达到 50% 时,客户端会尝试与 DHCP 服务器联系以续约(发送 DHCP Request 消息)。
- 如果在 87.5% 的时候还没有续约成功,客户端会开始广播 DHCP Request,尝试从任何可用的 DHCP 服务器获取新的租约。