DHCP 核心概念
DHCP (Dynamic Host Configuration Protocol,動態主機配置協議) 是 TCP/IP 協議族中**自動分配 IP 地址及網絡參數**的應用層協議 (UDP 67/68)。
核心模型:**Client/Server**,租約機制 (Lease) 實現地址複用與動態管理。
DHCP 服務運作流程 (DORA)
- Discover (發現):Client 廣播
DHCP Discover (源 0.0.0.0:68 → 目標 255.255.255.255:67)
- Offer (提供):Server 單播/廣播
DHCP Offer (含建議 IP、掩碼、租期、Server ID、選項)
- Request (請求):Client 廣播
DHCP Request (選中某 Server 的 Offer,攜帶 Requested IP、Server ID)
- Acknowledge (確認):Server 單播
DHCP ACK (確認租約、下發完整參數) 或 NAK (拒絕)
續租/重綁:T1 (50% 租期) 單播續租 → 失敗則 T2 (87.5%) 廣播重綁 → 失敗則釋放 IP 重新 Discover。
DHCP 核心優勢
| 優勢 | 說明 | 業務價值 |
| 集中管理 | 統一策略下發:IP 池、掩碼、網關、DNS、WPAD、NTP、TFTP 服務器 | 消除手工配置錯誤、IP 衝突、參數漂移 |
| 地址複用 | 租約到期自動回收,支援超售 (池大於在線設備) | 節省公網/私網 IP 資源,支援 BYOD/訪客/臨時設備 |
| 移動無感 | 跨子網漫游:舊租約釋放,新子網 Server 重新分配 | 無線漫游、熱插拔、容器/VM 遷移無需人工干預 |
| 參數變更零觸達 | 修改網關/DNS/NTP 只需更新 Server 選項,客戶端續租自動獲取 | 大規模網絡重構 (遷移網關、換 DNS) 分鐘級生效 |
| 跨子網轉發 | DHCP Relay Agent (ip helper-address) 將廣播轉單播至遠端 Server | 每個子網無需部署 Server,集中化部署 |
| 高可用 | 熱備份 (Hot Standby)、負載均衡 (Load Balance)、故障切換 < 1s | 消除單點故障,保障終端準入連續性 |
部署架構最佳實踐
1. 作用域設計原則
- **每 VLAN 一個作用域**,掩碼精確匹配 (如 /24、/23)
- **排除靜態分配區間**:網關、服務器、打印機、管理設備預留前 10-20 個 IP
- **租期策略**:
– 有線辦公:8 天 (穩定、減少續租風暴)
– 無線/訪客:1-4 小時 (快速回收、防池耗盡)
– 服務器/關鍵設備:**預留 (Reservation) + 無限租期或靜態配置**
2. 高可用部署模式
| 模式 | 架構 | 同步機制 | 切換時間 | 適用場景 |
| 熱備份 | Primary + Standby | 租約資料庫實時同步 (心跳/資料庫複製) | < 1s | 企業核心、分支機構 |
| 負載均衡 | Active-Active (分池/哈希) | 分散式租約資料庫 (分片/複製) | 無感知 | 大型園區、高並發準入 |
| 分散式 (Windows DHCP Failover) | 雙 Server 互為熱備/負載 | 基於注冊表/文件複製 | 秒級 | 中小型 Windows 環境 |
| 容器化/雲原生 | Kea DHCP + StatefulSet + PVC | etcd/Raft 一致性 | 毫秒級 | K8s 叢集、邊緣節點 |
3. 安全加固清單
- DHCP Snooping:接入交換機僅信任上行/Server 端口,攔截偽造 Server/客戶端惡意請求
- DYNAMIC ARP INSPECTION (DAI):基於 DHCP Snooping 綁定表驗證 ARP,防 ARP 欺騙
- IP Source Guard:端口僅允許綁定表中 IP/MAC 通過
- Option 82 (Relay Agent Information):攜帶端口/VLAN/電路 ID,支援策略下發、審計追溯
- VLAN/ACL 隔離:DHCP 服務器置於管理 VLAN,僅開放 UDP 67/68 至 Relay Agent
故障排查速查表
| 現象 | 排查方向 | 關鍵命令/工具 |
| 客戶端獲取 169.254.x.x | Discover 無響應 → Relay Agent/Server 下線/ACL 攔截/VLAN 錯誤 | Wireshark 抓包、交換機 show ip dhcp snooping binding |
| IP 衝突頻發 | 靜態 IP 與動態池重疊 / 多 Server 重疊池 / 租期過短導致搶佔 | 排除靜態段、劃分不重疊池、延長租期、啟用衝突檢測 (ping 前檢測) |
| 跨 VLAN 無法獲取 IP | Relay Agent 未配置 / Server 無該作用域 / 防火牆阻攔 UDP 67 | ip helper-address 、Server 端防火牆、抓包驗證轉發 |
| 租約無法續租 | Server 雙活腦裂 / 資料庫不同步 / 時鐘不同步 | NTP 同步、檢查同步狀態、強制同步租約庫 |