我的dynamicDNS和DHCP设置存在问题,因为客户端在没有可用的请求时请求租用,导致现有客户端的正向和反向DNSlogging被删除,导致级联失败。 我在Ubuntu 14.04服务器上使用isc-dhcp-server和bind9。 在这种情况下,客户端正在运行OS X.
我已经为DHCP服务器分配了一系列IP地址,并将其挂接到dynamicDNS更新。 当发布IP绑定得到更新,一切工作正常。 但是,当DHCP租约池耗尽时,DHCP服务器开始将现有租赁交给请求租用的客户端,然后立即撤销。 不幸的是,这也会触发对DNS的更新,其中该IP的正向和反向logging也被删除,这意味着该IP上的系统不能再被DNSfind。 这将继续在整个范围内继续进行,从而删除所有DNS条目,直到它再次循环。
我已经通过手册页挖掘,我不能解释这种行为。 我已经尝试了isc-dhcp-serverconfiguration上的共享networking,子网和池,现在它们都显示相同的行为。 如果从客户端返回一个租约,它将被分发到下一个系统,请求一个DNS,并且DNS更新可以,但是当没有可用的客户端请求租约时,再次开始这个循环。
任何想法可能会导致这种行为? 这就像DHCP服务器没有检查自己的dhcpd.leases文件,看看它已经发出这些IP。
这个问题归结为关于DHCP规范的OS X行为不当。 就像在这里讨论的那样,OS X甚至在试图通过DHCP进行通信之前,都会制作自己的ARP数据包。 如果DHCP客户端ID是填充的而不是唯一的,则OS X使用此信息填充ARP数据包,导致DHCP Exhaustion攻击。
要解决此问题,您不能使用DHCP客户端ID字段, 或者必须使其唯一。 在我的情况下,我们做了这个“[DHCP租约池] [主机名]”,它提供了唯一的客户端ID,仍然可以通过DHCP服务器中的子string来检索,以确定分配系统的租约池。