
Linux DHCP管理
Linux DHCP地址管理服务器应用与管理
引导
- 了解DHCP与BOOTP的区别与联系
- 了解DHCP服务器的功能和工作原理
- 熟悉DHCP服务器的基本术语
- 掌握DHCP服务器的安装和启停控制
- 掌握DHCP服务器的配置和测试
1. DHCP服务基础
1.1 DHCP协议与架构
- 功能:动态分配IP地址、子网掩码、网关、DNS等网络参数
- 与BOOTP的关系:
- DHCP是BOOTP的增强版,引入"租约"概念(IP地址非永久分配)
- 兼容BOOTP客户端
- C/S架构:
- 服务端:监听UDP 67端口
- 客户端:监听UDP 68端口
- 双机热备:使用UDP 546端口(需手动开启)
1.2 客户端请求流程(4个阶段)
- Discover(搜索):客户端广播查找可用DHCP服务器
- Offer(提供):服务器响应可用IP地址(广播回复)
- Request(选择):客户端确认选择的服务器/IP(广播通知)
- ACK(确认):服务器分配租约(IP+租期)
跨网段场景:需通过DHCP中继代理(或支持中继的路由器)转发请求
1.3 核心术语
- 作用域(Scope):可分配的IP地址范围(如
192.168.0.0/24
) - 排除范围(Exclusion):保留不分配的IP(如服务器固定IP)
- 地址池(Pool):作用域排除后剩余的可用IP范围
- 租约(Lease):客户端使用动态IP的期限(默认1天)
- 预约(Reservation):基于MAC地址分配固定IP
2. 安装与配置DHCP服务器
2.1 安装dhcpd服务
# 安装DHCP服务
yum install -y dhcp
# 查看关键文件
rpm -ql dhcp | grep -E 'bin|conf'
# 输出示例:
# /etc/dhcp/dhcpd.conf # 主配置文件
# /usr/sbin/dhcpd # 服务程序
# /usr/sbin/dhcrelay # 中继代理程序
2.2 启动服务与防火墙
# 启动服务并设置开机自启
systemctl start dhcpd
systemctl enable dhcpd
# 开放防火墙端口
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --add-port=67/udp --permanent
firewall-cmd --add-port=68/udp --permanent
firewall-cmd --reload
2.3 配置文件结构
配置文件 /etc/dhcp/dhcpd.conf
分为两部分:
- 全局配置:对整个DHCP服务器生效
- 子网声明(subnet):定义特定网段的地址池和参数
初始配置:需从模板复制配置文件:
cp /usr/share/doc/dhcp-*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
3. 配置详解
3.1 全局参数配置
# 基本设置
ddns-update-style interim; # DNS动态更新模式(interim|none|ad-hoc)
ignore client-updates; # 忽略客户端更新DNS记录
default-lease-time 86400; # 默认租约时间(秒)
max-lease-time 604800; # 最大租约时间(秒)
authoritative; # 声明本服务器为权威DHCP(可选)
# 网络参数
option domain-name "cqcet.edu.cn"; # 默认搜索域
option domain-name-servers 114.114.114.114; # 默认DNS服务器
3.2 子网声明(subnet)
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.50 192.168.0.150; # 地址池范围
option routers 192.168.0.1; # 网关地址
option subnet-mask 255.255.255.0; # 子网掩码
option broadcast-address 192.168.0.255; # 广播地址(可选)
}
3.3 主机预约(host)
host dxzweb { # 主机标识(自定义)
hardware ethernet 00:50:56:C0:00:01; # 客户端MAC地址
fixed-address 192.168.0.50; # 分配的固定IP
}
注意:
host
声明是全局配置,不要嵌套在subnet
中
3.4 组配置(group)
group {
option routers 192.168.0.1; # 组内公共参数
host pc1 { # 组内主机1
hardware ethernet MAC1;
fixed-address 192.168.0.100;
}
host pc2 { # 组内主机2
hardware ethernet MAC2;
fixed-address 192.168.0.101;
}
}
4. 客户端配置
4.1 Linux客户端
# 修改网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
# 关键配置项:
BOOTPROTO="dhcp" # 启用DHCP
ONBOOT="yes" # 开机启动
# 重启网络服务
systemctl restart network
4.2 Windows客户端
- 打开 控制面板 > 网络和共享中心
- 选择网卡 → 属性 → Internet协议版本4 (TCP/IPv4)
- 勾选 自动获得IP地址 和 自动获得DNS服务器地址
- 命令行操作:
ipconfig /release # 释放IP ipconfig /renew # 重新获取IP ipconfig /all # 查看详细配置
4.3 验证与排查
- 服务端租约文件:
cat /var/lib/dhcpd/dhcpd.leases # 输出示例: # lease 192.168.0.100 { # starts 5 2024/06/01 10:00:00; # ends 6 2024/06/02 10:00:00; # hardware ethernet 00:50:56:C0:00:01; # client-hostname "pc1"; # }
- 客户端验证:
- Linux:
ip addr show eth0
- Windows:
ipconfig /all
- Linux:
5. DHCP中继代理
5.1 启用中继
# 在连接多个子网的路由器/主机上执行
dhcrelay -i eth1 -i eth2 192.168.0.254 # 指向DHCP服务器IP
参数说明:
-i eth1
:监听接口1的子网请求
192.168.0.254
:DHCP服务器地址
5.2 路由器配置
- 若使用硬件路由器,需开启 DHCP中继功能 并指定DHCP服务器IP
注意:DHCP服务器需配置多个
subnet
声明覆盖所有子网
故障排查要点:
- 检查防火墙是否开放UDP 67/68端口
- 确认
dhcpd
服务状态:systemctl status dhcpd
- 查看日志:
journalctl -u dhcpd
- 验证配置文件语法:
dhcpd -t
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 牧之小岛-Allende
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果