DHCP服务配置与管理实战指南
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)