温馨提示×

linux dhcp怎么迁移

小樊
34
2026-09-25 01:06:38
栏目: 智能运维

在 Linux 环境下迁移 DHCP 服务,通常指的是把一台 DHCP 服务器(如 ISC DHCP / Kea / dnsmasq)的配置和租约数据,迁移到另一台 Linux 服务器,并尽量保证客户端不中断或最少中断。

下面按**最常见场景(ISC DHCP Server)**说明,并补充 Kea / dnsmasq 差异。


一、迁移前准备

1. 确认 DHCP 类型

# ISC DHCP
ps aux | grep dhcpd

# Kea
ps aux | grep kea

# dnsmasq
ps aux | grep dnsmasq

2. 记录网络信息

  • 接口名(eth0 / ens192)
  • 子网、网关、DNS
  • 固定保留(static lease / host)
  • 是否做 DHCP 中继(relay)

二、ISC DHCP 迁移(最典型)

1. 在旧服务器导出配置和租约

配置文件

/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf   # IPv6(如有)

租约文件

/var/lib/dhcp/dhcpd.leases
/var/lib/dhcp/dhcpd6.leases

打包:

tar czvf dhcp_backup.tar.gz \
  /etc/dhcp \
  /var/lib/dhcp

2. 在新服务器安装 DHCP

# Debian / Ubuntu
apt install isc-dhcp-server

# RHEL / CentOS
yum install dhcp

3. 恢复配置和租约

tar xzvf dhcp_backup.tar.gz -C /

确认接口:

# /etc/default/isc-dhcp-server
INTERFACESv4="eth0"

4. 校验配置(非常重要)

dhcpd -t -cf /etc/dhcp/dhcpd.conf

5. 切换方式(二选一)

方式 A:停机切换(简单)

  1. 旧服务器停止 DHCP
    systemctl stop isc-dhcp-server
    
  2. 新服务器启动
    systemctl start isc-dhcp-server
    

⚠️ 租约会重新分配,但因为有 leases 文件,冲突概率低


方式 B:双机热备(推荐)

使用 DHCP Failover(ISC 原生支持)

failover peer "dhcp-failover" {
  primary;
  address 192.168.1.10;
  peer address 192.168.1.11;
  split 128;
}

适合生产环境,零中断。


三、Kea DHCP 迁移

Kea 使用 JSON 配置 + 数据库(MySQL/PostgreSQL)

迁移步骤

  1. 导出数据库
    mysqldump -u kea -p kea > kea.sql
    
  2. 拷贝配置文件
    /etc/kea/kea-dhcp4.conf
    
  3. 新服务器导入
    mysql -u kea -p kea < kea.sql
    

四、dnsmasq 迁移(最简单)

/etc/dnsmasq.conf
/var/lib/misc/dnsmasq.leases

直接拷贝即可,重启服务。


五、迁移后检查

journalctl -u isc-dhcp-server
ip addr
tcpdump -i eth0 udp port 67

客户端测试:

dhclient -r
dhclient

六、常见坑

❌ 租约文件权限不对
✅ chown dhcpd:dhcpd

❌ 防火墙阻断 67/68
✅ ufw allow 67/udp

❌ 两台 DHCP 同时运行无 failover
✅ 会造成 IP 冲突


如果你能告诉我:

  • 用的 哪种 DHCP
  • 是否 生产环境
  • 是否 跨网段 / 有中继

我可以给你一份精确到命令的迁移方案。

0 踩