集成配置基础架构服务


Red Hat Satellite 6.17

配置 DNS、DHCP 和 TFTP 集成

Red Hat Satellite Documentation Team

摘要

Satellite 提供集成的 DNS、DHCP 和 TFTP 服务。例如,如果您的网络中没有这些服务,您可以使用它们。但是,Satellite 的主要功能是能够与现有网络服务无缝集成。通过配置对应的提供程序,您可以使用现有的 DNS、DHCP 和 TFTP 服务并将其集成到 Satellite 中。

对红帽文档提供反馈

我们感谢您对我们文档的反馈。让我们了解如何改进它。

使用 Red Hat Jira 中的 Create Issue 表单提供您的反馈。JIRA 问题是在 Red Hat Satellite Jira 项目中创建的,您可以在其中跟踪其进度。

先决条件

流程

  1. 单击以下链接: 创建问题。如果 Jira 显示登录错误,则登录并在您重定向到表单后继续。
  2. 完成 SummaryDescription 字段。在 Description 字段中,包含文档 URL、章节号以及问题的详细描述。不要修改表单中的任何其他字段。
  3. Create

第 1 章 配置 DNS 集成

您可以将 DNS 与 Satellite 集成,以便在置备、修改和停用主机时自动创建和管理 DNS 记录。这有助于确保一个一致且无错误的网络配置。

1.1. DNS 服务供应商

Capsule 支持以下 DNS 供应商,供您用于将 Satellite 与现有 DNS 基础架构集成或部署新 DNS 基础架构:

dns_nsupdate

使用 nsupdate 工具在 RFC 2136兼容 DNS 服务器上动态 DNS 更新。请参阅:

dns_nsupdate_gss
使用带有事务签名(GSS-TSIG)验证的通用安全服务算法的 nsupdate 工具,在 RFC 2136兼容 DNS 服务器上的动态 DNS 更新。请参阅 第 1.6 节 “将身份管理 DNS 与 GSS-TSIG 身份验证集成”
dns_infoblox
Infoblox DNS 服务器上的动态 DNS 更新。请参阅 第 1.7 节 “集成 Infoblox DNS”

1.2. 启用安装程序管理的 DNS 服务

如果您的网络中没有 DNS 服务器,您可以使用安装程序管理的 DNS 服务。这个功能可让您为 DNS 服务提供低维护开销。

流程

  1. 将 Satellite 或 Capsule 配置为 DNS 服务器:

    # satellite-installer \
    --foreman-proxy-dns true \
    --foreman-proxy-dns-provider nsupdate \
    --foreman-proxy-dns-managed true \
    --reset-foreman-proxy-dns-server
    Copy to Clipboard Toggle word wrap
  2. 对于每个受影响的胶囊,在卫星 Web UI 中更新该胶囊的配置。如需更多信息,请参阅 第 1.8 节 “将 DNS 服务与域和子网关联”

1.3. 集成本地自我管理的 DNS 服务

安装程序为 Satellite 安装程序管理的 DNS 服务公开了一个有限的功能集。例如,您只能配置单个转发 DNS 区域。作为替代方案,您可以首先使用安装程序管理的 DNS,稍后将其转换为自我管理的 DNS 服务器来绕过限制。

先决条件

  • 您已在 Satellite 服务器或 Capsule 服务器主机上安装和配置了 DNS 服务。
  • DNS 服务支持 RFC 2136兼容更新

流程

  1. 在 Satellite 服务器或 Capsule 服务器上设置本地的、自我管理的 DNS 服务:

    # satellite-installer \
    --foreman-proxy-dns true \
    --foreman-proxy-dns-provider nsupdate \
    --foreman-proxy-dns-managed false \
    --foreman-proxy-dns-server "127.0.0.1"
    Copy to Clipboard Toggle word wrap
  2. 对于每个受影响的胶囊,在卫星 Web UI 中更新该胶囊的配置。如需更多信息,请参阅 第 1.8 节 “将 DNS 服务与域和子网关联”

1.4. 集成通用 RFC 2136 兼容远程 DNS 服务器

如果您的网络中有一个 DNS 服务,且它支持 RFC 2136 兼容动态更新,您可以将该服务集成到 Satellite 服务器中。该集成可让您继续使用现有的 DNS 服务器,Satellite 在其生命周期内管理主机的 DNS 记录。

通过这种集成,Satellite 使用事务签名(TSIG)密钥向 DNS 服务器进行身份验证,并使用 nsupdate 工具来管理 DNS 记录。

先决条件

  • 远程 DNS 服务已配置,可以查询。
  • 远程 DNS 服务支持 RFC 2136 兼容动态更新
  • 连接到远程 DNS 服务器的远程名称守护进程控制(RNDC)密钥文件放置在 Satellite 服务器或 Capsule 服务器上的 /etc/foreman-proxy/rndc.key 中。

