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
设置被禁用,主机会从根目录获取引导装载程序及其配置,这可能会导致错误。
流程
在 Red Hat Enterprise Linux 主机上,安装 ISC DHCP Service 和 Berkeley Internet Name Domain (BIND)工具软件包:
# dnf install dhcp-server bind-utils
生成安全令牌:
# tsig-keygen -a hmac-md5 omapi_key
编辑所有子网的
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 地址。在服务器上,定义每个子网。不要为定义的子网设置 DHCP Capsule。
要防止冲突,请单独设置租期和保留范围。例如,如果租期范围是 192.168.38.10 到 192.168.38.100,在 Satellite Web UI 中,将保留范围定义为 192.168.38.101 到 192.168.38.250。
配置防火墙以从外部访问 DHCP 服务器:
# firewall-cmd --add-service dhcp
使更改持久:
# firewall-cmd --runtime-to-permanent
在 Satellite 服务器上,确定
foreman
用户的 UID 和 GID:# id -u foreman 993 # id -g foreman 990
在 DHCP 服务器上,创建
foreman
用户和组,其 ID 与上一步中决定的相同:# groupadd -g 990 foreman # useradd -u 993 -g 990 -s /sbin/nologin foreman
要确保配置文件可以访问,请恢复 read 和 execute 标记:
# chmod o+rx /etc/dhcp/ # chmod o+r /etc/dhcp/dhcpd.conf # chattr +i /etc/dhcp/ /etc/dhcp/dhcpd.conf
启用并启动 DHCP 服务:
# systemctl enable --now dhcpd
使用 NFS 导出 DHCP 配置和租期文件:
# dnf install nfs-utils # systemctl enable --now nfs-server
为您要使用 NFS 导出的 DHCP 配置和租期文件创建目录:
# mkdir -p /exports/var/lib/dhcpd /exports/etc/dhcp
要为创建的目录创建挂载点,请在
/etc/fstab
文件中添加以下行:/var/lib/dhcpd /exports/var/lib/dhcpd none bind,auto 0 0 /etc/dhcp /exports/etc/dhcp none bind,auto 0 0
在
/etc/fstab
中挂载文件系统:# mount -a
确保
/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 地址。
重新载入 NFS 服务器:
# exportfs -rva
为 DHCP omapi 端口 7911 配置防火墙:
# firewall-cmd --add-port=7911/tcp
可选:配置防火墙以从外部访问 NFS。客户端使用 NFSv3 配置。
# firewall-cmd \ --add-service mountd \ --add-service nfs \ --add-service rpc-bind \ --zone public
使更改持久:
# firewall-cmd --runtime-to-permanent
4.2.2. 使用外部 DHCP 服务器配置 Satellite 服务器
您可以使用外部 DHCP 服务器配置 Capsule 服务器。
先决条件
- 确保您已配置了外部 DHCP 服务器,并且您已使用 Capsule 服务器共享 DHCP 配置和租期文件。更多信息请参阅 第 4.2.1 节 “配置外部 DHCP 服务器以用于胶囊服务器”。
流程
安装
nfs-utils
软件包:# satellite-maintain packages install nfs-utils
为 NFS 创建 DHCP 目录:
# mkdir -p /mnt/nfs/etc/dhcp /mnt/nfs/var/lib/dhcpd
更改文件所有者:
# chown -R foreman-proxy /mnt/nfs
验证与 NFS 服务器和远程过程调用(RPC)通信路径的通信:
# showmount -e DHCP_Server_FQDN # rpcinfo -p DHCP_Server_FQDN
在
/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
在
/etc/fstab
中挂载文件系统:# mount -a
要验证
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
输入
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
- 将 DHCP 服务与适当的子网和域关联。