14.4. 配置多homed DHCP 服务器


多主 DHCP 服务器为多个网络提供服务,即多个子网。这些部分中的示例详细介绍了如何配置 DHCP 服务器为多个网络服务、选择要侦听的网络接口以及如何为移动网络的系统定义网络设置。
在进行任何更改之前,备份现有的 /etc/dhcp/dhcpd.conf 文件。
DHCP 守护进程将仅侦听在 /etc/dhcp/dhcpd.conf 文件中找到子网声明的接口。
以下是具有两个网络接口的服务器的基本 /etc/dhcp/dhcpd.conf 文件:enp1s010.0.0.0/24 网络中,以及 enp2s0172.16.0.0/24 网络中。通过多个 subnet 声明,您可以为多个网络定义不同的设置:
default-lease-time 600;
max-lease-time 7200;
subnet 10.0.0.0 netmask 255.255.255.0 {
	option subnet-mask 255.255.255.0;
	option routers 10.0.0.1;
	range 10.0.0.5 10.0.0.15;
}
subnet 172.16.0.0 netmask 255.255.255.0 {
	option subnet-mask 255.255.255.0;
	option routers 172.16.0.1;
	range 172.16.0.5 172.16.0.15;
}
Copy to Clipboard Toggle word wrap
subnet 10.0.0.0 netmask 255.255.255.0;
您的 DHCP 服务器服务的每个网络都需要 subnet 声明。多个子网需要多个 subnet 声明。如果 DHCP 服务器在 subnet 声明范围中没有网络接口,DHCP 服务器不为该网络提供服务
如果只有一个 subnet 声明,且该子网的范围中没有网络接口,DHCP 守护进程无法启动,且以下错误会记录到 /var/log/messages
dhcpd: No subnet declaration for enp1s0 (0.0.0.0).
dhcpd: ** Ignoring requests on enp1s0.  If this is not what
dhcpd:    you want, please write a subnet declaration
dhcpd:    in your dhcpd.conf file for the network segment
dhcpd:    to which interface enp2s0 is attached. **
dhcpd:
dhcpd:
dhcpd: Not configured to listen on any interfaces!
Copy to Clipboard Toggle word wrap
option subnet-mask 255.255.255.0;
option subnet-mask 选项定义子网掩码,并覆盖 subnet 声明中的 netmask 值。在简单情况下,子网和子网掩码值相同。
option routers 10.0.0.1;
option routers 选项定义子网的默认网关。对于系统而言,这是必需的,才能访问不同子网和外部网络上的内部网络。
range 10.0.0.5 10.0.0.15;
range 选项指定可用 IP 地址池。从指定的 IP 地址范围内为系统分配地址。
如需更多信息,请参阅 dhcpd.conf(5) man page。
警告
为避免在 DHCP 服务器向另一个物理以太网网段提供 IP 地址时出现错误配置,请确保您没有在共享网络声明中包含更多子网。

14.4.1. 主机配置

在进行任何更改之前,备份现有的 /etc/sysconfig/dhcpd/etc/dhcp/dhcpd.conf 文件。

为多个网络配置单一系统

以下 /etc/dhcp/dhcpd.conf 示例创建两个子网,并根据它连接到的网络为同一系统配置 IP 地址

default-lease-time 600;
max-lease-time 7200;
subnet 10.0.0.0 netmask 255.255.255.0 {
	option subnet-mask 255.255.255.0;
	option routers 10.0.0.1;
	range 10.0.0.5 10.0.0.15;
}
subnet 172.16.0.0 netmask 255.255.255.0 {
	option subnet-mask 255.255.255.0;
	option routers 172.16.0.1;
	range 172.16.0.5 172.16.0.15;
}
host example0 {
	hardware ethernet 00:1A:6B:6A:2E:0B;
	fixed-address 10.0.0.20;
}
host example1 {
	hardware ethernet 00:1A:6B:6A:2E:0B;
	fixed-address 172.16.0.20;
}
Copy to Clipboard Toggle word wrap
host example0
host 声明为单个系统定义特定参数,如 IP 地址。要为多个主机配置特定参数,请使用多个 host 声明。
大多数 DHCP 客户端会忽略 host 声明中的名称,因此该名称可以是任意名称,只要它对于其他 host 声明是唯一的。要为多个网络配置相同的系统,请为每个 host 声明使用不同的名称,否则 DHCP 守护进程无法启动。系统由 hardware ethernet 选项识别,而不是 host 声明中的名称。
hardware ethernet 00:1A:6B:6A:2E:0B;
hardware ethernet 选项标识系统。要查找此地址,请运行 ip link 命令。
fixed-address 10.0.0.20;
fixed-address 选项为 hardware ethernet 选项指定的系统分配有效的 IP 地址。这个地址必须在 range 选项指定的 IP 地址池之外
如果 option 语句没有以分号结尾,DHCP 守护进程无法启动,且以下错误会记录到 /var/log/messages
/etc/dhcp/dhcpd.conf line 20: semicolon expected.
dhcpd: }
dhcpd: ^
dhcpd: /etc/dhcp/dhcpd.conf line 38: unexpected end of file
dhcpd:
dhcpd: ^
dhcpd: Configuration file errors encountered -- exiting
Copy to Clipboard Toggle word wrap

使用多个网络接口配置系统

以下 host 声明配置了一个系统,它具有多个网络接口,以便每个接口接收相同的 IP 地址。如果两个网络接口同时连接到同一网络,则此配置无法正常工作:

host interface0 {
	hardware ethernet 00:1a:6b:6a:2e:0b;
	fixed-address 10.0.0.18;
}
host interface1 {
	hardware ethernet 00:1A:6B:6A:27:3A;
	fixed-address 10.0.0.18;
}
Copy to Clipboard Toggle word wrap
在本例中,interface0 是第一个网络接口,interface1 是第二个接口。不同的 hardware ethernet 选项标识每个接口。
如果此类系统连接到另一个网络,请添加更多 host 声明,请记住:
  • 为主机连接到的网络分配有效的 fixed-address
  • 使 host 声明中的名称唯一。
host 声明中指定的名称不唯一时,DHCP 守护进程无法启动,且以下错误会记录到 /var/log/messages
dhcpd: /etc/dhcp/dhcpd.conf line 31: host interface0: already exists
dhcpd: }
dhcpd: ^
dhcpd: Configuration file errors encountered -- exiting
Copy to Clipboard Toggle word wrap
这个错误是由 /etc/dhcp/dhcpd.conf 中定义的多个 host interface0 声明造成的。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat