ISC DHCP – 强制客户端获得新的IP地址,而不是重新发放他们以前的租约IP

我们正在将DHCP和DNS服务从基于Debian的服务器迁移到Windows Server 2008 R2实施。 Debian服务器正在运行isc-dhcpd-V3.1.1。 所有的工作站都configuration为.3和.40之间的固定地址(这个select背后的动机主要是pipe理/政治很像这里 )。 DHCP租约的范围是.100到.175。 静态configuration的服务器位于.200以上的块(大部分为空)。

当我们转向Windows平台时,pipe理/政治考虑要求我再次移动IP范围。 我们希望保留.1 – .10保留给networking设备,交换机和其他基础设施。 .200将保持指定给服务器。 中间的寻址空间应该对客户端可用,并且IP应该被服务器dynamic地分配( 编辑:而不是像最初提到的那样是自动的)。

Windows Server上的我的地址池如下所示:

192.168.0.1 192.168.0.254 (Address range for distribution) 192.168.0.1 192.168.0.10 (IP addresses excluded from distribution) 192.168.0.200 192.168.0.254 (IP addresses excluded from distribution) 

目前,我们所有的客户仍然在.3 – .40的范围内,还有一些机器仍然在.100 – .175之间运行(虽然有很多设备已经断电,但仍然有租约到期。范围)。 由于租用“数据库”不是在新旧DHCP服务器之间共享,我怎样才能防止客户端从旧DHCP服务器接收租约,使用当前由客户端持有的未过期租约的IP地址? 如果我只是扩大在Debian DHCP服务器上的范围是192.168.0.10 – 192.168.0.199有没有办法强制客户端不重新使用他们的旧IP地址,当他们发送他们的DHCPDISCOVER? 我可以使Windows DHCP服务器像ISC实施一样具有授权吗?

Debian服务器中的dhcpd.conf文件:

 ddns-update-style none; authoritative; default-lease-time 43200; #12 hours max-lease-time 86400; #24 hours subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; range 192.168.0.100 192.168.0.175; } host workstation-1 { hardware ethernet 00:11:22:33:44:55; fixed-address 192.168.0.3; } ... and so on until 192.168.0.40 

这可能不是解决这个问题的最好方法,但它的工作。 这是我做的。

1)我添加了以下限制到我的基于Debian的DHCP服务器,并删除了所有的固定地址条目。 这迫使这些IP范围内的任何客户端移动到.41 – .199范围内,否则,当我打开Windows服务器时,客户端将收到networking上已存在的.11 – .40范围内的IP租约。 然后,我让这些事情足够长,以便在该IP范围内的任何租约到期,并发行一个新的租约。

 subnet 192.168.61.0 netmask 255.255.255.0 { option routers 192.168.61.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.61.255; pool { range 192.168.61.0 192.168.61.40; deny all clients; } pool { range 192.168.61.41 192.168.61.199; } } 

我无法想出一个办法使Windows Server DHCP实现起到“权威”的作用。 我想要的行为是当客户租借了基于Debian的旧版DHCP服务器的DHCPINFORM数据包到新的Windows服务器时,我希望这些客户端能够收到一个DHCPNAK,然后通过整个过程再次获得租约,从而“无论如何,重新填充“.11以上的寻址空间,继续。

2)我通过扩大新的Windows DHCP服务器上的排除范围,包括192.168.61.100 – 192.168.61.199作弊。 这将强制任何被Debian的DHCP服务器分配了该范围内的IP的客户端拒绝其DHCPINFORM,然后在寻址空间(.11和更高)的“底部”发布新的租约。

3)在这一点上,我只是closuresDebian的DHCP服务器,并在Windows服务器上,让到期时间sorting。 由于在我的dhcpd.conf文件中 “拒绝所有客户”这一行,在.11 – .40寻址空间中没有可能导致IP冲突的“旧租约”的客户,也没有.100的排除。 199范围所有的DHCPINFORM请求被拒绝(至less我想象那是发生了什么……我没有打扰使用数据包嗅探器看事务…我可能应该)和寻址空间重新填充从.11的下界。

停止DHCP服务器,并吹走租约文件。 它应该在/var/lib/dh​​cpd/dhcpd.leases中。 重新启动DHCP服务器,客户端将开始采取不同的地址。

我不知道强制Windows DHCP服务器成为权威(在Windows传统中,它可能只是权威性的),但是从dhcpdconfiguration中删除指令将是朝这个方向迈出的步骤之一。