管理网络基础架构服务
大约 28 分钟
管理网络基础架构服务
来源:官方文档 原始多页入口:管理网络基础架构服务 内容规模:约 36,103 字符,29 个章节标题,148 个命令/代码块,13 条提示框
阅读提要
- 副标题:管理网络基础设施服务的指南
- 摘要:本文档论述了如何在 Red Hat Enterprise Linux 上设置和管理网络核心基础设施服务,如 DNS 和 DHCP。
- 主要章节:管理网络基础设施服务的指南;对红帽文档提供反馈;第 1 章 配置 BIND DNS 服务器;第 2 章 配置 unbound DNS 服务器;第 3 章 提供 DHCP 服务
- 推荐阅读顺序:先看“阅读提要”和目录,再按章节查看“关键点/命令/注意”;需要原文细节时点击来源链接。
章节笔记
概览
- 该章节主要为下一级主题的入口。
管理网络基础设施服务的指南
- 要点:摘要
对红帽文档提供反馈
- 要点:我们致力于为您提供高质量的文档,您的反馈将对我们有很大帮助。为帮助我们改进,您可以通过 Red Hat Jira 跟踪系统提交建议或报告错误。
- 要点:流程
- 列表:登录到 Jira 网站。 如果您还没有帐户,请创建一个。
- 列表:单击顶部导航栏中的 Create。
- 列表:在 Summary 字段中输入描述性标题。
- 列表:在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 列表:点窗口底部的 Create。
第 1 章 配置 BIND DNS 服务器
- 要点:要管理域名系统 (DNS) 服务,请配置 BIND DNS 服务器,为您的网络提供可靠的名称解析。您可以使用 BIND 作为缓存服务器来提高本地网络的查找速度,也可以作为辅助服务器来确保区域的高可用性。
1.1. 有关使用 SELinux 保护 BIND 的注意事项,或者在更改 root 环境中运行
- 要点:要保证 BIND 安装的安全,可以在没有更改根 (chroot) 环境的情况下运行命名服务,也可以在更改根环境中运行命名根服务。
- 要点:运行 named 而不需要 change-root 环境。在这种情况下,enforcing 模式中的 SELinux 会阻止利用已知的 BIND 安全漏洞。默认情况下,Red Hat Enterprise Linux (RHEL)在 enforcing 模式中使用 SELinux。
- 列表:运行 named 而不需要 change-root 环境。在这种情况下,enforcing 模式中的 SELinux 会阻止利用已知的 BIND 安全漏洞。默认情况下,Red Hat Enterprise Linux (RHEL)在 enforcing 模式中使用 SELinux。 重要 在 SELinux 处于 enforcing 模式的 RHEL 上运行 BIND 比在 change-root 环境中运行 BIND 更安全。
- 列表:在 change-root 环境中运行 named-chroot 服务。 通过使用 change-root 功能,您可以定义进程的根目录及其子进程与 / 目录不同。当您启动 named-chroot 服务时,BIND 将其根目录切换到 /var/named/chroot/。因此,服务使用 mount --bind 命令使 /etc/named-chroot.files 中列出的文件和目录保存在 /var/named/chroot/ 中,进程无法访问 /var/named/chroot/ 以外的文件。
- 列表:在正常模式中,使用 named 服务。
- 列表:在 change-root 环境中,使用 named-chroot 服务。为此,请安装 named-chroot 软件包。
- 注意:重要 在 SELinux 处于 enforcing 模式的 RHEL 上运行 BIND 比在 change-root 环境中运行 BIND 更安全。
1.2. 将 BIND 配置为缓存 DNS 服务器
- 要点:要从缓存中解析并缓存对相同记录的成功和失败查询及响应请求,请将 BIND 配置为缓存 DNS 服务器。这可充当区域的权威 DNS 服务器,并提高 DNS 查找速度。
- 要点:先决条件
- 列表:您有管理特权。
- 列表:服务器的 IP 地址是静态的。
- 列表:安装 bind 和 bind-utils 软件包: # dnf install bind bind-utils
- 列表:可选: 如果要在更改根 (chroot) 环境中运行 BIND,这将应用程序隔离在受限目录结构中以增强安全性,请安装 bind-chroot 包: # dnf install bind-chroot 在 SELinux 处于 enforcement 模式(默认设置)的主机上运行 BIND 更为安全。
- 列表:编辑 /etc/named.conf 文件,并使用以下设置更新 options 语句: listen-on port 53 { 127.0.0.1; 192.0.2.1; }; listen-on-v6 port 53 { ::1; 2001:db8:1::1; }; allow-query { localhost; 192.0.2.0/24; 2001:db8:1::/64; }; allow-recursion { localhost; 192.0.2.0/24; 2001:db8:1::/64; }; forwarders { 198.51.100.1; 203.0.113.5; }; 这些设置: 设置 BIND 监听哪些 …
- 列表:设置 BIND 监听哪些 IPv4 和 IPv6 接口(监听和监听 v6)。
- 命令/配置摘录:
# dnf install bind bind-utils
# dnf install bind-chroot- 注意:警告 不要在服务器的公共 IP 地址中递归。否则,服务器可能会成为大规模 DNS 扩大攻击的目标。
1.3. 在 BIND DNS 服务器中配置日志记录
- 要点:要排除 DNS 问题和监视服务器活动,请在 BIND DNS 服务器上配置日志记录。您可以设置日志位置、严重级别和类别以跟踪事件,如区域传输、安全违规和查询模式。
- 要点:先决条件
- 列表:您已将 BIND 配置为缓存名称服务器。
- 列表:您已启动 named 或 named-chroot 服务。
- 列表:编辑 /etc/named.conf 文件,并在 logging 语句中添加 category 和 channel 短语,例如: logging { ... category notify { zone_transfer_log; }; category xfer-in { zone_transfer_log; }; category xfer-out { zone_transfer_log; }; channel zone_transfer_log { file "/var/named/log/transfer.log" versions 10 size 50m; print-time yes; print-ca…
- 列表:BIND 将与区域传送相关的消息记录到 /var/named/log/transfer.log。
- 列表:BIND 创建最多 10 个日志文件版本,并在它们达到 50 MB 时轮转它们。
- 列表:category 定义了 BIND 向哪些频道发送类别信息。
- 命令/配置摘录:
logging { ... category notify { zone_transfer_log; }; category xfer-in { zone_transfer_log; }; category xfer-out { zone_transfer_log; }; channel zone_transfer_log { file "/var/named/log/transfer.log" versions 10 size 50m; print-time yes; print-category yes; print-severity yes; severity info; }; ... };
# mkdir /var/named/log/ # chown named:named /var/named/log/ # chmod 700 /var/named/log/1.4. 创建 BIND 访问控制列表
- 要点:要防止未经授权的访问和攻击,如拒绝服务(DoS),您可以使用访问控制列表(ACL)语句来控制对 BIND 的某些功能的访问。ACL 语句是 IP 地址和范围的列表。
- 要点:每个 ACL 都有一个别名,您可以在几个语句中使用,如 allow-query,它指的是指定的 IP 地址和范围。BIND 有以下内置 ACL 语句:
- 列表:none:不匹配主机。
- 列表:any: 匹配所有主机。
- 列表:localhost :匹配环回地址 127.0.0.1 和 ::1,以及运行 BIND 的服务器上所有接口的 IP 地址。
- 列表:localnets :匹配环回地址 127.0.0.1 和 ::1,运行 BIND 的服务器都直接连接到的所有子网。
- 列表:您已将 BIND 配置为缓存名称服务器。
- 列表:named 或 named-chroot 服务正在运行。
- 命令/配置摘录:
acl internal-networks { 127.0.0.1; 192.0.2.0/24; 2001:db8:1::/64; }; acl dmz-networks { 198.51.100.0/24; 2001:db8:2::/64; };
allow-query { internal-networks; dmz-networks; }; allow-recursion { internal-networks; };- 注意:警告 BIND 仅在 ACL 中使用第一个匹配条目。例如,如果您定义了 ACL { 192.0.2/24; !192.0.2.1; } 和 IP 地址为 192.0.2.1 的主机,则 BIND 也会授予访问权限,即使第二个条目排除了这个地址。
1.5. 在 BIND DNS 服务器中配置区
- 要点:要管理组织域的域名解析 (DNS ) , 请在 BIND DNS 服务器上配置区域。区域包含将域名(如 www.example.com)映射到 IP 地址的 DNS 记录。因此,客户端可以解析您区域内的主机。
1.5.1. 区域文件中的授权记录开始
- 要点:要管理多个对区域和 DNS 解析器的 DNS 服务器,您可以使用权威启动(SOA)记录。此记录在 DNS 区域中至关重要。
- 要点:BIND 中的 SOA 记录具有以下语法:
- 列表:name:区域名称,也称为源。如果设置为 @,BIND 将使用 /etc/named.conf 中的区域名称。
- 列表:class:始终将此设置为 Internet(IN)。
- 列表:type:始终将此设置为 SOA。
- 列表:mname (主名称):此区域的主域名服务器的主机名。
- 列表:rname (负责名称): 负责此区域的电子邮件地址。将 at 符号 (@) 替换为点 (.)。
- 列表:serial :此区域文件的版本号。辅助服务器仅在此数字高于其服务器时才更新。 你可以使用任何号码。通常的格式是 <year><month><day><two_digit_number>。使用此格式,您可以每天最多更改 99 次区域文件。
- 命令/配置摘录:
name class type mname rname serial refresh retry expire minimum
@ IN SOA ns1.example.com. hostmaster.example.com. ( 2022070601 ; serial number 1d ; refresh period 3h ; retry period 3d ; expire time 3h ) ; minimum TTL- 注意:重要 完全限定的域名 (FQDN) 以点结尾,点标记 DNS 名称的结尾。如果区域文件中的名称没有尾随点,BIND 会将区域名称添加到其中。 没有尾部点的主机名,例如 ns1.example.com 扩展至 ns1.example.com.example.com,这不是主名称服务器的正确地址。
- 注意:注意 refresh, retry, expire, 和 minimum 项中的值定义了一个时间(以秒为单位)。但是,为了提高可读性,请使用时间后缀,如 m 表示分钟、h 表示小时,以及 d 表示天。例如,3h 代表 3 小时。
1.5.2. 在 BIND 主服务器中配置转发区
- 要点:要启用将域名映射到 IP 地址和其他信息,请在 BIND 主服务器上设置转发区域。例如,如果您负责 example.com 域,您可以在 BIND 中设置转发区来解析名称,如 www.example.com。
- 要点:先决条件
- 列表:您已在服务器上安装 bind 软件包。
- 列表:您已将服务器配置为作为缓存名称服务器运行。
- 列表:named 或 named-chroot 服务正在运行。
- 列表:在 /etc/named.conf 文件中添加区定义: zone "example.com" { type master; file "example.com.zone"; allow-query { any; }; allow-transfer { none; }; }; 这些设置定义: 此服务器是 example.com 区域的主服务器(类型为 master)。 /var/named/example.com.zone 文件是区域文件。如果您设置了相对路径,如本例中所示,这个路径相对于您在 options 语句中的目录中创建的 directory 相对。 任何主机都可以查询此区域。但是,您可以指定 IP 范围或 BIND…
- 列表:此服务器是 example.com 区域的主服务器(类型为 master)。
- 列表:/var/named/example.com.zone 文件是区域文件。如果您设置了相对路径,如本例中所示,这个路径相对于您在 options 语句中的目录中创建的 directory 相对。
- 命令/配置摘录:
zone "example.com" { type master; file "example.com.zone"; allow-query { any; }; allow-transfer { none; }; };
# named-checkconf1.5.3. 在 BIND 主服务器中配置反向区
- 要点:要将 IP 地址映射到名称,您可以在 BIND 主服务器中设置反向区。例如,如果您有 192.0.2.0/24 IP 范围,您可以在 BIND 中设置反向区,以将 IP 地址从这个范围解析为主机名。
- 要点:先决条件
- 列表:您已将 BIND 配置为缓存名称服务器。
- 列表:named 或 named-chroot 服务正在运行。
- 列表:您有管理特权。
- 列表:在 /etc/named.conf 文件中添加区定义: zone "2.0.192.in-addr.arpa" { type master; file "2.0.192.in-addr.arpa.zone"; allow-query { any; }; allow-transfer { none; }; }; 这些设置定义: 此服务器是 2.0.192.in-addr.arpa 反向区域的主服务器(类型 master)。 /var/named/2.0.192.in-addr.arpa.zone 文件是区域文件。如果您设置了相对路径,如本例中所示,这个路径相对于您在 options 语句中的目录中创建的 directory …
- 列表:此服务器是 2.0.192.in-addr.arpa 反向区域的主服务器(类型 master)。
- 列表:/var/named/2.0.192.in-addr.arpa.zone 文件是区域文件。如果您设置了相对路径,如本例中所示,这个路径相对于您在 options 语句中的目录中创建的 directory 相对。
- 命令/配置摘录:
zone "2.0.192.in-addr.arpa" { type master; file "2.0.192.in-addr.arpa.zone"; allow-query { any; }; allow-transfer { none; }; };
# named-checkconf- 注意:注意 创建反向区域时,根据基于类的网络编址方案命名区域。例如: 对于 A 类网络,如 10.0.0.0/8,请使用区域名称 10.in-addr.arpa。 对于 B 类网络,如 172.16.0.0/16,请使用区域名称 16.172.in-addr.arpa。 对于 C 类网络,如 192.0.2.0/24,请使用区域名称 2.0.192.in-addr.arpa。 对于与传统有类边界不一致的子网,例如 192.0.2.0/28,请使用适当的区域命名格式,例如 28-2.0.192.in-addr.arpa。
1.5.4. 更新 BIND 区文件
- 要点:要更新对某个区域的权威多个 DNS 服务器,请仅在主服务器中更新区域文件。例如,如果您更改了服务器的 IP 地址,则需要更新区域文件。存储区域副本的其他 DNS 服务器通过区传输接收更新。
- 要点:先决条件
- 列表:您已配置了区。
- 列表:您已启动 named 或 named-chroot 服务。
- 列表:您有管理特权。
- 列表:可选:识别 /etc/named.conf 文件中的区文件的路径: options { ... directory "/var/named"; } zone "example.com" { ... file "example.com.zone"; }; 您可以在区域定义的 file 指令中找到到区域文件的路径。相对路径相对于 options 语句中的 directory 设置的相对路径。
- 列表:编辑区域文件: 进行必要的更改。 在 SOA 记录中递增序列号。 重要 如果序列号等于或小于前一个值,则次要服务器不会更新其区域的副本。
- 列表:进行必要的更改。
- 命令/配置摘录:
options { ... directory "/var/named"; } zone "example.com" { ... file "example.com.zone"; };
# named-checkzone example.com /var/named/example.com.zone- 注意:重要 如果序列号等于或小于前一个值,则次要服务器不会更新其区域的副本。
1.5.5. 使用自动化功能签署 DNSSEC 区域
- 要点:为确保客户端的区域信息的真实性,您可以使用域名系统安全扩展(DNSSEC)为区域签名。签名的区域包含额外的资源记录。
- 要点:为区域启用 DNSSEC 策略功能后,BIND 会自动执行以下操作:
- 列表:创建密钥
- 列表:签署区域
- 列表:维护区域,包括重新签名并定期替换密钥 在 BIND 中,您可以使用内置的 默认 DNSSEC 策略,该策略使用单一 ECDSAP256SHA 密钥签名。但是,创建自己的策略来使用自定义密钥、算法和计时。
- 列表:您已在服务器上安装 bind 软件包。
- 列表:您已配置了要启用 DNSSEC 的区域。
- 列表:named 或 named-chroot 服务正在运行。
- 命令/配置摘录:
zone "example.com" { ... dnssec-policy default; inline-signing yes; };
# systemctl reload named1.6. 在 BIND DNS 服务器中配置区传输
- 要点:要确保所有具有区副本的 DNS 服务器具有最新的数据,请在 BIND DNS 服务器中配置区域传送。
- 要点:区域传输允许一个权威DNS服务器从另一个权威DNS服务器检索整个DNS区域。接收服务器存储区域内容并用它来回答查询,同时继续刷新其副本以保持与源一致。
- 列表:您有管理特权。
- 列表:在目标主服务器上,已配置要设置区域传送的区域。
- 列表:在目标辅助服务器上,已配置 BIND,例如作为缓存名称服务器。
- 列表:在两个服务器上,named 或 named-chroot 服务正在运行。
- 列表:在现有主服务器中: 生成共享密钥并将其附加到 /etc/named.conf 文件中: # tsig-keygen example-transfer-key | tee -a /etc/named.conf key "example-transfer-key" { algorithm hmac-sha256; secret "q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ="; }; 输出附加到 /etc/named.conf 文件。 您稍后会在次要服务器上需要此输出。 在 allow-transfer 语句中,在 /etc/named.conf 文件中配置区,以要求密钥…
- 列表:生成共享密钥并将其附加到 /etc/named.conf 文件中: # tsig-keygen example-transfer-key | tee -a /etc/named.conf key "example-transfer-key" { algorithm hmac-sha256; secret "q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ="; }; 输出附加到 /etc/named.conf 文件。 您稍后会在次要服务器上需要此输出。
- 命令/配置摘录:
# tsig-keygen example-transfer-key | tee -a /etc/named.conf
key "__example-transfer-key__" { algorithm hmac-sha256; secret "__q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ=__"; };1.7. 在 BIND 中配置响应策略区以覆盖 DNS 记录
- 要点:要重写阻止访问某些域或主机的 DNS 响应,请在 BIND 中配置响应策略区域 (RPZ)。您可以将 DNS 阻止和过滤与 RPZ 一起使用。您可以为阻止的条目配置操作,例如返回 NXDOMAIN 错误。
- 要点:如果您有许多 DNS 服务器,请在主服务器上配置 RPZ,稍后配置区域传输以使 RPZ 在辅助服务器上可用。
- 列表:您已将 BIND 配置为缓存名称服务器。
- 列表:named 或 named-chroot 服务正在运行。
- 列表:您有管理特权。
- 列表:编辑 /etc/named.conf 文件,将 response-policy 定义添加到 options 语句中: options { ... response-policy { zone "rpz.local"; }; ... } 您可以在 response-policy 的 zone 语句中为 RPZ 设置自定义名称。但是,在下一步中,您必须在区定义中使用相同的名称。
- 列表:为您在最后一步中设置的 RPZ 添加 区定义 : zone "rpz.local" { type master; file "rpz.local"; allow-query { localhost; 192.0.2.0/24; 2001:db8:1::/64; }; allow-transfer { none; }; }; 此服务器是名为 rpz.local 的 RPZ 的主服务器 (type master)。 /var/named/rpz.local 文件是区域文件。在本例中,如果您设置了相对路径,此路径相对于您在 options 语句中的 directory 中设置的目录。 allow-query 中定义的任何主机都可…
- 列表:此服务器是名为 rpz.local 的 RPZ 的主服务器 (type master)。
- 命令/配置摘录:
options { ... response-policy { zone "rpz.local"; }; ... }
zone "rpz.local" { type master; file "rpz.local"; allow-query { localhost; 192.0.2.0/24; 2001:db8:1::/64; }; allow-transfer { none; }; };1.8. 使用 dnstap记录 DNS 查询
- 要点:要分析域名系统(DNS)流量模式、监控 DNS 服务器性能,并对 DNS 问题进行故障排除,您可以使用 dnstap 接口记录 DNS 详情。
- 要点:要监视和记录传入名称查询的详细信息,dnstap 接口会记录从命名服务发送的消息。您可以捕获并记录 DNS 查询,来收集有关网站或 IP 地址的详细信息。
- 列表:您有管理特权。
- 列表:已安装 bind 软件包。
- 列表:在 /etc/named.conf 文件的 options 块中启用 dnstap 和 target 文件: options { # ... dnstap { all; }; # Configure filter dnstap-output file "/var/named/data/dnstap.bin" versions 2; # ... }; # end of options
- 列表:将 dnstap 过滤器添加到 /etc/named.conf 文件中的 dnstap 块,以指定您要日志的 DNS 流量类型。您可以使用以下过滤器: auth :权威区域响应或回答。 客户端 :内部客户端查询或回答。 forwarder: 转发查询或来自它的响应。 解析器 :迭代解析查询或响应。 更新 :动态区域更新请求。 all:从前面的选项中任意一个。 query 或 response :如果您没有指定查询或 响应 关键字,dns tap 记录。 注意 dnstap 过滤器有几个以分号(;)分开的定义,语法如下: dnstap {(all | auth | client | forwarder | resolver | up…
- 列表:auth :权威区域响应或回答。
- 列表:客户端 :内部客户端查询或回答。
- 命令/配置摘录:
options { # ... dnstap { all; }; # Configure filter dnstap-output file "/var/named/data/dnstap.bin" versions 2; # ... }; # end of options
Example: dnstap {auth response; client query; update;};- 注意:警告 如果您已经安装了 BIND 版本并运行,请添加新版本的 BIND 会覆盖现有版本。
- 注意:注意 dnstap 过滤器有几个以分号(;)分开的定义,语法如下: dnstap {(all | auth | client | forwarder | resolver | update)[(query | response)]; … };
第 2 章 配置 unbound DNS 服务器
- 要点:要安全地验证、解析和缓存域名系统 (DNS) 查询,请配置未绑定的 DNS 服务。此服务提供轻量级缓存 DNS 服务器,默认启用 DNS 安全扩展 (DNSSEC) 验证,并针对 DNS 欺骗攻击提供更强大的保护。
2.1. 将 Unbound 配置为缓存 DNS 服务器
- 要点:要解析和缓存成功且失败的查找,并从其缓存中回答对相同记录的请求,请配置 unbound DNS 服务。
- 要点:先决条件
- 列表:您有管理特权。
- 列表:安装 unbound 软件包: # dnf install unbound
- 列表:编辑 /etc/unbound/unbound.conf 文件,并在 server 子句中进行以下更改: 添加 interface 参数来配置 unbound 服务侦听查询的 IP 地址,例如: interface: 127.0.0.1 interface: 192.0.2.1 interface: 2001:db8:1::1 使用这些设置时,unbound 仅侦听指定的 IPv4 和 IPv6 地址。 将接口限制到特定接口,可防止客户端从未经授权的网络(如互联网)向这个 DNS 服务器发送查询。 添加 access-control 参数,以配置客户端可以从哪些子网查询 DNS 服务,例如: access-control: 127…
- 列表:添加 interface 参数来配置 unbound 服务侦听查询的 IP 地址,例如: interface: 127.0.0.1 interface: 192.0.2.1 interface: 2001:db8:1::1 使用这些设置时,unbound 仅侦听指定的 IPv4 和 IPv6 地址。 将接口限制到特定接口,可防止客户端从未经授权的网络(如互联网)向这个 DNS 服务器发送查询。
- 列表:添加 access-control 参数,以配置客户端可以从哪些子网查询 DNS 服务,例如: access-control: 127.0.0.0/8 allow access-control: 192.0.2.0/24 allow access-control: 2001:db8:1::/64 allow
- 列表:创建用于远程管理 unbound 服务的私钥和证书: # systemctl restart unbound-keygen 注意 如果您跳过这一步,在下一步中验证配置将会报告缺少的文件。如果文件丢失,unbound 服务自动创建这些文件。
- 命令/配置摘录:
# dnf install unbound
interface: 127.0.0.1 interface: 192.0.2.1 interface: 2001:db8:1::1- 注意:注意 如果您跳过这一步,在下一步中验证配置将会报告缺少的文件。如果文件丢失,unbound 服务自动创建这些文件。
第 3 章 提供 DHCP 服务
- 要点:要自动为客户端设备分配 IP 地址和其他网络设置,请使用动态主机配置协议(DHCP)。您可以将 Kea 配置为 DHCP 服务器,以集中管理客户端的网络配置。
3.1. 静态和动态 IP 地址之间的区别
- 要点:要管理设备如何接收其唯一网络地址,您可以在两种方法之间进行选择:静态和动态 IP 寻址。
- 要点:当您为某个设备分配静态 IP 地址时,该地址不会随时间变化,除非您手动更改该地址。如果要使用静态 IP 地址:
- 列表:确保 DNS 等服务器的网络地址一致性和身份验证服务器。
- 列表:使用独立于其他网络基础架构的带外管理设备。
- 注意:注意 为需要一致访问的服务器、网络基础架构和设备选择静态 IP 寻址。对工作站、笔记本电脑、移动设备和临时客户端使用动态 IP 寻址。
3.2. DHCP 的阶段
- 要点:DHCP 分为四个阶段:发现、提供、请求、确认,也称为 DORA 进程。DHCP 使用这个过程为客户端分配 IP 地址。
3.3. 将 Kea 用于 DHCPv4 和 DHCPv6 概述
- 要点:要独立管理 DHCPv4 和 DHCPv6 服务,请使用 Kea。Kea 是一个具有模块化设计的开源 DHCP 服务器。每个协议都有自己的配置文件,您可以使用它运行 DHCPv4 服务器、DHCPv6 服务器或两者以满足网络要求。
- 要点:对于每个协议,Kea 使用单独的配置文件和服务:
- 列表:配置文件: /etc/kea/kea-dhcp4.conf
- 列表:systemd 服务名称: kea-dhcp4
- 列表:配置文件: /etc/kea/kea-dhcp6.conf
- 列表:systemd 服务名称: kea-dhcp6
3.4. Kea lease 数据库概述
- 要点:DHCP 租约是 Kea 为客户端分配网络地址的期限。租约数据库存储有关每个租约的详细信息。这些详细信息包括分配的 IP 地址、媒体访问控制 (MAC) 地址和租约到期时间。
- 要点:租期数据库中的所有时间戳都位于 Coordinated Universal Time (UTC)中。
- 列表:对于 DHCPv4: /var/lib/kea/kea-leases4.csv
- 列表:对于 DHCPv6: /var/lib/kea/kea-leases6.csv 警告 请勿手动编辑租赁文件。Kea 将租赁数据保存在内存中以加快速度。它在运行时不检查租赁文件。Kea 会在下次写入文件时覆盖任何更改。这可能导致文件损坏或错误的租约数据。
- 列表:租期更新
- 列表:在正常关闭时
- 列表:在定期租期文件清理(LFC)过程中
- 列表:对于 API 请求
- 注意:警告 请勿手动编辑租赁文件。Kea 将租赁数据保存在内存中以加快速度。它在运行时不检查租赁文件。Kea 会在下次写入文件时覆盖任何更改。这可能导致文件损坏或错误的租约数据。
3.5. 配置 Kea DHCP 服务器
- 要点:要集中管理和自动分配基础设施中的 IP 地址和网络设置,请设置 Kea DHCP 服务器。Kea 减少了手动配置开销,并确保所有客户端设备的网络设置一致。
- 要点:先决条件
- 列表:已安装 kea 软件包。
- 列表:您有管理特权。
- 列表:如果要配置 IPv4 网络: 编辑 /etc/kea/kea-dhcp4.conf 文件,并使用以下配置: { "Dhcp4": { "description": "Global settings that apply to all subnets unless overridden", "valid-lifetime": 86400, "option-data": [ { "name": "domain-name", "data": "example.com" }, { "name": "domain-name-servers", "data": "192.0.2.53" } ], "interfac…
- 列表:编辑 /etc/kea/kea-dhcp4.conf 文件,并使用以下配置: { "Dhcp4": { "description": "Global settings that apply to all subnets unless overridden", "valid-lifetime": 86400, "option-data": [ { "name": "domain-name", "data": "example.com" }, { "name": "domain-name-servers", "data": "192.0.2.53" } ], "interfaces-config": { …
- 列表:验证配置文件的语法: # kea-dhcp4 -t /etc/kea/kea-dhcp4.conf 如果命令返回 Syntax 检查失败,请修复报告中显示的错误。
- 列表:更新 firewalld 规则,以允许传入的 DHCPv4 流量: # firewall-cmd --permanent --add-service=dhcp
- 命令/配置摘录:
{ "Dhcp4": { "description": "Global settings that apply to all subnets unless overridden", "valid-lifetime": 86400, "option-data": [ { "name": "domain-name", "data": "example.com" }, { "name": "domain-name-servers", "data": "192.0.2.53" } ], "interfaces-config": { "interfaces": [ "enp1s0" ] }, "subnet4": [ { "id": 1, "description": "A definition of a subnet that is directly connected to the server", "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.20 - 192.0.2.100" }, { "pool": "192.0.2.150 - 192.0.2.200" } ], "option-data": [ { "name": "routers", "data": "192.0.2.1" } ] }, { "id": 2, "description": "A …
# kea-dhcp4 -t /etc/kea/kea-dhcp4.conf3.6. 在 Kea 中配置 日志记录器
- 要点:要根据优先级(如严重性级别)自定义日志设置,请在 Kea 中配置 日志记录器。默认情况下,如果 rsyslogd 服务在运行,Kea 将日志消息写入 systemd 日志和 /var/log/messages 文件。
- 要点:先决条件
- 列表:您已在服务器上安装了 kea 软件包。
- 列表:您已启动 kea-dhcp4 和 kea-dhcp6 服务。
- 列表:您有管理特权。
- 列表:要配置 IPv4 网络,请编辑 /etc/kea/kea-dhcp4.conf 文件: 将 loggers 配置添加到 Dhcp4 参数: { "Dhcp4": { ..., "loggers":[ { "name":"kea-dhcp4", "output-options":[ { "output":"kea-dhcp4.log", "maxsize":104857600, "maxver":5 } ], "severity":"INFO", } ], ... 示例中指定的设置有: name 定义 日志记录器 设置应用到的二进制名称。 output 在 /var/lib/kea/ 目录中设置日志文…
- 列表:将 loggers 配置添加到 Dhcp4 参数: { "Dhcp4": { ..., "loggers":[ { "name":"kea-dhcp4", "output-options":[ { "output":"kea-dhcp4.log", "maxsize":104857600, "maxver":5 } ], "severity":"INFO", } ], ... 示例中指定的设置有: name 定义 日志记录器 设置应用到的二进制名称。 output 在 /var/lib/kea/ 目录中设置日志文件名称。 maxsize 在 Kea 轮转日志文件前设置日志文件的最大大小。默认值为 1…
- 列表:验证配置文件的语法: # kea-dhcp4 -t /etc/kea/kea-dhcp4.conf 如果命令返回 Syntax 检查失败,请修复报告中显示的错误。
- 命令/配置摘录:
{ "Dhcp4": { ..., "loggers":[ { "name":"kea-dhcp4", "output-options":[ { "output":"kea-dhcp4.log", "maxsize":104857600, "maxver":5 } ], "severity":"INFO", } ], ...
# kea-dhcp4 -t /etc/kea/kea-dhcp4.conf3.7. 使用 DHCP 为主机分配静态地址
- 要点:要为介质访问控制(MAC)地址、DHCP 唯一标识符(DUID)或其他标识符分配固定 IP 地址,请在 Kea 的子网定义中使用保留。例如:使用这个方法总是为服务器或者网络设备分配相同的 IP 地址。
- 要点:先决条件
- 列表:您已配置了 kea-dhcp4 和 kea-dhcp6 服务。
- 列表:您有管理特权。
- 列表:如果要配置 IPv4 网络: 编辑 /etc/kea/kea-dhcp4.conf 文件,并在 subnet4 参数中添加保留: { "Dhcp4": { "subnet4": [ { "subnet": "192.0.2.0/24", ..., "reservations": [ { "hw-address": "52:54:00:72:2f:6e", "ip-address": "192.0.2.130" } ], ... 这个示例将 Kea 配置为始终将 192.0.2.130 IP 地址分配给 MAC 地址为 52:54:00:72:2f:6e 的主机。 如需了解更多示例,请参阅 kea-doc 软…
- 列表:编辑 /etc/kea/kea-dhcp4.conf 文件,并在 subnet4 参数中添加保留: { "Dhcp4": { "subnet4": [ { "subnet": "192.0.2.0/24", ..., "reservations": [ { "hw-address": "52:54:00:72:2f:6e", "ip-address": "192.0.2.130" } ], ... 这个示例将 Kea 配置为始终将 192.0.2.130 IP 地址分配给 MAC 地址为 52:54:00:72:2f:6e 的主机。 如需了解更多示例,请参阅 kea-doc 软件包提供的 /usr/shar…
- 列表:验证配置文件的语法: # kea-dhcp4 -t /etc/kea/kea-dhcp4.conf 如果命令返回 Syntax 检查失败,请修复报告中显示的错误。
- 列表:重启 kea-dhcp4 服务: # systemctl restart kea-dhcp4
- 命令/配置摘录:
{ "Dhcp4": { "subnet4": [ { "subnet": "192.0.2.0/24", ..., "reservations": [ { "hw-address": "52:54:00:72:2f:6e", "ip-address": "192.0.2.130" } ], ...
# kea-dhcp4 -t /etc/kea/kea-dhcp4.conf3.8. 在 Kea 中分类客户端
- 要点:要根据特定条件对客户端进行分组,并允许精细控制网络配置,请使用 Kea 客户端类。您可以应用特殊的处理规则,或者为客户端分配不同的 DHCP 选项。
- 要点:您可以创建一个客户端类,将 IP 上的 Voice over IP (VoIP)设备分配给特定的 IP 池。这是为了确保 VoIP 电话获得与网络上的其它设备不同的 IP 地址。例如,在 IPv4 网络中,您可以使用 子字符串 表达式来测试其介质访问控制(MAC)地址的前 3 octets。在 MAC 地址不是可靠的指示符的 IPv6 网络中,您可以测试 DHCPv6 供应商类选项的子字符串。
- 列表:您已配置了 kea-dhcp4 和 kea-dhcp6 服务,并处于活动状态。
- 列表:您有管理特权。
- 列表:要配置 IPv4 网络,请编辑 /etc/kea/kea-dhcp4.conf 文件 将客户端类添加到 Dhcp4 参数中: { "Dhcp4": { ... "client-classes": [ { "name": "VoIP-Phones", "test": "substring(pkt4.mac, 0, 3) == 0x525400" }, { "name": "Others", "test": "not member('VoIP-Phones')" } ], ... 在本例中,以 52:54:00 开头的 MAC 地址的设备与 VoIP-Phones 客户端类匹配。Others 客户端类包含与规…
- 列表:将客户端类添加到 Dhcp4 参数中: { "Dhcp4": { ... "client-classes": [ { "name": "VoIP-Phones", "test": "substring(pkt4.mac, 0, 3) == 0x525400" }, { "name": "Others", "test": "not member('VoIP-Phones')" } ], ... 在本例中,以 52:54:00 开头的 MAC 地址的设备与 VoIP-Phones 客户端类匹配。Others 客户端类包含与规则不匹配的设备。
- 列表:为 池 定义分配客户端类: { "Dhcp4": { "subnet4": [ { "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.20 - 192.0.2.100", "client-class": "Others" }, { "pool": "192.0.2.150 - 192.0.2.200", "client-class": "VoIP-Phones" } ], ... 根据主机匹配的客户端类,Kea 从对应的池中分配 IP 地址。
- 列表:验证配置文件的语法: # kea-dhcp4 -t /etc/kea/kea-dhcp4.conf 如果命令返回 Syntax 检查失败,请修复报告中显示的错误。
- 命令/配置摘录:
{ "Dhcp4": { ... "client-classes": [ { "name": "VoIP-Phones", "test": "substring(pkt4.mac, 0, 3) == 0x525400" }, { "name": "Others", "test": "not member('VoIP-Phones')" } ], ...
{ "Dhcp4": { "subnet4": [ { "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.20 - 192.0.2.100", "client-class": "Others" }, { "pool": "192.0.2.150 - 192.0.2.200", "client-class": "VoIP-Phones" } ], ...3.9. DHCPv6 与 radvd的比较
- 要点:要在需要默认网关设置的子网中使用 DHCPv6,请配置额外的路由器广告服务,如路由器公告守护进程(radvd)。
- 要点:在 IPv6 网络中,只有路由器广告消息包含有关 IPv6 默认网关的信息。radvd 服务使用路由器广告数据包中的标志来声明 DHCPv6 服务器的可用性。
- 表格样本(共 5 行):
- 功能 | DHCPv6 | radvd
- 提供有关默认网关的信息 | 否 | 是
- 保证随机地址以保护隐私 | 是 | 否
- 发送更多网络配置选项 | 是 | 否
3.10. 为 IPv6 路由器配置 radvd 服务
- 要点:要管理路由器广告消息,请配置路由器广告守护进程(radvd)服务。此服务为 IPv6 无状态自动配置发送路由器广告消息。您可以根据这些广告配置地址、设置、路由和选择默认路由器。
- 要点:先决条件
- 列表:您有管理特权。
- 列表:安装 radvd 软件包: # dnf install radvd
- 列表:编辑 /etc/radvd.conf 文件,以使用以下参数配置 radvd : interface enp1s0 { AdvSendAdvert on; AdvManagedFlag on; AdvOtherConfigFlag on; prefix 2001:db8:0:1::/64 { }; }; 在 enp1s0 接口上为 2001:db8:0:1::/64 子网发送路由器公告消息。 AdvManagedFlag on 标志定义客户端应该从 DHCP 服务器接收 IP 地址。 AdvOtherConfigFlag 标志定义客户端也应该从 DHCP 服务器接收非地址信息。
- 列表:在 enp1s0 接口上为 2001:db8:0:1::/64 子网发送路由器公告消息。
- 列表:AdvManagedFlag on 标志定义客户端应该从 DHCP 服务器接收 IP 地址。
- 列表:AdvOtherConfigFlag 标志定义客户端也应该从 DHCP 服务器接收非地址信息。
- 命令/配置摘录:
# dnf install radvd
interface enp1s0 { AdvSendAdvert on; AdvManagedFlag on; AdvOtherConfigFlag on; prefix 2001:db8:0:1::/64 { }; };- 注意:注意 您只能在 radvd 服务中设置 /64 前缀。要使用其他前缀,请使用 DHCPv6。
完整目录
- 管理网络基础设施服务的指南
- 对红帽文档提供反馈
- 第 1 章 配置 BIND DNS 服务器
- 1.1. 有关使用 SELinux 保护 BIND 的注意事项,或者在更改 root 环境中运行
- 1.2. 将 BIND 配置为缓存 DNS 服务器
- 1.3. 在 BIND DNS 服务器中配置日志记录
- 1.4. 创建 BIND 访问控制列表
- 1.5. 在 BIND DNS 服务器中配置区
- 1.5.1. 区域文件中的授权记录开始
- 1.5.2. 在 BIND 主服务器中配置转发区
- 1.5.3. 在 BIND 主服务器中配置反向区
- 1.5.4. 更新 BIND 区文件
- 1.5.5. 使用自动化功能签署 DNSSEC 区域
- 1.6. 在 BIND DNS 服务器中配置区传输
- 1.7. 在 BIND 中配置响应策略区以覆盖 DNS 记录
- 1.8. 使用 dnstap记录 DNS 查询
- 第 2 章 配置 unbound DNS 服务器
- 2.1. 将 Unbound 配置为缓存 DNS 服务器
- 第 3 章 提供 DHCP 服务
- 3.1. 静态和动态 IP 地址之间的区别
- 3.2. DHCP 的阶段
- 3.3. 将 Kea 用于 DHCPv4 和 DHCPv6 概述
- 3.4. Kea lease 数据库概述
- 3.5. 配置 Kea DHCP 服务器
- 3.6. 在 Kea 中配置 日志记录器
- 3.7. 使用 DHCP 为主机分配静态地址
- 3.8. 在 Kea 中分类客户端
- 3.9. DHCPv6 与 radvd的比较
- 3.10. 为 IPv6 路由器配置 radvd 服务
