我如何从脚本分配DHCP租约?

我有一个环境,有一个DHCP服务器服务于许多不同的主机/ vlan。 交换机configuration为通过(通过ip-helper)转发DHCP请求,并包含有关端口的信息(选项82)。 我想把这些信息翻译成服务器的实际租约。

我认为对我来说,预先生成一份可用的租约清单并不是特别可行,但我应该能够确定租约的地址。

有没有一个DHCP服务器可以在收到请求时执行脚本? (注:我正在寻找从脚本分配的IP,没有DHCP服务器分配一个IP然后执行脚本)

编辑:所以,最终我试图通过大量不同的vlans提供DHCP / PXE服务。 这样我们就可以通过PXE启动来安装操作系统,而无需单独的PXE vlan。 我已经configuration了交换机没有问题,我有DHCP服务器识别选项82。

我需要一种方法来从另一个系统中获取DHCP分配(这个系统可以知道在什么vlan上使用什么子网),但是我不想预生成一个vlan列表:DHCP范围对。

我想你可以用ISC Kea支持的钩子系统(这是ISC dhcpd的替代品)来做到这一点。 在KEA中,您可以编写自己的特定阶段的钩子。 在这种情况下,必须实现subnet4_select和lease4_select挂钩。 在subnet4_select你让KEAselect正确的子网,在lease4_select你让它提供正确的IP地址。 但是,这样你将不得不编写相当数量的C ++代码。

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

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

我将使用ISC dhcpd / Kea,并使用基于DHCP请求中设置的选项的条件来configuration不同的IP。

也可以看看:

如果您的DHCP服务器是Windows,请参阅此ServerFault问题,为您提供一些起点。 198383 ISC有这function。 他们的网站上有很多信息。 Google会帮忙。

无论如何,这是相当复杂的,因为您将从交换机获得的接力信息非常适合供应商。
对于一个小型networking来说,只需简单地为所有客户端设置DHCP预留,就可以获得更简单的设置。 如果这似乎是不可行的,那么你要做好大量的工作,准备如何做到这一点。