14.2. 配置 DHCP 服务器
dhcp 软件包包含一个互联网系统 Consortium(ISC )D
服务器
。以 root
用户身份安装软件包:
yum install dhcp
~]# yum install dhcp
安装 dhcp 软件包会创建一个文件
/etc/dhcp/dhcpd.conf
,该文件只是一个空配置文件。以 root
身份运行以下命令:
示例配置文件可以在
/usr/share/doc/dhcp-版本;/dhcpd.conf.example
中找到。您应该使用此文件来帮助您配置 /etc/dhcp/dhcpd.conf
,详情如下。
14.2.1. 配置文件 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
配置
DHCP
服务器的第一步是创建 配置文件,该文件存储客户端的网络信息。使用此文件声明客户端系统的选项。
配置文件可以包含额外的标签页或空白行,以方便格式化。关键字不区分大小写,以哈希符号(
#
)开头的行被视为注释。
配置文件中有两种语句类型:
- 参数 - 说明如何执行任务,无论是执行任务,还是要将哪些网络配置选项发送到客户端。
- 声明 - 描述网络拓扑、描述客户端、为客户端提供地址,或者对一组声明应用一组参数。
以 keyword 选项开头的参数称为选项。这些选项控制
DHCP
选项;而参数配置不是可选的值或控制 DHCP
服务器的行为方式。
在大括号(
{ }
)括起的部分之前声明的参数(包括选项)被视为全局参数。全局参数应用到它下面的所有部分。
重要
如果配置文件已更改,则更改不会生效,直到
DHCP
守护进程使用 systemctl restart dhcpd 命令重启为止。
注意
使用omshell命令不更改
DHCP
配置文件和每次重新启动服务,而是提供了一种交互式方式来连接、查询和更改 DHCP
服务器的配置。通过使用omshell,可在服务器运行期间进行所有更改。有关omshell的详情请参考 theomshell man page。
在 例 14.1 “子网声明” 中,路由器、subnet-mask、domain-search、domain-name-servers 和 time-offset 选项都会用于它下面声明的任何主机语句。
对于将提供服务的每个子网,对于
DHCP
服务器连接到的每个子网,必须有一个子网声明,该公告告诉 DHCP
守护进程如何识别某个地址在该子网上。每个子网都需要子网声明,即使没有地址动态分配到该子网。
在本例中,子网中的每个
DHCP
客户端都有全局选项,并且声明了一个范围。为客户端分配 范围内的 IP 地址
。
例 14.1. 子网声明
要配置将动态
IP 地址租给子网中的系统的
DHCP
服务器,请从 例 14.2 “范围参数” 修改示例值。它为客户端声明默认的租用时间、最长租用时间和网络配置值。 本例将范围 192.168.1.10 和 192.168.1.
100
范围 分配给客户端系统
。
例 14.2. 范围参数
要根据网络接口卡的 MAC 地址为客户端分配
IP
地址,请在主机声明中使用硬件以太网 参数。如 例 14.3 “使用 DHCP 的静态 IP 地址” 中所示,主机 apex 声明指定 MAC 地址为 00:A0:78:8E:9E:AA
的网络接口卡始终接收 IP 地址
192.168.1.4
。
请注意,您也可以使用可选参数
host-name
为客户端分配主机名。
例 14.3. 使用 DHCP 的静态 IP 地址
host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; }
host apex {
option host-name "apex.example.com";
hardware ethernet 00:A0:78:8E:9E:AA;
fixed-address 192.168.1.4;
}
Red Hat Enterprise Linux 7 支持为 InfiniBand IPoIB 接口分配静态
IP 地址
。但是,由于这些接口没有普通的硬件以太网地址,因此必须使用不同的方法来为 IPoIB 接口指定唯一标识符。标准是使用选项 dhcp-client-identifier=
构造来指定 IPoIB 接口的 dhcp-client-identifier
字段。DHCP
服务器主机结构最多支持一个硬件以太网和每个主机段一个 dhcp-client-identifier
条目。但是,可能有多个固定地址条目,DHCP 服务器将自动使用适合 DHCP
请求所接收网络的地址来响应。
例 14.4. 在多个接口中使用 DHCP 的静态 IP 地址
如果机器有复杂的配置,例如每个物理接口上有两个 InfiniBand 接口和
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
P_Key
接口以及以太网连接,则可以使用以下静态 IP
结构来满足此配置:
要找到适合您的设备的
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
以上转储显示 Client-ID 字段。然后,硬件类型
dhcp-client-identifier
,您通常可以使用 prefix ff:00:00:00:02:00:00:02:c9:00
,然后添加 IPoIB 接口的最后 8 字节(这也会是 IPoIB 接口所在的 InfiniBand 端口的 8 字节 GUID)。在一些较旧的控制器中,这个前缀不正确。在这种情况下,我们建议在 DHCP
服务器上使用 tcpdump 来捕获传入的 IPoIB DHCP
请求,并从该捕获中收集正确的 dhcp-client-identifier
。例如:
255
与 ID 的 initial ff:
对应,而 ID 的其余部分将完全按照需要显示在 DHCP
配置文件中进行引用。
共享同一物理网络的所有子网都应在共享网络声明中声明,如 例 14.5 “shared-network lack” 所示。shared-network 中的参数以及括起的子网声明之外的参数被视为全局参数。分配给 shared-network 的名称必须是网络的描述性标题,例如使用标题 “test-lab” 来描述测试实验环境中的所有子网。
如 例 14.6 “grouprigger” 所示,组声明用于将全局参数应用到一组声明。例如,可以对共享网络、子网和主机进行分组。
例 14.6. grouprigger
注意
您可以将提供的示例配置文件用作起点,并在该文件中添加自定义配置选项。要将此文件复制到正确的位置,以
root
用户身份运行以下命令:
cp /usr/share/doc/dhcp-version_number/dhcpd.conf.example /etc/dhcp/dhcpd.conf
~]# cp /usr/share/doc/dhcp-version_number/dhcpd.conf.example /etc/dhcp/dhcpd.conf
... 其中 version_number 是
DHCP
版本号。
有关选项语句的完整列表及其作用,请参阅
dhcp-options(5)
man page。