流程

  1. 更新 /etc/foreman-proxy/rndc.key 的权限,以启用 foreman-proxy 组的成员读取此文件:

    # chown -v root:foreman-proxy /etc/foreman-proxy/rndc.key
    # chmod -v 640 /etc/foreman-proxy/rndc.key
    Copy to Clipboard Toggle word wrap
  2. 恢复 /etc/foreman-proxy/rndc.key 上的 SELinux 上下文:

    # restorecon -v /etc/foreman-proxy/rndc.key
    Copy to Clipboard Toggle word wrap
  3. 可选:验证您可以使用密钥文件手动管理 DNS 条目:

    1. 创建测试 DNS 条目。例如,在 192.168.25.1 的 DNS 服务器上带有 A 记录 192.168.25.20 的主机 test.example.com

      # echo -e "server 192.168.25.1\n \
      update add test.example.com 3600 IN A 192.168.25.20\n \
      send\n" | nsupdate -k /etc/foreman-proxy/rndc.key
      Copy to Clipboard Toggle word wrap
    2. 验证您可以查询新的 DNS 条目:

      # host test.example.com 192.168.25.1
      Copy to Clipboard Toggle word wrap

      输出示例:

      Using domain server:
      Name: 192.168.25.1
      Address: 192.168.25.1#53
      Aliases:
      
      test.example.com has address 192.168.25.20
      Copy to Clipboard Toggle word wrap
    3. 如果成功解析,请删除测试 DNS 条目:

      # echo -e "server 192.168.25.1\n \
      update delete test.example.com 3600 IN A 192.168.25.20\n \
      send\n" | nsupdate -k /etc/foreman-proxy/rndc.key
      Copy to Clipboard Toggle word wrap
    4. 确认 DNS 条目已被删除:

      # host test.example.com 192.168.25.1
      Copy to Clipboard Toggle word wrap

      如果命令返回 Host test.example.com not found: 3 (NXDOMAIN),则记录已被成功删除。

  4. 将 Satellite 服务器或 Capsule 服务器配置为使用 DNS 服务器:

    # satellite-installer \
    --foreman-proxy-dns true \
    --foreman-proxy-dns-provider nsupdate \
    --foreman-proxy-dns-managed false \
    --foreman-proxy-dns-server "dns_server_ip_address" \
    --foreman-proxy-keyfile /etc/foreman-proxy/rndc.key
    Copy to Clipboard Toggle word wrap
  5. 对于受影响的胶囊,在卫星 Web UI 中更新该胶囊的配置。如需更多信息,请参阅 第 1.8 节 “将 DNS 服务与域和子网关联”

1.5. 将身份管理 DNS 与 TSIG 身份验证集成

如果您使用身份管理来集中管理域中的主机,您可以将身份管理 DNS 服务集成到 Satellite 服务器中。该集成可让您继续使用现有的身份管理 DNS 服务,Satellite 在其生命周期内管理主机的 DNS 记录。

如果 Satellite 服务器或胶囊服务器不是身份管理域的成员,请使用事务签名(TSIG)密钥来向 DNS 服务器进行身份验证。与通用安全服务事务签名(GSS-TSIG)身份验证相比,这个方法提供了较低的安全性和密钥管理工作。如需更多信息,请参阅 第 1.6 节 “将身份管理 DNS 与 GSS-TSIG 身份验证集成”

先决条件

  • 身份管理服务器已部署和功能。
  • 身份管理服务器上的防火墙允许访问所需的端口。请参阅 Red Hat Enterprise Linux 9 安装身份管理指南中的身份管理 端口要求
  • 在身份管理服务器上具有 root 访问权限。

流程

  1. 在身份管理服务器上执行以下步骤:

    1. /etc/named.conf 文件的顶部插入以下设置:

      include "/etc/rndc.key";
      controls {
          inet Identity Management_server_ip_address port 953 allow { Satellite_ip_address; } keys { "rndc-key"; };
      };
      Copy to Clipboard Toggle word wrap
    2. 重新载入 指定的服务

      # systemctl reload named
      Copy to Clipboard Toggle word wrap
  2. 在身份管理 Web UI 中:

    1. 进入 Network Services > DNS > DNS Zones
    2. 单击区域的名称。
    3. 打开 Settings 选项卡。
    4. BIND update policy 字段中输入:

      grant "rndc-key" zonesub ANY;
      Copy to Clipboard Toggle word wrap
    5. Dynamic update 设置为 True
    6. Update 保存更改。
  3. 在 Satellite 服务器或 Capsule 服务器中配置动态 DNS 更新。如需更多信息,请参阅 第 1.4 节 “集成通用 RFC 2136 兼容远程 DNS 服务器”

1.6. 将身份管理 DNS 与 GSS-TSIG 身份验证集成

如果您使用身份管理来集中管理域中的主机,您可以将身份管理 DNS 服务集成到 Satellite 服务器中。该集成可让您继续使用现有的身份管理 DNS 服务,Satellite 在其生命周期内管理主机的 DNS 记录。

如果 Satellite 服务器或胶囊服务器是身份管理域的成员,请使用通用安全服务事务签名(GSS-TSIG)身份验证。与 TSIG 身份验证相比,此方法提高了安全性和低的关键管理工作。

1.6.1. 配置身份管理以用于 Satellite 服务器

在集成现有的身份管理 DNS 服务器前,您必须准备身份管理环境。准备工作可让 Satellite 服务器使用通用安全服务事务签名(GSS-TSIG)身份验证来更新 DNS 条目。

先决条件

  • 身份管理域已部署和功能。
  • 身份管理配置了其集成的 DNS 服务。
  • 身份管理服务器上的防火墙允许访问所需的端口。如需更多信息,请参阅 Red Hat Enterprise Linux 9 安装身份管理 中的 IdM 的端口要求

