是否有任何好的 FOSS 工具可以审核 Linux/UNIX ISC DHCPd 环境中使用的保留 IP?我试图确保在提取旧 MAC 地址时没有保留过时的 IP 地址。
答案1
最初的问题要求使用 FOSS 工具来实现此目的,但我不知道有任何工具可以正确地做到这一点。
我以前也做过这个练习,所以我可以解释为什么这里的其他一些建议可能不够。我想问一下你在网络上使用的是哪种路由器。
在特定时间扫描网络是不够的;它忽略了使用的时间方面等。简单地说,主机可能在你扫描时不在线。另一个问题是主机可能启用了防火墙来阻止扫描。
人类的过程......好吧,它们是如此柔软的东西,你为什么要让人类来做这件事?
将 DHCP conf 与已出租租约进行比较可能也不够。租约数据库必须再次随时间进行跟踪。但真正的问题是,您可能在配置中创建了一个条目,该条目是静态使用的,而不是通过 DHCP 使用的。有人可能请求了一个地址,发现他们无法正确配置 DHCP,并对分配给机器的地址进行了硬编码。
我使用的解决方案是从(Cisco)路由器收集 ARP 记录。您需要捕获的最少信息是 IP 地址、MAC 地址和一段时间内的一些时间数据(首次看到、最后看到)。然后可以将其与您的 DHCP 配置进行比较,以查看哪些注册未被使用且可以回收。ARP 日志揭示了其他有用的信息,例如
已注册的 MAC 具有已注册的 IP 地址,但没有 DHCP 租约记录 - 主机对其注册进行硬编码,而不使用 DHCP。
注册的 MAC 未使用注册的 IP 地址 - 如果在同一个网络上,则可能硬编码为错误的地址;如果在另一个网络上,主机可能已重新定位。
未注册的 MAC 地址,具有已注册或未注册的 IP 地址 - 可能是新的 NIC,也可能是恶意硬编码器。
您还需要创建(并向用户发布)一项策略,以便将 DHCP 记录与 ARP 信息进行比较的脚本将在一段时间未使用后提名要回收的地址。我们用了六个月的时间,尽管我们最终回收了一位休假员工的地址。适当调整。
希望这可以帮助!
答案2
根据您对 David 的回答的评论,听起来您需要一些东西来定期轮询默认网关和/或服务器上的 ARP 表。
一些相对简单的 SNMP 表 Perl 脚本应该允许您探测这一点,并构建一个长期的 MAC -> IP 映射数据库。参见http://docstore.mik.ua/orelly/perl/sysadmin/ch10_03.htm
答案3
我不知道是否或者如何这有效,但它似乎收集了您需要的一些数据,因此它可能是一个开始。
答案4
我认为您可以编写一个非常简单的 perl 脚本来比较 /etc/dhcpd.conf 和 /var/lib/dhcp/dhcpd.leases
我会看看http://search.cpan.org/~jhthorsen/Net-ISC-DHCPd/lib/Net/ISC/DHCPd.pm它似乎有用于读取这两种类型文件的模块。