安装 dhcp-server 软件包,编辑 /etc/dhcp/dhcpd.conf 配置文件并设置子网参数,最后执行 systemctl enable --now dhcpd 启用服务。
如何在 Rocky Linux 9 中配置并启用 DHCP 服务器?
在Rocky Linux 9中配置DHCP服务器需安装dhcp-server
包,编辑/etc/dhcp/dhcpd.conf
定义子网范围和选项,最后启用dhcpd
服务并配置防火墙。
延伸知识点:DHCP的租约机制
DHCP通过租约(Lease)动态分配IP地址,包含四个阶段:1. Discover(客户端广播寻找服务器);2. Offer(服务器响应可用IP);3. Request(客户端确认选择IP);4. Acknowledgment(服务器最终分配)。租约默认时间为86400秒(24小时),到期前客户端会尝试续租(Renewal)。在dhcpd.conf
中可通过default-lease-time
和max-lease-time
参数调整租期,避免IP资源耗尽或客户端频繁更换地址导致网络不稳定。
更多回答
在Rocky Linux 9中配置DHCP服务器需通过以下步骤实现,结合虚拟化环境实践经验及常见问题:
-
安装dhcp-server
sudo dnf install dhcp-server -y
注意:RHEL9开始默认未绑定ISC DHCP源码,需通过EPEL仓库安装(若未配置EPEL需先执行
sudo dnf install epel-release
) -
配置文件
/etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.150 192.168.100.200; option routers 192.168.100.1; option domain-name-servers 8.8.8.8, 1.1.1.1; default-lease-time 3600; max-lease-time 7200; }
挑战:虚拟化环境中需确保子网与虚拟机网络模式(NAT/桥接)匹配,桥接模式需与物理网络同网段
-
接口绑定 在
/etc/sysconfig/dhcpd
中添加:INTERFACESv4="br0" # 虚拟化场景常用桥接接口
经验:KVM环境中若使用libvirt默认网络,需关闭其内置dnsmasq服务避免端口冲突
-
SELinux与防火墙
sudo firewall-cmd --add-service=dhcp --permanent sudo firewall-cmd --reload sudo setsebool -P dhcpd_connect_any 1 # 允许绑定非标准接口
-
启动服务
sudo systemctl enable --now dhcpd sudo dhcpd -t # 预检查配置语法
实践挑战及解决方案:
- IP分配冲突:通过
dhcpd-pools
工具监控地址池使用率,建议保留20%冗余 - 多VLAN支持:配合dhcp-relay配置多个subnet声明,需确保option routers与每个VLAN对应
- 静态IP绑定:
host kvm-node1 { hardware ethernet 52:54:00:12:34:56; fixed-address 192.168.100.50; }
注意:MAC地址需与virsh dumpxml显示的虚拟机接口一致
- 日志分析:
journalctl -u dhcpd -f
重点关注DHCPOFFER/DHCPACK记录,ERROR级日志通常反映配置语法错误
虚拟化环境验证:
virsh net-destroy default # 停用libvirt默认网络
virsh net-start mybridgenet # 启动自定义桥接网络
virt-install --network bridge=br0,... # 创建新虚拟机测试IP获取
最终可通过dhclient -v eth0
在目标虚拟机验证,若出现TIMEOUT需检查防火墙规则与接口绑定状态。
是否考虑过使用 dnsmasq 作为替代方案?它既能处理 DHCP 分配,又能集成轻量级 DNS 服务,适合小型网络环境。