跳转到内容跳转到页面导航:上一页 [访问键 p]/下一页 [访问键 n]
参考 › 服务 › DHCP
适用于 openSUSE Leap 15.6
摘要

动态主机配置协议 (DHCP) 的目的是集中分配网络设置(从服务器),而不是在每台工作站上本地配置它们。配置为使用 DHCP 的主机无法控制自己的静态地址。它能够根据服务器的指示自动配置自身。如果客户端使用 NetworkManager,则无需配置客户端。这在环境不断变化且一次只激活一个接口时很有用。切勿在运行 DHCP 服务器的机器上使用 NetworkManager。

配置 DHCP 服务器的一种方法是使用网络卡的硬件地址(通常应固定)来标识每个客户端,然后每次客户端连接到服务器时都向该客户端提供相同的设置。DHCP 也可以配置为从为此目的设置的地址池中动态地为每个相关客户端分配地址。在后一种情况下,DHCP 服务器会尝试每次收到请求时都向客户端分配相同的地址,即使在较长时间内也是如此。只有当网络中的客户端数量不超过地址数量时,这才能工作。

DHCP 使系统管理员的生活更轻松。任何更改,即使是较大的更改,与地址和网络配置相关的更改都可以通过编辑服务器的配置文件来集中实施。这比重新配置多个工作站方便得多。将机器(特别是新机器)集成到网络中也更容易,因为可以从池中分配一个 IP 地址。从 DHCP 服务器检索适当的网络设置在定期在不同网络中使用的笔记本电脑的情况下尤其有用。

在本章中,DHCP 服务器运行在与工作站相同的子网中,192.168.2.0/24,网关为 192.168.2.1。它具有固定的 IP 地址 192.168.2.254,并提供两个地址范围,192.168.2.10192.168.2.20192.168.2.100192.168.2.200

DHCP 服务器不仅提供 IP 地址和子网掩码,还提供主机名、域名、网关和名称服务器地址供客户端使用。除此之外,DHCP 允许以集中方式配置多个参数,例如,客户端可以从中轮询当前时间的时钟服务器,甚至打印服务器。

20.1 使用 YaST 配置 DHCP 服务器 编辑源文件

要安装 DHCP 服务器,请启动 YaST 并选择 软件 › 软件管理。选择 筛选 › 模式,然后选择 DHCP 和 DNS 服务器。确认安装依赖包以完成安装过程。

Important
重要:LDAP 支持

YaST DHCP 模块可以设置为将服务器配置存储在本地(在运行 DHCP 服务器的主机上),或者让其配置数据由 LDAP 服务器管理。要使用 LDAP,请在配置 DHCP 服务器之前设置您的 LDAP 环境。

有关 LDAP 的更多信息,请参阅 “安全和加固指南”书籍,第 5 章“使用 389 目录服务器的 LDAP”

YaST DHCP 模块 (yast2-dhcp-server) 允许您为本地网络设置自己的 DHCP 服务器。该模块可以在向导模式或专家配置模式下运行。

20.1.1 初始配置(向导) 编辑源文件

