我正在尝试在我的家庭实验室中设置一个 foreman 服务来替换我当前的手动管理的 KVM 解决方案。作为此过程的一部分,我正在尝试使部署工作正常,并使 DHCP 和 DNS 代理正常工作。我从 DHCP 开始。
我看到的问题是我的主 DHCP 服务器正在向新主机发放租约,并且地址与预期的领班地址不匹配,因此 PXE 部署失败。
我希望因为我在 Foreman 中设置了主机的 MAC 地址(在主机定义的接口部分下),而在我的标准 isc-dhcp-server 中没有这个 MAC 地址,所以 foreman 会通过智能代理来回答请求,而不是通过我的主 DHCP 服务器来回答它。
这可能吗?如果可能,如何实现?
我在 Ubuntu 14.04.4 LTS 上使用 Foreman 1.11.3,并且安装了以下软件包:
ii foreman 1.11.3-1 amd64 Systems management web interface
ii foreman-cli 1.11.3-1 all metapackage providing hammer CLI for Foreman
ii foreman-debug 1.11.3-1 all provides support utility foreman-debug.
ii foreman-installer 1.11.3-1 all Automated puppet-based installer for The Foreman
ii foreman-libvirt 1.11.3-1 all metapackage providing libvirt dependencies for Foreman
ii foreman-postgresql 1.11.3-1 all metapackage providing PostgreSQL dependencies for Foreman
ii foreman-proxy 1.11.3-1 all RESTful proxies for DNS, DHCP, TFTP, and Puppet
ii ruby-foreman-setup 3.1.0-1 all Foreman Setup Plugin
ii ruby-hammer-cli-foreman 0.6.2-1 all Foreman commands for Hammer
tcpdump 显示我的 foreman 服务器正在接收 DHCP 请求:
16:10:34.160764 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 52:54:00:cd:03:63 (oui Unknown), length 402
16:10:34.161015 IP foreman.penguinpowered.org.bootps > 192.168.10.147.bootpc: BOOTP/DHCP, Reply, length 326
16:10:35.143593 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 52:54:00:cd:03:63 (oui Unknown), length 402
16:10:35.143752 IP foreman.penguinpowered.org.bootps > 192.168.10.147.bootpc: BOOTP/DHCP, Reply, length 326
16:10:37.120935 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 52:54:00:cd:03:63 (oui Unknown), length 414
16:10:37.121087 IP foreman.penguinpowered.org.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 300
但在我的主 DHCP 服务器上,我可以看到它在日志中被回答:
Aug 27 16:10:33 networkservices dhcpd[3678]: DHCPDISCOVER from 52:54:00:cd:03:63 via ens3
Aug 27 16:10:34 networkservices dhcpd[3678]: DHCPOFFER on 192.168.10.70 to 52:54:00:cd:03:63 via ens3
Aug 27 16:10:36 networkservices dhcpd[3678]: DHCPREQUEST for 192.168.10.70 (192.168.10.3) from 52:54:00:cd:03:63 via ens3
Aug 27 16:10:36 networkservices dhcpd[3678]: DHCPACK on 192.168.10.70 to 52:54:00:cd:03:63 via ens3
答案1
DHCP 服务器之间的对立是可能的,但需要进行配置以防止错误的服务器回答错误的问题,范围从 kluge ping-check
/ping-timeout
减慢一个服务器的速度到将其中一个标记为not authoritative
或标记为deny unknown-clients
(可能是其中只有几个静态条目的服务器),或者在这种情况下,可能在主 DHCP 服务器上标记为match
PXE 客户端的某些功能,然后deny
从主池中租约。请参阅dhcpd(8)
和dhcp-options(5)
以获取指针,因为您可以通过 MAC 地址前缀或 PXE 客户端请求中的某些内容进行匹配...
class "your-pxe-booters" {
match ...;
}
subnet ... {
pool {
deny members of "your-pxe-booters";
...