在 Ubuntu 上实现 DHCP 冗余(高可用),常见做法有两种,取决于你用的 DHCP 服务软件:
isc-dhcp-server 做 DHCP 冗余(经典方案)ISC DHCP 原生支持 failover peer,适合两台 Ubuntu 服务器。
sudo apt update
sudo apt install isc-dhcp-server
/etc/dhcp/dhcpd.conffailover peer "dhcp-failover" {
primary;
address 192.168.10.10;
port 647;
peer address 192.168.10.11;
peer port 647;
max-response-delay 30;
max-unacked-updates 10;
load balance max seconds 5;
}
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
option routers 192.168.10.1;
option domain-name-servers 8.8.8.8;
failover peer "dhcp-failover";
}
failover peer "dhcp-failover" {
secondary;
address 192.168.10.11;
port 647;
peer address 192.168.10.10;
peer port 647;
max-response-delay 30;
max-unacked-updates 10;
}
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
option routers 192.168.10.1;
option domain-name-servers 8.8.8.8;
failover peer "dhcp-failover";
}
sudo ufw allow 647/tcp
sudo systemctl restart isc-dhcp-server
✅ 效果:
kea-dhcp(推荐新项目)ISC 已停止维护 isc-dhcp,Kea 是官方推荐替代方案。
"hooks-libraries": [
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_lease_cmds.so"
},
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_ha.so",
"parameters": {
"mode": "hot-standby",
"peers": [
{ "name": "dhcp1", "url": "http://192.168.10.10:8000/" },
{ "name": "dhcp2", "url": "http://192.168.10.11:8000/" }
]
}
}
]
如果是企业网络:
| 场景 | 推荐 |
|---|---|
| 老系统 / 简单网络 | isc-dhcp failover |
| 新部署 | Kea DHCP HA |
| 云 / 虚拟化 | Kea + 数据库(MySQL/PostgreSQL) |
如果你愿意,我可以:
你现在是 Ubuntu 几?用 isc 还是刚准备上新系统?