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 服务与子网关联”
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat