DHCP 服務配置與管理筆記
一、DHCP 核心概念
1. DHCP 定義與功能
- DHCP (Dynamic Host Configuration Protocol):動態主機配置協議
- 核心功能:
- 自動分配 IP 地址
- 提供子網掩碼、網關、DNS 等網絡參數
- 管理 IP 地址租約周期
- 典型應用:ADSL撥號、企業無線網絡、移動辦公環境
2. 工作過程詳解
3. 端口與協議
組件 | 端口 | 協議 | 說明 |
---|---|---|---|
DHCP Server | 67 | UDP | 接收客戶端請求 |
DHCP Client | 68 | UDP | 接收服務器響應 |
DHCPv6 Client | 546 | UDP | IPv6客戶端通信端口 |
4. 關鍵術語
術語 | 說明 |
---|---|
作用域 (Scope) | 可分配的 IP 地址范圍 (如 192.168.1.0/24) |
地址池 | 作用域內可分配的 IP 地址集合 |
租約 (Lease) | 客戶端使用 IP 地址的授權期限 |
保留地址 | 為特定 MAC 地址固定分配的 IP |
中繼代理 | 跨網段轉發 DHCP 請求的路由器組件 |
二、DHCP 服務器部署
環境要求
- 網絡模式:必須使用僅主機 (Host-Only) 或 NAT 模式
- 禁止橋接:避免干擾實際網絡中的 DHCP 服務
安裝與配置流程
-
安裝軟件包
yum -y install dhcp
-
配置文件初始化
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
-
主配置文件詳解 (/etc/dhcp/dhcpd.conf)
# 全局配置 (作用于所有子網) option domain-name "example.com"; option domain-name-servers 8.8.8.8, 8.8.4.4; default-lease-time 600; # 默認租約時間 (秒) max-lease-time 7200; # 最大租約時間 (秒)# 子網聲明 (關鍵配置) subnet 192.168.100.0 netmask 255.255.255.0 {range 192.168.100.50 192.168.100.100; # 地址池范圍option domain-name-servers yangduhan.example.com; #DNSoption domain-name "example.com"; #域名option routers 192.168.100.254; # 默認網關#option broadcast-address 10.5.5.31; # 廣播地址,不需要注釋掉 }# 固定地址分配 (MAC 綁定) host server30 {hardware ethernet 00:0c:29:e0:86:70; # 客戶端 MAC 地址fixed-address 192.168.100.150; # 固定分配的 IP,地址池內外都行option host-name "server30"; # 可選:指定主機名 }
-
服務管理
systemctl restart dhcpd # 重啟服務 systemctl enable dhcpd # 設置開機自啟 systemctl status dhcpd # 檢查服務狀態
-
防火墻配置
firewall-cmd --permanent --add-service=dhcp firewall-cmd --reload
客戶端配置
-
網卡配置文件 (/etc/sysconfig/network-scripts/ifcfg-ens33)
關鍵修改:vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO=dhcp # 啟用 DHCP 協議 ONBOOT=yes # 開機自動激活 # 刪除以下行: # IPADDR= # NETMASK= # GATEWAY= # DNS1=
-
重啟網絡服務
systemctl restart NetworkManager # 推薦使用 # 或 systemctl restart network #查看ip是否獲取 ip a
租約管理
-
租約文件位置:
/var/lib/dhcpd/dhcpd.leases
-
查看租約信息:
less /var/lib/dhcpd/dhcpd.leases
-
租約文件結構:
lease 172.16.30.50 {starts 5 2023/08/11 12:34:56;ends 5 2023/08/11 12:44:56;hardware ethernet 00:0c:29:xx:xx:xx;uid 01:00:0c:29:xx:xx:xx; }
三、DHCP 中繼配置
網絡拓撲
中繼服務器配置步驟
-
網絡配置
- ens33 (NAT 網絡):192.168.100.254
- ens36 (Host-Only):192.168.200.254
-
啟用 IP 轉發
# 臨時生效 sysctl -w net.ipv4.ip_forward=1# 永久生效 echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf sysctl -p
-
配置網卡接口
ens33–NAT模式—192.168.100.254
ens36–vmnet模式(僅主機)—192.168.200.254 -
安裝 DHCP 中繼軟件
yum -y install dhcp
-
啟動 DHCP 中繼服務
dhcrelay -d -i ens36 -i ens33 192.168.100.20
參數說明:
-d
:前臺運行(調試模式)-i
:指定監聽接口192.168.100.20
:DHCP 服務器 IP
生產環境推薦配置
dhcp服務器
網卡--ens33--NAT模式---192.168.100.20
vim /etc/dhcp/dhcpd.conf
#只保留以下內容
subnet 192.168.100.0 netmask 255.255.255.0 {
}
# A slightly different configuration for an internal subnet.
subnet 192.168.200.0 netmask 255.255.255.0 {range 192.168.200.50 192.168.200.100;option routers 192.168.200.254;default-lease-time 600;max-lease-time 7200;
}
#重啟服務
systemclt restart dhcpd
# 創建 systemd 服務單元
cat > /etc/systemd/system/dhcrelay.service <<EOF
[Unit]
Description=DHCPv4 Relay Agent
After=network.target[Service]
ExecStart=/usr/sbin/dhcrelay -d --no-pid 192.168.100.20
Restart=always[Install]
WantedBy=multi-user.target
EOF# 啟用服務
systemctl daemon-reload
systemctl start dhcrelay
systemctl enable dhcrelay
四、排錯與監控
服務端排錯
# 檢查配置文件語法
dhcpd -t# 查看服務日志
journalctl -u dhcpd -f# 監聽 DHCP 流量
tcpdump -i ens33 port 67 or port 68 -vv
客戶端排錯
# 釋放當前租約
dhclient -r# 重新獲取 IP
dhclient -v# 查看獲得的參數
ip a show dev ens33
cat /etc/resolv.conf
五、最佳實踐
-
作用域規劃原則
- 保留 20% IP 地址用于靜態分配
- 設置合理的租約時間:
- 辦公網絡:8 小時
- 公共無線:1 小時
- 服務器:永久保留
-
安全增強
# 防止未授權 DHCP 服務器 deny unknown-clients;# MAC 地址白名單 allow known-clients;
-
高可用方案
- 主從模式:兩臺 DHCP 服務器劃分 80%/20% 地址池
- 負載均衡:配置 DHCP 冗余協議 (DRCP)