流程

  1. 在作为身份管理域成员的主机上,为 admin 用户获取 Kerberos ticket:

    # kinit admin
    Copy to Clipboard Toggle word wrap
  2. 在身份管理服务器上创建一个新的 Kerberos 主体 Satellite 服务器用于身份验证:

    # ipa service-add capsule/satellite.example.com
    Copy to Clipboard Toggle word wrap
  3. 可选:添加一个 forward DNS 区:

    # ipa dnszone-add example.com
    Copy to Clipboard Toggle word wrap
  4. 显示转发区的 BIND 更新策略:

    # ipa dnszone-show example.com --all | \
    grep "BIND update policy"
    Copy to Clipboard Toggle word wrap

    输出示例:

    BIND update policy: grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA; grant EXAMPLE.COM krb5-self * SSHFP;
    Copy to Clipboard Toggle word wrap

    请注意设置的值。

  5. 更新 forward 区设置:

    # ipa dnszone-mod example.com \
    --dynamic-update=TRUE \
    --allow-sync-ptr=TRUE \
    --update-policy="<existing_policy> grant smartproxy\047foreman.example.com@EXAMPLE.COM wildcard * ANY;"
    Copy to Clipboard Toggle word wrap

    这个命令修改区设置,如下所示:

    • 启用动态区更新。
    • 如果在转发区中更新 A 或 AAAA 记录,身份管理会更新反向 DNS 区域中对应的 PTR 记录。
    • 上一步中创建的 Kerberos 主体有权修改任何类型的任何数据记录。请注意,您必须将此设置附加到现有值中。
  6. 可选:添加反向 DNS 区:

    # ipa dnszone-add 0.168.192.in-addr.arpa
    Copy to Clipboard Toggle word wrap
  7. 显示反向区的 BIND 更新策略:

    # ipa dnszone-show 0.168.192.in-addr.arpa --all | \
    grep "BIND update policy"
    Copy to Clipboard Toggle word wrap

    输出示例:

    BIND update policy: grant EXAMPLE.COM krb5-subdomain 0.168.192.in-addr.arpa. PTR;
    Copy to Clipboard Toggle word wrap

    请注意设置的值。

  8. 更新反向区设置:

    # ipa dnszone-mod 0.168.192.in-addr.arpa \
    --dynamic-update=TRUE \
    --update-policy="<existing_policy> grant smartproxy\047foreman.example.com@EXAMPLE.COM wildcard * ANY;"
    Copy to Clipboard Toggle word wrap

    请注意,您必须将更新策略附加到现有值中。

1.6.2. 配置用于身份管理的 Capsules

准备身份管理 DNS 服务器后,如 第 1.6.1 节 “配置身份管理以用于 Satellite 服务器” 所述,将 DNS 服务器集成到 Satellite 服务器或 Capsule 服务器中。

先决条件

  • 您可以将主机的 DNS 搜索域设置为 Identity Management DNS 域。
  • 您知道主机应该用来向身份管理 DNS 服务器进行身份验证的 Kerberos 主体,如 capsule/satellite.example.com

流程

  1. 如果您的 Satellite 服务器或 Capsule 服务器还没有是身份管理域的成员:

    1. 安装 ipa-client 软件包:

      # satellite-maintain packages install ipa-client
      Copy to Clipboard Toggle word wrap
    2. 安装身份管理客户端:

      # ipa-client-install
      Copy to Clipboard Toggle word wrap

      按照屏幕提示进行操作。

  2. admin 用户获取 Kerberos ticket:

    # kinit admin
    Copy to Clipboard Toggle word wrap
  3. 删除 /etc/foreman-proxy/dns.keytab 文件:

    # rm --force /etc/foreman-proxy/dns.keytab
    Copy to Clipboard Toggle word wrap
  4. 为您的胶囊获取 Kerberos keytab 文件,并将其存储在 /etc/foreman-proxy/dns.keytab 文件中:

    # ipa-getkeytab -p capsule/satellite.example.com@EXAMPLE.COM \
    -k /etc/foreman-proxy/dns.keytab
    Copy to Clipboard Toggle word wrap
    重要

    当将 keytab 添加到与服务中原始系统相同的主机名时,请将 -r 选项传给 ipa-getkeytab 命令,以防止生成新凭证并在原始系统上呈现凭证无效。

  5. /etc/foreman-proxy/dns.keytab 的所有者和组设置为 foreman-proxy

    # chown foreman-proxy:foreman-proxy /etc/foreman-proxy/dns.keytab
    Copy to Clipboard Toggle word wrap
  6. 验证 /etc/foreman-proxy/dns.keytab 文件是否有效:

    1. 使用该文件获取 Kerberos ticket:

      # kinit -kt /etc/foreman-proxy/dns.keytab \
      capsule/satellite.example.com@EXAMPLE.COM
      Copy to Clipboard Toggle word wrap
    2. 显示 Kerberos ticket:

      # klist
      Copy to Clipboard Toggle word wrap

      输出示例:

      Ticket cache: KCM:0:50473
      Default principal: smartproxy/satellite.example.com@EXAMPLE.COM
      
      Valid starting       Expires              Service principal
      05/20/2025 12:12:35  05/21/2025 11:54:31  krbtgt/EXAMPLE.COM@EXAMPLE.COM
      Copy to Clipboard Toggle word wrap
  7. 配置 Satellite 服务器或 Capsule 服务器以连接到身份管理 DNS 服务:

    # satellite-installer \
    --foreman-proxy-dns true \
    --foreman-proxy-dns-provider nsupdate_gss \
    --foreman-proxy-dns-managed false \
    --foreman-proxy-dns-server "idm-server.example.com" \
    --foreman-proxy-dns-tsig-keytab /etc/foreman-proxy/dns.keytab \
    --foreman-proxy-dns-tsig-principal "capsule/satellite.example.com@EXAMPLE.COM"
    Copy to Clipboard Toggle word wrap
  8. 对于每个受影响的胶囊,在卫星 Web UI 中更新该胶囊的配置。如需更多信息,请参阅 第 1.8 节 “将 DNS 服务与域和子网关联”

1.7. 集成 Infoblox DNS

如果您的网络中有一个 Infoblox 设备,您可以使用 Infoblox Web API (WAPI)此服务集成到 Satellite 服务器和胶囊服务器中,则集成可让您继续使用现有的 DNS 服务器,并且 Satellite 在其生命周期内管理 DNS 记录。

