是否可以在同一个网络上拥有一个 isc-dhcp 服务器和一个 foreman 代理?

是否可以在同一个网络上拥有一个 isc-dhcp 服务器和一个 foreman 代理?

我正在尝试在我的家庭实验室中设置一个 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 服务器上标记为matchPXE 客户端的某些功能,然后deny从主池中租约。请参阅dhcpd(8)dhcp-options(5)以获取指针,因为您可以通过 MAC 地址前缀或 PXE 客户端请求中的某些内容进行匹配...

class "your-pxe-booters" {
    match ...;
}

subnet ... {
    pool {
        deny members of "your-pxe-booters";
        ...

相关内容