我需要创建一份报告,其中包含从我们的递归 DNS 服务器请求的前 30 个域。报告必须采用以下格式:
域请求数
例如:
Google.com; 98556
yahoo.com; 45585
ETC
我知道 BIND 9.3 不提供这样的功能,那么,您是否知道任何可以每天运行并收集这些信息的脚本?
我的计划是稍后使用该信息创建一个 RRD DB。
答案1
如果您在 Bind9 中启用了 querylog,它将记录对您的服务器发出的所有查询,然后您可以解析这些查询以获取递归标志,然后进行排序。您可以使用许多工具来实现这一点,选择您自己的工具。
给出如下条目:
02-Mar-2013 10:50:08.899 queries: info: client 111.22.33.44#53: Query: fully.qualified.domain.name IN A -E
02-Mar-2013 10:50:08.900 queries: info: client 111.22.33.44#53: Query: fully.qualified.domain.name IN A6 -E
这些字段如下:
收到查询的日期和时间;客户端使用的源 IP 地址和端口号;以及名称、类和 qtype。最后一个字段显示查询是否设置了 rd(需要递归)位(+)或未设置(-)——通常显示查询是来自名称服务器还是存根解析器——或者是否使用了 EDNS0(E)。