限制:

  • 您只能在单个视图中管理 DNS 条目,创建后您无法编辑视图。
  • Satellite 服务器使用标准 HTTPS Web API 与 Infoblox 通信。默认情况下,它只与一个节点通信。如果您需要高可用性,请在 Infoblox 中配置此功能。
  • 您不能将 Satellite IP 地址管理(IPAM)功能集成到 Infoblox 中。

先决条件

  • 您有带有角色 DHCP AdminDNS Admin 的 Infoblox 帐户。
  • Infoblox 角色具有权限或属于 admin 组,允许帐户通过 Infoblox API 执行任务。

流程

  1. 从 Infoblox 服务器下载证书,并将其存储在 /etc/pki/ca-trust/source/anchors/infoblox.crt 文件中:

    # openssl s_client -showcerts -connect infoblox.example.com:443 </dev/null | \
    openssl x509 -text >/etc/pki/ca-trust/source/anchors/infoblox.crt
    Copy to Clipboard Toggle word wrap

    主机名必须与 X.509 证书中的 Infoblox 应用程序匹配。

  2. 将 Infoblox 证书添加到系统信任存储中:

    # update-ca-trust extract
    Copy to Clipboard Toggle word wrap
  3. 在对 Infoblox API 的查询中使用它来测试 CA 证书:

    # curl -u admin:password https://infoblox.example.com/wapi/v2.0/network
    Copy to Clipboard Toggle word wrap

    正响应示例:

    [
        {
            "_ref": "network/ZG5zLm5ldHdvcmskMTkyLjE2OC4yMDIuMC8yNC8w:infoblox.example.com/24/default",
            "network": "192.168.202.0/24",
            "network_view": "default"
        }
    ]
    Copy to Clipboard Toggle word wrap
  4. 配置 Satellite 服务器或 Capsule 服务器以连接到 Infoblox DNS 服务:

    # satellite-installer \
    --foreman-proxy-dns true \
    --foreman-proxy-dns-provider infoblox \
    --enable-foreman-proxy-plugin-dns-infoblox \
    --foreman-proxy-plugin-dns-infoblox-dns-server infoblox.example.com \
    --foreman-proxy-plugin-dns-infoblox-username admin \
    --foreman-proxy-plugin-dns-infoblox-password password \
    --foreman-proxy-plugin-dns-infoblox-dns-view view_name
    Copy to Clipboard Toggle word wrap

    如果您在 Infoblox DNS 中使用 默认视图请省略--foreman-proxy-plugin-dns-infoblox-dns-view 选项。

  5. 对于每个受影响的胶囊,在卫星 Web UI 中更新该胶囊的配置。如需更多信息,请参阅 第 1.8 节 “将 DNS 服务与域和子网关联”

1.8. 将 DNS 服务与域和子网关联

配置或更改 DNS 供应商后,您必须在 Satellite Web UI 中更新每个受影响的 Capsule 的配置。

先决条件

  • 已配置了 DNS 供应商。

流程

  1. 配置域:

    1. 在 Satellite Web UI 中,进入到 Infrastructure > Domains
    2. 选择域名。
    3. Domain 选项卡中,确保将 DNS Capsule 设置为连接子网的 Capsule。
  2. 配置子网:

    1. 导航到 Infrastructure > Subnets
    2. 选择子网名称。
    3. Domains 选项卡中,选择在子网上有效的域。
    4. Capsules 选项卡中,确保将 Reverse DNS Capsule 设置为子网连接的 Capsule。
    5. Submit

1.9. 为集成禁用 DNS

如果要手动管理 DNS 服务,而不将其集成到 Satellite 服务器中,您必须防止 Satellite 在操作系统中维护此服务,并禁用编排以避免错误。

注意

在 Satellite 中禁用 DNS 不会删除操作系统上的相关后端服务。

流程

  1. 在 Satellite Web UI 中,进入到 Infrastructure > Subnets
  2. 对于与 DNS Capsule 关联的每个子网:

    1. 选择子网。
    2. Capsules 选项卡上,清除 Reverse DNS Capsule 字段。
    3. Submit
  3. 导航到 Infrastructure > Domains
  4. 对于与 DNS Capsule 关联的每个域:

    1. 选择域。
    2. 清除 DNS Capsule 字段。
    3. Submit
  5. 在 Satellite 服务器上,输入:

    # satellite-installer --foreman-proxy-dns false
    Copy to Clipboard Toggle word wrap
    注意

    当给定子网和域的 Capsule 没有设置时,Satellite 不会执行编配。当您禁用 Capsule 关联时,如果没有预期的记录和配置文件,现有主机的编配命令可能会失败。

第 2 章 配置 DHCP 集成

您可以将 DHCP 与 Satellite 集成,以便在置备主机期间自动管理 DHCP 服务器上的 IP 租期和引导配置。这有助于简化主机的自动调配。

2.1. DHCP 服务供应商

Capsule 支持以下 DHCP 供应商,可用于将 Satellite 与现有 DHCP 基础架构集成或部署新 DHCP 基础架构:

dhcp_isc
使用对象管理应用程序编程接口(OMAPI)在 ISC DHCP 服务器上管理 IP 租期。请参阅 第 2.2 节 “启用安装程序管理的 DHCP 服务”
dhcp_remote_isc
使用 OMAPI 在远程 ISC dhcpd 服务器上管理 IP 租期。此供应商要求您通过网络共享租期,例如与 NFS 一起共享。请参阅 第 2.3 节 “集成远程 ISC DHCP 服务器”
dhcp_infoblox
在 Infoblox DHCP 服务器上管理 IP 租期。请参阅 第 2.4 节 “集成 Infoblox DHCP”

