如何通过脚本分配 DHCP 租约?

如何通过脚本分配 DHCP 租约?

我有一个环境,其中有一个 DHCP 服务器为许多不同的主机/VLAN 提供服务。交换机配置为转发 DHCP 请求(通过 ip-helper)并包含有关端口的信息(选项 82)。我想获取该信息并将其转换为服务器的实际租约。

我认为预先生成可用租约列表并不是特别可行,但我应该能够在租约到来时确定其地址。

是否有一个 DHCP 服务器可以在收到请求时执行脚本?(注意:我希望从脚本分配 IP,而不是让 DHCP 服务器分配 IP 然后执行脚本)

编辑:因此,我最终尝试在大量不同的 VLAN 上提供 DHCP/PXE 服务。这样我们就可以通过 PXE 引导进行操作系统安装,而不必拥有单独的 PXE VLAN。我已顺利完成交换机配置,并且 DHCP 服务器已识别选项 82。

我需要一种方法来从另一个系统提取 DHCP 分配(这个其他系统会知道在哪个 vlan 上使用哪个子网),但我不想预先生成 vlan:DHCP 范围对的列表。

答案1

也许你应该看看 dnsmasq。它可以执行外部和内部 (LUA) 脚本。选项 --leasefile-ro 应该是你要找的。

http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html

答案2

我想你可以用钩子系统来做到这一点基亚国际学习中心(这是 ISC dhcpd 的替代品)。在 KEA 中,您可以编写在特定阶段运行的自己的钩子。在这种情况下,必须实现 subnet4_select 和 lease4_select 钩子。在 subnet4_select 中,您让 KEA 选择正确的子网,在 lease4_select 中,您让它提供正确的 IP 地址。但是,这样您将不得不编写大量 C++ 代码。

答案3

我将使用 ISC dhcpd/Kea 并根据 DHCP 请求中设置的选项使用条件配置不同的 IP。

也可以看看:

答案4

如果您的 DHCP 服务器是 Windows,请参阅此 ServerFault 问题以获取一些起点。198383 ISC 有这方面的功能。他们的网站上有很多信息。Google 会有所帮助。

无论如何,这非常复杂,因为您从交换机获得的中继信息非常特定于供应商。
对于小型网络,您可能只需为所有客户端设置 DHCP 预留即可获得更简单的设置。如果这不可行(您似乎暗示了这一点),请准备好花大量工作来弄清楚如何做到这一点。

相关内容