4.2. 使用外部 DHCP 配置 Capsule 服务器
要使用外部 DHCP 配置 Capsule 服务器,您必须完成以下步骤:
4.2.1. 配置外部 DHCP 服务器以用于 Capsule 服务器
要配置运行 Red Hat Enterprise Linux 的外部 DHCP 服务器以用于 Capsule 服务器,您必须安装 ISC DHCP 服务和 Berkeley Internet Name Domain (BIND)软件包。您还必须与 Capsule 服务器共享 DHCP 配置和租期文件。此流程中的示例使用分布式网络文件系统(NFS)协议来共享 DHCP 配置和租期文件。
如果您使用 dnsmasq 作为外部 DHCP 服务器,请启用 dhcp-no-override 设置。这是必要的,因为 Satellite 在 grub2/ 子目录下在 TFTP 服务器上创建配置文件。如果禁用了 dhcp-no-override 设置,客户端会从根目录中获取引导装载程序及其配置,这可能会导致错误。
流程
在 Red Hat Enterprise Linux 主机上,安装 ISC DHCP 服务和 Berkeley Internet Name Domain (BIND)软件包:
# yum install dhcp bind
生成安全令牌:
# dnssec-keygen -a HMAC-MD5 -b 512 -n HOST omapi_key
因此,当前目录中会创建一个由两个文件组成的密钥对。
从密钥复制 secret 哈希:
# cat Komapi_key.+*.private |grep ^Key|cut -d ' ' -f2
编辑所有子网的
dhcpd配置文件并添加密钥。以下是一个示例:# 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 "jNSE5YI3H1A8Oj/tkV4...A2ZOHb6zv315CkNAY7DMYYCj48Umw=="; }; omapi-key omapi_key;
请注意,
optionsrouter 值是您要与外部 DHCP 服务一起使用的 Satellite 或 Capsule IP 地址。- 从在其中创建的目录中删除两个密钥文件。
在 Satellite 服务器上,定义每个子网。不要为定义的子网设置 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 服务器上,使用与上一步中确定相同的 ID 创建
foreman用户和组:# 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 start dhcpd
使用 NFS 导出 DHCP 配置和租期文件:
# yum install nfs-utils # systemctl enable rpcbind nfs-server # systemctl start rpcbind nfs-server nfs-lock nfs-idmapd
为您要使用 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" \ && firewall-cmd --runtime-to-permanent
可选:配置防火墙以从外部访问 NFS。客户端使用 NFSv3 配置。
# firewall-cmd --zone public --add-service mountd \ && firewall-cmd --zone public --add-service rpc-bind \ && firewall-cmd --zone public --add-service nfs \ && firewall-cmd --runtime-to-permanent
4.2.2. 使用外部 DHCP 服务器配置 Satellite 服务器
您可以使用外部 DHCP 服务器配置 Capsule 服务器。
前提条件
- 确保您已配置了外部 DHCP 服务器,并且您已与 Capsule 服务器共享 DHCP 配置和租期文件。更多信息请参阅 第 4.2.1 节 “配置外部 DHCP 服务器以用于 Capsule 服务器”。
流程
安装
nfs-utils工具:# yum 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 bash-4.2$ cat /mnt/nfs/etc/dhcp/dhcpd.conf bash-4.2$ cat /mnt/nfs/var/lib/dhcpd/dhcpd.leases bash-4.2$ exit
输入
satellite-installer命令,对/etc/foreman-proxy/settings.d/dhcp.yml文件进行以下更改:# satellite-installer --foreman-proxy-dhcp=true \ --foreman-proxy-dhcp-provider=remote_isc \ --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=jNSE5YI3H1A8Oj/tkV4...A2ZOHb6zv315CkNAY7DMYYCj48Umw== \ --foreman-proxy-plugin-dhcp-remote-isc-omapi-port=7911 \ --enable-foreman-proxy-plugin-dhcp-remote-isc \ --foreman-proxy-dhcp-server=DHCP_Server_FQDN重启
foreman-proxy服务:# systemctl restart foreman-proxy
- 在 Satellite Web UI 中,导航到 Infrastructure > Capsules。
- 找到 Capsule 服务器,然后从 Actions 列中的列表中选择 Refresh。
- 将 DHCP 服务与适当的子网和域关联。