2.2. 启用安装程序管理的 DHCP 服务

如果您的网络中没有 DHCP 服务器,您可以使用安装程序管理的 DHCP 服务。此功能可让您为 DHCP 服务提供低维护开销。

先决条件

  • 您知道以下网络信息:

    • DHCP 应该管理的 IP 地址范围
    • 子网中默认网关的 IP 地址
    • 子网的名称服务器的 IP 地址

流程

  1. 将 Satellite 服务器或 Capsule 服务器配置为 DHCP 服务器:

    # satellite-installer \
    --foreman-proxy-dhcp true \
    --foreman-proxy-dhcp-provider isc \
    --foreman-proxy-dhcp-managed true \
    --foreman-proxy-dhcp-range "192.0.2.100 192.0.2.150" \
    --foreman-proxy-dhcp-gateway 192.0.2.1 \
    --foreman-proxy-dhcp-nameservers 192.0.2.2,192.0.2.3
    Copy to Clipboard Toggle word wrap
  2. 对于每个受影响的胶囊,在卫星 Web UI 中更新该胶囊的配置。请参阅 第 2.5 节 “将 DHCP 服务与子网关联”
  3. 可选:使用对象管理应用程序编程接口(OMAPI)密钥保护 Capsule 上的 dhcpd API:

    1. 安装所需的软件包:

      # satellite-maintain packages install bind-utils
      Copy to Clipboard Toggle word wrap
    2. 生成 OMAPI 密钥:

      # tsig-keygen -a hmac-md5 omapi_key
      key "omapi_key" {
      	algorithm hmac-md5;
      	secret "hJBge7QC5AaUkRVsZmFUlg==";
      };
      Copy to Clipboard Toggle word wrap
  4. dhcpd API 密钥添加到 Capsule 配置中:

    # satellite-installer \
    --foreman-proxy-dhcp-key-name "omapi_key" \
    --foreman-proxy-dhcp-key-secret "key_secret"
    Copy to Clipboard Toggle word wrap

2.3. 集成远程 ISC DHCP 服务器

如果您的网络中有一个 ISC DHCP 服务器,但没有在与 Satellite 服务器相同的主机上,您可以将该服务集成到 Satellite 服务器中。该集成可让您继续使用现有的 DHCP 服务器,Satellite 在置备主机期间管理 DHCP 服务器上的 IP 租期和引导配置。

通过这种集成,Satellite 使用对象管理应用程序编程接口(OMAPI)密钥来更新租期和网络文件系统(NFS)协议来访问 ISC DHCP 服务器的配置文件和租期数据库。

2.3.1. 在 ISC DHCP 中启用 OMAPI 身份验证

现有远程 ISC DHCP 服务的集成需要您在 DHCP 服务中启用对象管理应用程序编程接口(OMAPI)。Satellite 使用 OMAPI 远程管理 DHCP 服务器对象。

先决条件

  • ISC DHCP 服务已部署且可以正常工作。
  • DHCP 服务器上的防火墙允许访问 DHCP 服务(端口 67/UDP)。

流程

  1. 创建安全令牌:

    # tsig-keygen -a hmac-md5 omapi_key
    Copy to Clipboard Toggle word wrap

    请注意,Satellite 仅支持 OMAPI 验证的 hmac-md5 算法。

    输出示例:

    key "omapi_key" {
    	algorithm hmac-md5;
    	secret "4z1jwYO0RGUTJbWDepFBdg==";
    };
    Copy to Clipboard Toggle word wrap
  2. 编辑 /etc/dhcp/dhcpd.conf 文件,并附加以下设置:

    key omapi_key {
    	algorithm hmac-md5;
    	secret "key_secret";
    };
    omapi-port 7911;
    omapi-key omapi_key;
    Copy to Clipboard Toggle word wrap

    示例中指定的设置包括:

    key omapi_key
    定义密钥、算法和加密密码。在这个指令中使用 tsig-keygen 命令的输出。
    OMAPI-port 7911;
    在 ISC DHCP 中启用 OMAPI 协议,并定义协议的端口。
    omapi-key omapi_key
    定义 OMAPI 接口使用的密钥的名称。该名称必须与您在 tsig-keygen 命令中指定的名称匹配。
  3. 重启 dhcpd 服务:

    # systemctl restart dhcpd
    Copy to Clipboard Toggle word wrap
  4. firewalld 服务中打开 OMAPI 端口:

    # firewall-cmd --add-port=7911/tcp
    Copy to Clipboard Toggle word wrap
  5. 使更改具有持久性:

    # firewall-cmd --runtime-to-permanent
    Copy to Clipboard Toggle word wrap

现有远程 ISC DHCP 服务的集成需要您通过网络共享服务的配置文件和租期数据库。例如,您可以使用 NFS 服务。然后,Satellite 使用 NFS 访问配置设置,如子网定义。对租期数据库的读取访问权限可确保有效访问所有租期信息,这些信息无法通过 ISC DHCP 对象管理应用程序编程接口(OMAPI)提供。

先决条件

  • ISC DHCP 服务已部署且可以正常工作。

流程

  1. 在 Satellite 服务器上,确定 foreman-proxy 用户的 UID 和主 GID:

    # id -u foreman-proxy
    # id -g foreman-proxy
    Copy to Clipboard Toggle word wrap

    下一步需要这些 ID。

  2. 在 DHCP 服务器上,通过 NFS 共享 DHCP 服务和租期数据库:

    1. 使用与 Satellite 服务器上相同的组 ID 创建 foreman-proxy 组:

      # groupadd -g My_User_ID foreman-proxy
      Copy to Clipboard Toggle word wrap
    2. 使用与 Satellite 服务器上相同的用户 ID 和主组 ID 创建 foreman-proxy 用户:

      # useradd -u My_User_ID -g My_Group_ID -s /sbin/nologin foreman-proxy
      Copy to Clipboard Toggle word wrap
    3. 确保 foreman-proxy 组的成员可以访问 DHCP 服务的配置文件:

      # chgrp -R foreman-proxy /etc/dhcp/
      # chmod g+rx /etc/dhcp/
      # chmod g+r /etc/dhcp/dhcpd.conf
      Copy to Clipboard Toggle word wrap
    4. 安装 nfs-server 软件包:

      # dnf install nfs-utils
      Copy to Clipboard Toggle word wrap
    5. 编辑 /etc/exports 文件,并为 /etc/dhcp//var/lib/dhcpd/ 目录附加共享条目:

      /etc/dhcp        satellite.example.com(ro)
      /var/lib/dhcpd   satellite.example.com(ro)
      Copy to Clipboard Toggle word wrap

      以只读模式共享目录,仅与 Satellite 服务器或胶囊服务器共享。

    6. 启用并启动 NFS 服务器服务:

      # systemctl enable --now nfs-server
      Copy to Clipboard Toggle word wrap
    7. firewalld 服务中打开 NFSv4 端口:

      # firewall-cmd --add-service=nfs
      Copy to Clipboard Toggle word wrap
    8. 使更改具有持久性:

      # firewall-cmd --runtime-to-permanent
      Copy to Clipboard Toggle word wrap

后续步骤

准备 DHCP 服务器后,将 ISC DHCP 服务器集成到 Satellite 服务器或 Capsule 服务器中。

先决条件

流程

  1. 安装所需的软件包:

    # satellite-maintain packages install nfs-utils
    Copy to Clipboard Toggle word wrap
  2. 创建稍后挂载 NFS 共享的目录:

    # mkdir -p \
    /srv/nfs/etc/dhcp \
    /srv/nfs/var/lib/dhcpd
    Copy to Clipboard Toggle word wrap
  3. 编辑 /etc/fstab 文件,并为 NFS 共享添加条目,以便在系统引导时自动挂载它们:

    dhcp_server_fqdn:/etc/dhcp       /srv/nfs/etc/dhcp       nfs  ro,auto,context="system_u:object_r:dhcp_etc_t:s0"     0 0
    dhcp_server_fqdn:/var/lib/dhcpd  /srv/nfs/var/lib/dhcpd  nfs  ro,auto,context="system_u:object_r:dhcpd_state_t:s0"  0 0
    Copy to Clipboard Toggle word wrap
  4. 重新载入 systemd,以便该服务使用更新的 /etc/fstab 文件:

    # systemctl daemon-reload
    Copy to Clipboard Toggle word wrap
  5. 挂载 NFS 共享:

    # mount /srv/nfs/etc/dhcp/
    # mount /srv/nfs/var/lib/dhcpd/
    Copy to Clipboard Toggle word wrap
  6. 验证 foreman-proxy 用户可以访问 NFS 服务器上的文件。例如:

    1. 显示 /srv/nfs/etc/dhcp/dhcpd.conf 文件的前 5 行:

      $ su - foreman-proxy -c 'head -5 /srv/nfs/etc/dhcp/dhcpd.conf'
      Copy to Clipboard Toggle word wrap
    2. 显示 /srv/nfs/var/lib/dhcpd/dhcpd.leases 文件的前 5 行:

      $ su - foreman-proxy -c 'head -5 /srv/nfs/var/lib/dhcpd/dhcpd.leases'
      Copy to Clipboard Toggle word wrap
  7. 将 Satellite 服务器或 Capsule 服务器配置为使用 DHCP 服务器:

    # satellite-installer \
    --foreman-proxy-dhcp true \
    --foreman-proxy-dhcp-provider remote_isc \
    --enable-foreman-proxy-plugin-dhcp-remote-isc \
    --foreman-proxy-dhcp-server dhcp_server_fqdn \
    --foreman-proxy-plugin-dhcp-remote-isc-dhcp-config /srv/nfs/etc/dhcp/dhcpd.conf \
    --foreman-proxy-plugin-dhcp-remote-isc-dhcp-leases /srv/nfs/var/lib/dhcpd/dhcpd.leases \
    --foreman-proxy-plugin-dhcp-remote-isc-key-name omapi_key \
    --foreman-proxy-plugin-dhcp-remote-isc-key-secret key_secret \
    --foreman-proxy-plugin-dhcp-remote-isc-omapi-port 7911
    Copy to Clipboard Toggle word wrap
  8. 对于每个受影响的胶囊,在卫星 Web UI 中更新该胶囊的配置。如需更多信息,请参阅 第 2.5 节 “将 DHCP 服务与子网关联”

2.4. 集成 Infoblox DHCP

如果您的网络中有一个 Infoblox 设备,您可以使用 Infoblox Web API (WAPI)将该服务集成到 Satellite 服务器和 Capsule 服务器中。该集成可让您继续使用现有的 DHCP 服务器,Satellite 在置备主机期间管理 DHCP 服务器上的 IP 租期和引导配置。

限制:

  • 您只能在单个网络和查看中管理 DHCP 条目,您不能在创建后编辑视图。
  • Satellite 服务器使用标准 HTTPS Web API 与 Infoblox 通信。默认情况下,它只与一个节点通信。如果您需要高可用性,请在 Infoblox 中配置此功能。

先决条件

  • 您有带有角色 DHCP AdminDNS Admin 的 Infoblox 帐户。
  • Infoblox 角色具有权限或属于 admin 组,允许帐户通过 Infoblox API 执行任务。