首次启动该模块时,将启动一个向导,提示您做出一些关于服务器管理的初步决定。完成此初始设置将生成一个基本服务器配置,该配置应在其基本方面起作用。专家模式可用于处理更高级的配置任务。请按以下步骤操作

  1. 从列表中选择 DHCP 服务器应侦听的接口,然后单击 选择,然后单击 下一步。请参阅 图 20.1,“DHCP 服务器:网卡选择”

    Note
    注意:DHCP 和 firewalld

    openSUSE Leap 15.6 中,打开所选接口的防火墙选项尚未支持 firewalld。要手动打开 DHCP 端口,请运行

           > sudo firewall-cmd --zone=public --permanent --add-service=dhcp
           > sudo firewall-cmd --reload
    DHCP server: card selection
    图 20.1:DHCP 服务器:网卡选择
  2. 使用复选框确定 DHCP 设置是否应由 LDAP 服务器自动存储。在文本框中,提供 DHCP 服务器应管理的所有客户端的网络特定信息。这些特定信息是域名、时钟服务器地址、主名称服务器和辅助名称服务器地址、打印服务器和 WINS 服务器地址(对于同时具有 Windows 和 Linux 客户端的混合网络)、网关地址和租期。请参阅 图 20.2,“DHCP 服务器:全局设置”

    DHCP server: global settings
    图 20.2:DHCP 服务器:全局设置
  3. 配置如何将动态 IP 地址分配给客户端。为此,指定服务器可以从该地址池向 DHCP 客户端分配地址的 IP 范围。所有这些地址必须包含在相同的子网掩码中。还指定客户端可以在无需请求延长租期的情况下保留其 IP 地址的租期。可选地,指定最大租期,即服务器为特定客户端保留 IP 地址的期限。请参阅 图 20.3,“DHCP 服务器:动态 DHCP”

    DHCP server: dynamic DHCP
    图 20.3:DHCP 服务器:动态 DHCP
  4. 定义应如何启动 DHCP 服务器。指定系统启动时是否自动启动 DHCP 服务器,或者在需要时手动启动(例如,用于测试目的)。单击 完成以完成服务器的配置。请参阅 图 20.4,“DHCP 服务器:启动”

    DHCP server: start-up
    图 20.4:DHCP 服务器:启动
  5. 与其以先前步骤中描述的方式使用动态 DHCP,还可以配置服务器以准静态方式分配地址。使用提供的文本框指定要以这种方式管理客户端的列表。具体来说,提供 名称和要赋予该客户端的 IP 地址硬件地址网络类型(令牌环或以太网)。使用 从列表中添加编辑删除修改客户端列表。请参阅 图 20.5,“DHCP 服务器:主机管理”

    DHCP server: host management
    图 20.5:DHCP 服务器:主机管理

20.1.2 DHCP 服务器配置(专家) 编辑源文件

除了前面讨论的配置方法,还有一种专家配置模式,允许您详细更改 DHCP 服务器设置。通过单击 DHCP 服务器专家配置启动对话框中(请参阅 图 20.4,“DHCP 服务器:启动”)启动专家配置。

Chroot 环境和声明

在第一个对话框中,通过选择 启动 DHCP 服务器使现有配置可编辑。DHCP 服务器行为的一个重要功能是它能够在 chroot 环境或 chroot 监狱中运行,以保护服务器主机。如果 DHCP 服务器受到外部攻击的破坏,攻击者仍然在 chroot 监狱中,这可以防止他们访问系统的其余部分。对话框的下半部分显示一个树状视图,其中包含已定义的声明。使用 添加删除编辑修改这些声明。选择 高级将带您进入其他专家对话框。请参阅 图 20.6,“DHCP 服务器:chroot 监狱和声明”。选择 添加后,定义要添加的声明类型。使用 高级,查看服务器的日志文件,配置 TSIG 密钥管理,并根据 DHCP 服务器的设置调整防火墙配置。

DHCP server: chroot jail and declarations
图 20.6:DHCP 服务器:chroot 监狱和声明
选择声明类型

DHCP 服务器的 全局选项由多个声明组成。此对话框允许您设置声明类型 子网主机共享网络地址池。此示例显示选择新的子网(请参阅 图 20.7,“DHCP 服务器:选择声明类型”)。

DHCP server: selecting a declaration type
图 20.7:DHCP 服务器:选择声明类型
子网配置

此对话框允许您使用其 IP 地址和子网掩码指定新的子网。在对话框的中间部分,使用 添加编辑删除修改所选子网的 DHCP 服务器启动选项。要为子网设置动态 DNS,请选择 动态 DNS

DHCP server: configuring subnets
图 20.8:DHCP 服务器:配置子网
TSIG 密钥管理

如果您选择在之前的对话框中配置动态 DNS,现在可以配置用于安全区域传输的密钥管理。选择 确定将带您进入另一个对话框,您可以在其中配置动态 DNS 的接口(请参阅 图 20.10,“DHCP 服务器:动态 DNS 的接口配置”)。

DHCP server: TSIG configuration
图 20.9:DHCP 服务器:TSIG 配置
动态 DNS:接口配置

现在,您可以选择 为此子网启用动态 DNS来激活子网的动态 DNS。选择后,使用下拉框激活前向和反向区域的 TSIG 密钥,确保 DNS 和 DHCP 服务器的密钥相同。使用 更新全局动态 DNS 设置,根据动态 DNS 环境自动更新和调整全局 DHCP 服务器设置。最后,定义应根据动态 DNS 更新哪些前向和反向区域,指定每个区域的主名称服务器。选择 确定将返回到子网配置对话框(请参阅 图 20.8,“DHCP 服务器:配置子网”)。再次选择 确定将返回到原始专家配置对话框。

