5.2. 使用外部 DHCP 配置卫星服务器
要使用外部 DHCP 配置 Satellite 服务器,您必须完成以下步骤:
5.2.1. 配置外部 DHCP 服务器以与卫星服务器搭配使用 复制链接链接已复制到粘贴板!
要将外部 DHCP 服务器配置为与卫星服务器一起使用,在 Red Hat Enterprise Linux 服务器上,您必须安装 ISC DHCP Service 和 Berkeley Internet Name Domain(BIND)软件包。您还必须与卫星服务器共享 DHCP 配置和租期文件。此流程中的示例使用分布式网络文件系统(NFS)协议共享 DHCP 配置和租期文件。
如果您将 dnsmasq 用作外部 DHCP 服务器,请启用 dhcp-no-override 设置。这是必要的,因为 Satellite 在 TFTP 服务器上的 grub2/ 子目录中创建配置文件。如果禁用了 dhcp-no-override 设置,客户端会从根目录获取引导装载程序及其配置,这可能导致错误。
流程
在 Red Hat Enterprise Linux Server 服务器中,安装 ISC DHCP Service 和 Berkeley Internet Name Domain(BIND)软件包:
yum install dhcp bind
# yum install dhcp bindCopy to Clipboard Copied! Toggle word wrap Toggle overflow 生成安全令牌:
dnssec-keygen -a HMAC-MD5 -b 512 -n HOST omapi_key
# dnssec-keygen -a HMAC-MD5 -b 512 -n HOST omapi_keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 因此,在当前目录中创建由两个文件组成的密钥对。
从密钥复制 secret 哈希:
cat Komapi_key.+*.private |grep ^Key|cut -d ' ' -f2
# cat Komapi_key.+*.private |grep ^Key|cut -d ' ' -f2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑所有子网的
dhcpd配置文件并添加该密钥。以下是一个示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,
选项路由器值是您要用于外部 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
# firewall-cmd --add-service dhcp \ && firewall-cmd --runtime-to-permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在卫星服务器上,确定
foreman用户的 UID 和 GID:id -u foreman id -g foreman
# id -u foreman 993 # id -g foreman 990Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 DHCP 服务器中,创建
foreman用户和组,其 ID 与上一步中确定的 ID 相同:groupadd -g 990 foreman useradd -u 993 -g 990 -s /sbin/nologin foreman
# groupadd -g 990 foreman # useradd -u 993 -g 990 -s /sbin/nologin foremanCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要确保配置文件可以访问,请恢复读和执行标志:
chmod o+rx /etc/dhcp/ chmod o+r /etc/dhcp/dhcpd.conf chattr +i /etc/dhcp/ /etc/dhcp/dhcpd.conf
# chmod o+rx /etc/dhcp/ # chmod o+r /etc/dhcp/dhcpd.conf # chattr +i /etc/dhcp/ /etc/dhcp/dhcpd.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 DHCP 服务:
systemctl start dhcpd
# systemctl start dhcpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 NFS 导出 DHCP 配置和租期文件:
yum install nfs-utils systemctl enable rpcbind nfs-server systemctl start rpcbind nfs-server nfs-lock nfs-idmapd
# yum install nfs-utils # systemctl enable rpcbind nfs-server # systemctl start rpcbind nfs-server nfs-lock nfs-idmapdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为您要使用 NFS 导出的 DHCP 配置和租期文件创建目录:
mkdir -p /exports/var/lib/dhcpd /exports/etc/dhcp
# mkdir -p /exports/var/lib/dhcpd /exports/etc/dhcpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要为创建的目录创建挂载点,请在
/etc/fstab文件中添加以下行:/var/lib/dhcpd /exports/var/lib/dhcpd none bind,auto 0 0 /etc/dhcp /exports/etc/dhcp none bind,auto 0 0
/var/lib/dhcpd /exports/var/lib/dhcpd none bind,auto 0 0 /etc/dhcp /exports/etc/dhcp none bind,auto 0 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
/etc/fstab中挂载文件系统:mount -a
# mount -aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确定
/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)
/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)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,您输入的 IP 地址是您要用于外部 DHCP 服务的 Satellite 或 Capsule IP 地址。
重新载入 NFS 服务器:
exportfs -rva
# exportfs -rvaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置 DHCP omapi 端口 7911 的防火墙:
firewall-cmd --add-port="7911/tcp" \ && firewall-cmd --runtime-to-permanent
# firewall-cmd --add-port="7911/tcp" \ && firewall-cmd --runtime-to-permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:配置用于从外部访问 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
# 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-permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow