4.2. 使用外部 DHCP 配置 Capsule 服务器


要使用外部 DHCP 配置 Capsule 服务器,您必须完成以下步骤:

4.2.1. 配置外部 DHCP 服务器以用于胶囊服务器

要将运行 Red Hat Enterprise Linux 的外部 DHCP 服务器配置为 Capsule 服务器,您必须安装 ISC DHCP 服务和 Berkeley Internet 名称域(BIND)工具软件包。您还必须与胶囊服务器共享 DHCP 配置和租期文件。此流程中的示例使用分布式网络文件系统(NFS)协议共享 DHCP 配置和租期文件。

注意

如果您使用 dnsmasq 作为外部 DHCP 服务器,请启用 dhcp-no-override 设置。这是必要的,因为 Satellite 在 grub2/ 子目录下的 TFTP 服务器上创建配置文件。如果 dhcp-no-override 设置被禁用,主机会从根目录获取引导装载程序及其配置,这可能会导致错误。

流程

  1. 在 Red Hat Enterprise Linux 主机上,安装 ISC DHCP Service 和 Berkeley Internet Name Domain (BIND)工具软件包:

    # dnf install dhcp-server bind-utils
  2. 生成安全令牌:

    # tsig-keygen -a hmac-md5 omapi_key
  3. 编辑所有子网的 dhcpd 配置文件并添加 tsig-keygen 生成的密钥。以下是一个示例:

    # cat /etc/dhcp/dhcpd.conf
    default-lease-time 604800;
    max-lease-time 2592000;
    log-facility local7;
    
    subnet 192.168.38.0 netmask 255.255.255.0 {
    	range 192.168.38.10 192.168.38.100;
    	option routers 192.168.38.1;
    	option subnet-mask 255.255.255.0;
    	option domain-search "virtual.lan";
    	option domain-name "virtual.lan";
    	option domain-name-servers 8.8.8.8;
    }
    
    omapi-port 7911;
    key omapi_key {
    	algorithm hmac-md5;
    	secret "My_Secret";
    };
    omapi-key omapi_key;

    请注意,选项 router 值是您要与外部 DHCP 服务一起使用的 Satellite 服务器或 Capsule 服务器的 IP 地址。

  4. 在服务器上,定义每个子网。不要为定义的子网设置 DHCP Capsule。

    要防止冲突,请单独设置租期和保留范围。例如,如果租期范围是 192.168.38.10 到 192.168.38.100,在 Satellite Web UI 中,将保留范围定义为 192.168.38.101 到 192.168.38.250。

  5. 配置防火墙以从外部访问 DHCP 服务器:

    # firewall-cmd --add-service dhcp
  6. 使更改持久:

    # firewall-cmd --runtime-to-permanent
  7. 在 Satellite 服务器上,确定 foreman 用户的 UID 和 GID:

    # id -u foreman
    993
    # id -g foreman
    990
  8. 在 DHCP 服务器上,创建 foreman 用户和组,其 ID 与上一步中决定的相同:

    # groupadd -g 990 foreman
    # useradd -u 993 -g 990 -s /sbin/nologin foreman
  9. 要确保配置文件可以访问,请恢复 read 和 execute 标记:

    # chmod o+rx /etc/dhcp/
    # chmod o+r /etc/dhcp/dhcpd.conf
    # chattr +i /etc/dhcp/ /etc/dhcp/dhcpd.conf
  10. 启用并启动 DHCP 服务:

    # systemctl enable --now dhcpd
  11. 使用 NFS 导出 DHCP 配置和租期文件:

    # dnf install nfs-utils
    # systemctl enable --now nfs-server
  12. 为您要使用 NFS 导出的 DHCP 配置和租期文件创建目录:

    # mkdir -p /exports/var/lib/dhcpd /exports/etc/dhcp
  13. 要为创建的目录创建挂载点,请在 /etc/fstab 文件中添加以下行:

    /var/lib/dhcpd /exports/var/lib/dhcpd none bind,auto 0 0
    /etc/dhcp /exports/etc/dhcp none bind,auto 0 0
  14. /etc/fstab 中挂载文件系统:

    # mount -a
  15. 确保 /etc/exports 中存在以下行:

    /exports 192.168.38.1(rw,async,no_root_squash,fsid=0,no_subtree_check)
    
    /exports/etc/dhcp 192.168.38.1(ro,async,no_root_squash,no_subtree_check,nohide)
    
    /exports/var/lib/dhcpd 192.168.38.1(ro,async,no_root_squash,no_subtree_check,nohide)

    请注意,您输入的 IP 地址是您要用于外部 DHCP 服务的 Satellite 或 Capsule IP 地址。

  16. 重新载入 NFS 服务器:

    # exportfs -rva
  17. 为 DHCP omapi 端口 7911 配置防火墙:

    # firewall-cmd --add-port=7911/tcp
  18. 可选:配置防火墙以从外部访问 NFS。客户端使用 NFSv3 配置。

    # firewall-cmd \
    --add-service mountd \
    --add-service nfs \
    --add-service rpc-bind \
    --zone public
  19. 使更改持久:

    # firewall-cmd --runtime-to-permanent