流程

  1. 从 Infoblox 服务器下载证书,并将其存储在 /etc/pki/ca-trust/source/anchors/infoblox.crt 文件中:

    # openssl s_client -showcerts -connect infoblox.example.com:443 </dev/null | \
    openssl x509 -text >/etc/pki/ca-trust/source/anchors/infoblox.crt
    Copy to Clipboard Toggle word wrap

    主机名必须与 X.509 证书中的 Infoblox 应用程序匹配。

  2. 将 Infoblox 证书添加到系统信任存储中:

    # update-ca-trust extract
    Copy to Clipboard Toggle word wrap
  3. 在对 Infoblox API 的查询中使用它来测试 CA 证书:

    # curl -u admin:password https://infoblox.example.com/wapi/v2.0/network
    Copy to Clipboard Toggle word wrap

    正响应示例:

    [
        {
            "_ref": "network/ZG5zLm5ldHdvcmskMTkyLjE2OC4yMDIuMC8yNC8w:infoblox.example.com/24/default",
            "network": "192.168.202.0/24",
            "network_view": "default"
        }
    ]
    Copy to Clipboard Toggle word wrap
  4. 配置 Satellite 服务器或 Capsule 服务器以连接到 Infoblox DHCP 服务:

    # satellite-installer \
    --foreman-proxy-dhcp true \
    --foreman-proxy-dhcp-provider infoblox \
    --enable-foreman-proxy-plugin-dhcp-infoblox \
    --foreman-proxy-dhcp-server infoblox.example.com \
    --foreman-proxy-plugin-dhcp-infoblox-username admin \
    --foreman-proxy-plugin-dhcp-infoblox-password password \
    --foreman-proxy-plugin-dhcp-infoblox-record-type fixedaddress \
    --foreman-proxy-plugin-dhcp-infoblox-dns-view default \
    --foreman-proxy-plugin-dhcp-infoblox-network-view default
    Copy to Clipboard Toggle word wrap
    注意

    如果要将 DHCP 和 DNS Infoblox 模块一起使用,请只使用 fixedaddress 记录类型配置 DHCP Infoblox 模块。在这种情况下不支持 主机 记录类型,因为它会导致冲突,您无法在 Satellite 中重命名主机。

  5. 对于每个受影响的胶囊,在卫星 Web UI 中更新该胶囊的配置。如需更多信息,请参阅 第 2.5 节 “将 DHCP 服务与子网关联”

2.5. 将 DHCP 服务与子网关联

配置或更改 DHCP 提供程序后,您必须在 Satellite Web UI 中更新每个受影响的 Capsule 的配置。

流程

  1. 在 Satellite Web UI 中,进入到 Infrastructure > Subnets
  2. 选择子网名称。
  3. Subnet 选项卡中,将 IPAM 设置为 DHCP
  4. Capsule 选项卡上,将 DHCP Proxy 设置为您的 Capsule。
  5. Submit

2.6. 为集成禁用 DHCP

如果要手动管理 DHCP 服务,且没有将其集成到 Satellite 服务器中,您必须防止 Satellite 在操作系统中维护此服务,并禁用编排以避免错误。

注意

在 Satellite 中禁用 DHCP 不会删除操作系统上的相关后端服务。

流程

  1. 在 Satellite Web UI 中,进入到 Infrastructure > Subnets
  2. 对于与 DHCP Capsule 关联的每个子网:

    1. 选择子网。
    2. Capsules 选项卡上,清除 DHCP Capsule 字段。
    3. Submit
  3. 在 Satellite 服务器和 Capsule 服务器上,输入:

    # satellite-installer --foreman-proxy-dhcp false
    Copy to Clipboard Toggle word wrap
    注意

    当为给定子网设置胶囊时,Satellite 不执行编排。当您禁用 Capsule 关联时,如果没有预期的记录和配置文件,现有主机的编配命令可能会失败。

2.7. DHCP 问题故障排除

Satellite 可以在 Satellite 服务器或 Capsule 服务器上管理 ISC DHCP 服务器。Satellite 可以列出、创建和删除 DHCP 保留和租期。但是,在 occasions 时可能会遇到一些问题。

没有同步 DHCP 记录

在 DHCP 编配期间发生错误时,Satellite 数据库中的 DHCP 记录和 DHCP 服务器可能不匹配。要解决这个问题,您必须将 Satellite 数据库中缺少的 DHCP 记录添加到 DHCP 服务器中,然后按照以下步骤从 DHCP 服务器中删除不需要的记录:

流程

  1. 要预览将添加到 DHCP 服务器的 DHCP 记录,请输入以下命令:

    # foreman-rake orchestration:dhcp:add_missing subnet_name=NAME
    Copy to Clipboard Toggle word wrap
  2. 如果您对上一步中的预览更改满意,请使用 perform=1 参数输入上述命令来应用它们:

    # foreman-rake orchestration:dhcp:add_missing subnet_name=NAME perform=1
    Copy to Clipboard Toggle word wrap
  3. 要在 Satellite 中保留 DHCP 记录并同步 DHCP 服务器,您可以从 DHCP 服务器中删除不需要的 DHCP 记录。请注意,Satellite 假设所有受管 DHCP 服务器都不包含第三方记录,因此此步骤可能会删除这些意外的记录。要预览将从 DHCP 服务器中删除哪些记录,请输入以下命令:

    # foreman-rake orchestration:dhcp:remove_offending subnet_name=NAME
    Copy to Clipboard Toggle word wrap
  4. 如果您对上一步中的预览更改满意,请使用 perform=1 参数输入上述命令来应用它们:

    # foreman-rake orchestration:dhcp:remove_offending subnet_name=NAME perform=1
    Copy to Clipboard Toggle word wrap

PXE 加载器选项更改

