4.2. 使用外部 DHCP 配置胶囊服务器
要使用外部 DHCP 配置胶囊服务器,您必须完成以下步骤:
4.2.1. 将外部 DHCP 服务器配置为用于胶囊服务器
要配置外部 DHCP 服务器以用于胶囊服务器,请在 Red Hat Enterprise Linux 服务器中安装 ISC DHCP 服务和 Berkeley Internet Name Domain (BIND)软件包。您还必须将 DHCP 配置和租期文件与胶囊服务器共享。此流程中的示例使用分布式网络文件系统(NFS)协议共享 DHCP 配置和租期文件。
如果您使用 dnsmasq 作为外部 DHCP 服务器,请启用 dhcp-no-override
设置。这是必要的,因为卫星会在 TFTP 服务器上创建 grub2/
子目录的配置文件。如果禁用了 dhcp-no-override
设置,客户端会从根目录获取启动加载器及其配置,这可能会导致错误。
流程
在 Red Hat Enterprise Linux 服务器服务器中,安装 ISC DHCP Service 和 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;
请注意,
选项路由器
值是您要用于外部 DHCP 服务的卫星或胶囊 IP 地址。- 从在其中创建的目录中删除这两个密钥文件。
在卫星服务器上,定义各个子网。暂时不要为定义的子网设置 DHCP 胶囊。
要防止冲突,请单独设置租期和保留范围。例如,如果租期范围是 192.168.38.10 到 192.168.38.100,在卫星 Web UI 中将保留范围定义为 192.168.38.101 到 192.168.38.250。
配置外部对 DHCP 服务器的防火墙:
# firewall-cmd --add-service dhcp \ && firewall-cmd --runtime-to-permanent
在卫星服务器上,确定
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
为确保配置文件可以访问,请恢复读取和执行标志:
# 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 地址是卫星或胶囊 IP 地址,您要用于外部 DHCP 服务。
重新载入 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 服务器配置胶囊服务器
您可以使用外部 DHCP 服务器配置胶囊服务器。
前提条件
- 确保您配置了外部 DHCP 服务器,并且已与胶囊服务器共享 DHCP 配置和租期文件。更多信息请参阅 第 4.2.1 节 “将外部 DHCP 服务器配置为用于胶囊服务器”。
流程
安装
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
- 登录卫星服务器 Web UI。
- 导航到 Infrastructure > Capsules,找到胶囊服务器,然后从 Actions 列中的列表中,选择 Refresh。
- 将 DHCP 服务与适当的子网和域关联。