4.2.2. 使用外部 DHCP 服务器配置 Satellite 服务器

您可以使用外部 DHCP 服务器配置 Capsule 服务器。

先决条件

流程

  1. 安装 nfs-utils 软件包:

    # satellite-maintain packages install nfs-utils
  2. 为 NFS 创建 DHCP 目录:

    # mkdir -p /mnt/nfs/etc/dhcp /mnt/nfs/var/lib/dhcpd
  3. 更改文件所有者:

    # chown -R foreman-proxy /mnt/nfs
  4. 验证与 NFS 服务器和远程过程调用(RPC)通信路径的通信:

    # showmount -e DHCP_Server_FQDN
    # rpcinfo -p DHCP_Server_FQDN
  5. /etc/fstab 文件中添加以下行:

    DHCP_Server_FQDN:/exports/etc/dhcp /mnt/nfs/etc/dhcp nfs
    ro,vers=3,auto,nosharecache,context="system_u:object_r:dhcp_etc_t:s0" 0 0
    
    DHCP_Server_FQDN:/exports/var/lib/dhcpd /mnt/nfs/var/lib/dhcpd nfs
    ro,vers=3,auto,nosharecache,context="system_u:object_r:dhcpd_state_t:s0" 0 0
  6. /etc/fstab 中挂载文件系统:

    # mount -a
  7. 要验证 foreman-proxy 用户可以访问通过网络共享的文件,请显示 DHCP 配置和租期文件:

    # su foreman-proxy -s /bin/bash
    $ cat /mnt/nfs/etc/dhcp/dhcpd.conf
    $ cat /mnt/nfs/var/lib/dhcpd/dhcpd.leases
    $ exit
  8. 输入 satellite-installer 命令,对 /etc/foreman-proxy/settings.d/dhcp.yml 文件进行以下更改:

    # satellite-installer \
    --enable-foreman-proxy-plugin-dhcp-remote-isc \
    --foreman-proxy-dhcp-provider=remote_isc \
    --foreman-proxy-dhcp-server=My_DHCP_Server_FQDN \
    --foreman-proxy-dhcp=true \
    --foreman-proxy-plugin-dhcp-remote-isc-dhcp-config /mnt/nfs/etc/dhcp/dhcpd.conf \
    --foreman-proxy-plugin-dhcp-remote-isc-dhcp-leases /mnt/nfs/var/lib/dhcpd/dhcpd.leases \
    --foreman-proxy-plugin-dhcp-remote-isc-key-name=omapi_key \
    --foreman-proxy-plugin-dhcp-remote-isc-key-secret=My_Secret \
    --foreman-proxy-plugin-dhcp-remote-isc-omapi-port=7911
  9. 将 DHCP 服务与适当的子网和域关联。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.