DHCP server: interface configuration for dynamic DNS
图 20.10:DHCP 服务器:动态 DNS 的接口配置
Note
注意:ignore client-updates 选项

在启用区域的动态 DNS 时,YaST 会自动添加 ignore client-updates 选项以提高客户端兼容性。如果不需要,可以禁用该选项。

网络接口配置

要定义 DHCP 服务器应侦听的接口并调整防火墙配置,请从专家配置对话框中选择 高级 › 接口配置。从显示的接口列表中,选择应由 DHCP 服务器处理的一个或多个接口。如果所有子网中的客户端都需要能够与服务器通信,并且服务器主机也运行防火墙,请相应地调整防火墙。

Note
注意:DHCP 和 firewalld

openSUSE Leap 15.6 中,打开所选接口的防火墙选项尚未支持 firewalld。要手动打开 DHCP 端口,请运行

        > sudo firewall-cmd --zone=public --permanent --add-service=dhcp
        > sudo firewall-cmd --reload
DHCP server: network interface and firewall
图 20.11:DHCP 服务器:网络接口和防火墙

完成所有配置步骤后,使用 确定关闭对话框。现在服务器已使用其新配置启动。

20.2 DHCP 软件包 编辑源文件

DHCP 服务器和 DHCP 客户端都适用于 openSUSE Leap。可用的 DHCP 服务器是 dhcpd(由 Internet Systems Consortium 发布)。在客户端方面,有 dhcp-client(也来自 ISC)以及随 wicked 包一起提供的工具。

默认情况下,wicked 工具会安装服务 wickedd-dhcp4wickedd-dhcp6。这两个服务将在每次系统启动时自动启动,以监视 DHCP 服务器。它们不需要配置文件即可工作,并且在大多数标准设置中都可以开箱即用。对于更复杂的情况,请使用 ISC dhcp-client,它由配置文件 /etc/dhclient.conf/etc/dhclient6.conf 控制。

20.3 DHCP 服务器 dhcpd 编辑源文件

任何 DHCP 系统核心都是动态主机配置协议守护程序。此服务器 租借 地址并根据在配置文件 /etc/dhcpd.conf 中定义的设置监视其使用情况。通过更改此文件中的参数和值,系统管理员可以以多种方式影响程序的行为。请查看基本示例 /etc/dhcpd.conf 文件在 示例 20.1,“配置文件 /etc/dhcpd.conf” 中。

示例 20.1: 配置文件 /etc/dhcpd.conf
default-lease-time 600;         # 10 minutes
max-lease-time 7200;            # 2  hours

option domain-name "example.com";
option domain-name-servers 192.168.1.116;
option broadcast-address 192.168.2.255;
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;

subnet 192.168.2.0 netmask 255.255.255.0
 {
  range 192.168.2.10 192.168.2.20;
  range 192.168.2.100 192.168.2.200;
 }

这个简单的配置文件应该足以让 DHCP 服务器在网络中分配 IP 地址。确保在每行末尾插入一个分号,否则 dhcpd 将不会启动。

该示例文件可以分为三个部分。第一部分定义了默认情况下向请求客户端租借 IP 地址的秒数 (default-lease-time),然后它应该申请续订。本节还包括机器可以保持 DHCP 服务器分配的 IP 地址的最长时间,而无需申请续订 (max-lease-time)。

在第二部分中,某些基本网络参数在全局级别定义

  • option domain-name 定义了网络的默认域名。

  • 使用条目 option domain-name-servers,指定最多三个用于将 IP 地址解析为主机名以及反向解析的值。理想情况下,在设置 DHCP 之前,在您的机器或网络中的其他位置配置一个名称服务器。该名称服务器还应为每个动态地址定义一个主机名,反之亦然。要了解如何配置自己的名称服务器,请阅读 第 19 章,域名系统

  • option broadcast-address 定义了请求客户端应使用的广播地址。

  • 使用 option routers,设置服务器应将数据包发送到何处,这些数据包无法传递到本地网络上的主机(根据源和目标主机地址以及提供的子网掩码)。尤其是在较小的网络中,此路由器与 Internet 网关相同。

  • 使用 option subnet-mask,指定分配给客户端的网络掩码。

文件的最后一部分定义了一个网络,包括一个子网掩码。最后,指定 DHCP 守护程序应使用的地址范围,以向感兴趣的客户端分配 IP 地址。在 示例 20.1,“配置文件 /etc/dhcpd.conf” 中,客户端可以被赋予介于 192.168.2.10192.168.2.20192.168.2.100192.168.2.200 之间的任何地址。

