Linux DHCP负载均衡与高可用实践
一、方案总览与选择
二、方案一 ISC DHCP 对等体负载均衡(同一网段)
示例最小配置(两台服务器,示例网段 192.168.1.0/24):
# /etc/dhcp/dhcpd.conf
authoritative;
failover peer "dhcp" {
primary; # 角色:主
address 192.168.1.10; # 本端地址
port 520; # 本端 failover 端口
peer address 192.168.1.11; # 对端地址
peer port 519; # 对端 failover 端口
max-response-delay 60;
max-unacked-updates 10;
mclt 600; # 仅主端配置
split 128; # 地址分配比例(主:备 = 128:128)
}
include "/etc/dhcp/dhcpd.subnet";
# /etc/dhcp/dhcpd.conf
authoritative;
failover peer "dhcp" {
secondary; # 角色:备
address 192.168.1.11;
port 519;
peer address 192.168.1.10;
peer port 520;
max-response-delay 60;
max-unacked-updates 10;
# 注意:mclt 只在 primary 配置
}
include "/etc/dhcp/dhcpd.subnet";
# 全局选项
option domain-name-servers 223.5.5.5, 8.8.8.8;
default-lease-time 7200;
max-lease-time 14400;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
pool {
failover peer "dhcp";
range 192.168.1.100 192.168.1.254;
deny dynamic bootp clients; # failover 不支持 BOOTP
}
}
systemctl start isc-dhcp-server(两台均启动)tail -f /var/log/messages | grep dhcpd,确认 failover 握手与分配情况要点说明:
三、方案二 跨网段与多服务器扩展
四、方案三 结合 Keepalived 的高可用外层封装
#!/usr/bin/env bash
ss -lunpt | grep -q ':67' || exit 1
exit 0
五、部署与运维要点
journalctl -u isc-dhcp-server 或查看 /var/log/messages。