你问的“Linux DHCP 怎样集成”,通常有几个常见场景。下面按最常被问到的几种情况来说明,你可以对照自己的需求看。
isc-dhcp-server(传统方案)适用于:小型网络、局域网、内网服务
安装
# Debian / Ubuntu
apt install isc-dhcp-server
# CentOS / RHEL
yum install dhcp
配置
vi /etc/dhcp/dhcpd.conf
示例:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
}
指定网卡
vi /etc/default/isc-dhcp-server
INTERFACESv4="eth0"
启动
systemctl enable --now isc-dhcp-server
dnsmasq(推荐,轻量)适合:家庭网络、Docker、KVM、开发环境
apt install dnsmasq
配置:
vi /etc/dnsmasq.conf
dhcp-range=192.168.1.100,192.168.1.200,12h
dhcp-option=option:router,192.168.1.1
systemctl enable --now dnsmasq
nmcli con mod eth0 ipv4.method auto
nmcli con up eth0
[Match]
Name=eth0
[Network]
DHCP=yes
systemctl enable --now systemd-networkd
dhcp-host=aa:bb:cc:dd:ee:ff,host1,192.168.1.10
客户端获得 IP 的同时,DNS 也能解析 host1。
适合:大型网络
ddns-updates(这个比较复杂,需要可单独说)
| 场景 | 方案 |
|---|---|
| KVM | libvirt + dnsmasq |
| Docker | 自定义桥 + dnsmasq |
| OpenStack | neutron-dhcp-agent |
| Kubernetes | 不使用 DHCP(用 CNI) |
| 你的需求 | 推荐方案 |
|---|---|
| 内网自动分配 IP | isc-dhcp / dnsmasq |
| DHCP + DNS 一起 | dnsmasq |
| 和公司 AD / Windows DHCP | 不混用,Linux 做中继 |
| 跨子网分配 IP | DHCP Relay(dhcrelay) |
apt install isc-dhcp-relay
dhcrelay -i eth0 192.168.0.1
简单用 dnsmasq,正式用 isc-dhcp,云环境用平台自带 DHCP。
如果你能告诉我:
我可以直接给你一套可复制的配置文件。