编辑这些行后,您应该能够使用命令 systemctl start dhcpd 激活 DHCP 守护程序。它将立即准备就绪。使用命令 rcdhcpd check-syntax 执行简要的语法检查。如果您在使用配置时遇到任何意外问题(服务器因错误而中止或未返回 done 启动),您应该能够通过查看主系统日志来找出问题所在,该日志可以使用命令 journalctl 查询(有关更多信息,请参阅 第 11 章,journalctl:查询 systemd 日志)。

在默认的 openSUSE Leap 系统上,DHCP 守护程序出于安全原因在 chroot 环境中启动。必须将配置文件复制到 chroot 环境,守护程序才能找到它们。通常,无需担心这一点,因为命令 systemctl start dhcpd 会自动复制文件。

20.3.1 具有固定 IP 地址的客户端 编辑源文件

DHCP 也可以用于为特定客户端分配预定义的静态地址。分配的地址始终优先于池中的动态地址。静态地址不会像动态地址那样过期,例如,如果没有足够的可用地址,服务器需要将它们重新分发给客户端。

为了识别配置了静态地址的客户端,dhcpd 使用硬件地址(这是一个全局唯一、固定的六个八位字节对数值代码)来识别所有网络设备(例如,00:30:6E:08:EC:80)。如果将类似 示例 20.2,“配置文件的补充” 中的行添加到 示例 20.1,“配置文件 /etc/dhcpd.conf” 的配置文件中,DHCP 守护程序将始终将相同的数据集分配给相应的客户端。

示例 20.2: 配置文件的补充
host jupiter {
hardware ethernet 00:30:6E:08:EC:80;
fixed-address 192.168.2.100;
}

在第一行中输入相应的客户端名称 (host HOSTNAME,此处为 jupiter),并在第二行中输入 MAC 地址。在 Linux 主机上,使用命令 ip link show 后跟网络设备(例如,eth0)查找 MAC 地址。输出应包含类似内容

link/ether 00:30:6E:08:EC:80

在前面的示例中,具有 MAC 地址 00:30:6E:08:EC:80 的网络卡的客户端将自动分配 IP 地址 192.168.2.100 和主机名 jupiter。在几乎所有情况下,要输入的硬件类型都是 ethernet,尽管也支持通常在 IBM 系统中找到的 token-ring

20.3.2 openSUSE Leap 版本 编辑源文件

为了提高安全性,openSUSE Leap 版本的 ISC 的 DHCP 服务器应用了 Ari Edelkind 的非 root/chroot 补丁。这使得 dhcpd 能够使用用户 ID nobody 运行并在 chroot 环境 (/var/lib/dhcp) 中运行。为了使之成为可能,配置文件 dhcpd.conf 必须位于 /var/lib/dhcp/etc 中。启动脚本会自动将文件复制到此目录。

通过文件 /etc/sysconfig/dhcpd 中的条目控制服务器对此功能的行为。要使 dhcpd 不使用 chroot 环境运行,请将变量 DHCPD_RUN_CHROOTED/etc/sysconfig/dhcpd 中设置为 no

为了使 dhcpd 即使在 chroot 环境中也能解析主机名,还必须复制以下配置文件

  • /etc/localtime

  • /etc/host.conf

  • /etc/hosts

  • /var/run/netconfig/resolv.conf

这些文件在启动 init 脚本时复制到 /var/lib/dhcp/etc/。请注意这些副本,因为它们需要动态修改的脚本(例如 /etc/ppp/ip-up)可能需要更改它们。但是,如果配置文件仅指定 IP 地址(而不是主机名),则通常无需担心这一点。

如果您的配置包含应复制到 chroot 环境的其他文件,请在文件 /etc/sysconfig/dhcpd 中的变量 DHCPD_CONF_INCLUDE_FILES 下设置这些文件。为了确保 DHCP 记录设施在 syslog 守护程序重新启动后仍然有效,文件 /etc/sysconfig/syslog 中还有一个条目 SYSLOGD_ADDITIONAL_SOCKET_DHCP

20.4 更多信息 编辑源文件

有关 DHCP 的更多信息,请访问 Internet Systems Consortium 的网站 (https://www.isc.org/dhcp/)。dhcpddhcpd.confdhcpd.leasesdhcp-options man 页面中也提供了信息。

打印此页面