为现有主机更改 PXE loader 选项时,这会导致 DHCP 冲突。唯一的临时解决方案是覆盖 DHCP 条目。

DHCP 文件的权限不正确

操作系统更新可以更新 dhcpd 软件包。这会导致重要目录和文件的权限重置,以便 DHCP Capsule 无法读取所需信息。

如需更多信息,请参阅 Satellite 服务器 Error ERF12-6899 ProxyAPI::ProxyException: Unable to set DHCP entry RestClient::ResourceNotFound 404 Resource Not Found on Red Hat Knowledgebase 时 DHCP 错误

更改 DHCP 胶囊条目

Satellite 仅对分配给设置了 DHCP 胶囊集的主机管理 DHCP 记录。如果您创建主机,然后在尝试删除主机时清除或更改 DHCP Capsule,则操作会失败。

如果您在没有设置 DHCP Capsule 的情况下创建主机,然后尝试设置 DHCP Capsule,这会导致 DHCP 冲突。

删除了 dhcpd.leases 文件中的主机条目

对 DHCP 租期的任何更改都会被附加到 dhcpd.leases 文件的末尾。由于条目附加到文件,因此可能同时存在于 dhcpd.leases 文件中两个或更多相同租期的条目。当同一租期有两个或多个条目时,文件中的最后一个条目将具有优先权。租期文件中的组、子组和主机声明会以同样的方式处理。如果删除了租期,则 { deleted; } 会附加到声明中。

第 3 章 配置 TFTP 集成

您可以将 TFTP 与 Satellite 集成,以通过网络引导操作系统的设置来执行无人值守安装。

3.1. 启用安装程序管理的 TFTP 服务

如果您的网络中没有 TFTP 服务器,您可以使用安装程序管理的 TFTP 服务来执行无人值守安装。通过安装程序管理的 TFTP 服务,您可以运行具有低维护工作的 TFTP 服务器,因为 Satellite 完全管理 TFTP 服务,包括该服务上的文件。

流程

  • 将 Satellite 服务器或 Capsule 服务器配置为 TFTP 服务器:

    # satellite-installer \
    --foreman-proxy-tftp true \
    --foreman-proxy-tftp-managed true
    Copy to Clipboard Toggle word wrap

3.2. 集成通用 TFTP 服务器

如果您的网络中已有 TFTP 服务器,您可以将该服务集成到 Satellite 中。该集成可让您继续使用现有的 TFTP 服务器。通过这种集成,Satellite 使用网络文件系统(NFS)协议来访问 TFTP 服务的根目录。

注意

如果您更喜欢在 TFTP 服务器上管理文件的低维护解决方案,请使用安装程序管理的 TFTP 服务。

3.2.1. 配置 Satellite 服务器以用于 tftp

在准备好 TFTP 服务器后,将其集成到 Satellite 服务器或 Capsule 服务器中。

先决条件

  • 您可以使用 NFS 在 TFTP 服务器中共享 /exports/var/lib/tftpboot

流程

  1. 创建稍后挂载 NFS 共享的目录:

    # mkdir -p /mnt/nfs/var/lib/tftpboot
    Copy to Clipboard Toggle word wrap
  2. 编辑 /etc/fstab 文件,并为 NFS 共享添加条目,以便在系统引导时自动挂载它们:

    tftp_server_fqdn:/exports/var/lib/tftpboot  /mnt/nfs/var/lib/tftpboot  nfs  rw,vers=3,auto,nosharecache,context="system_u:object_r:tftpdir_rw_t:s0"  0 0
    Copy to Clipboard Toggle word wrap
  3. 挂载 NFS 共享:

    # mount /mnt/nfs/var/lib/tftpboot/
    Copy to Clipboard Toggle word wrap
  4. 将 Satellite 服务器或 Capsule 服务器配置为使用 TFTP 服务器:

    # satellite-installer \
    --foreman-proxy-tftp true \
    --foreman-proxy-managed false \
    --foreman-proxy-tftp-root /mnt/nfs/var/lib/tftpboot \
    --foreman-proxy-tftp-servername tftp_server_fqdn
    Copy to Clipboard Toggle word wrap
  5. 对于每个受影响的胶囊,在卫星 Web UI 中更新该胶囊的配置。如需更多信息,请参阅 第 3.3 节 “将 TFTP 服务与子网关联”

3.3. 将 TFTP 服务与子网关联

配置或更改 TFTP 提供程序后,您必须在 Satellite Web UI 中更新每个受影响的 Capsule 的配置。

先决条件

  • 已配置了 TFTP 服务器。

流程

  1. 在 Satellite Web UI 中,进入到 Infrastructure > Subnets
  2. 选择子网名称。
  3. Capsules 选项卡上,为 TFTP 选择 Capsule。
  4. Submit

3.4. 为集成禁用 TFTP

如果要手动管理 TFTP 服务,而不将其集成到 Satellite 中,您必须防止 Satellite 在操作系统中维护此服务,并禁用编排以避免错误。

注意

在 Satellite 中禁用 TFTP 不会删除操作系统上的相关后端服务。

流程

  1. 在 Satellite Web UI 中,进入到 Infrastructure > Subnets
  2. 对于与 TFTP Capsule 关联的每个子网:

    1. 选择子网。
    2. Capsules 选项卡上,清除 TFTP Capsule 字段。
    3. Submit
  3. 在 Satellite 服务器上,输入:

    # satellite-installer --foreman-proxy-tftp false
    Copy to Clipboard Toggle word wrap
    注意

    当为给定子网设置胶囊时,Satellite 不执行编排。当您禁用 Capsule 关联时,如果没有预期的记录和配置文件,现有主机的编配命令可能会失败。

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部