我有一个DNS服务器运行在一个虚拟的Linux机器上有几个IP地址。 绑定提供了一些非常详细的debugging日志,但是,似乎没有logging的一条信息是请求的 IP地址。
例如,如果我在同一个机器上运行谷歌的DNS服务器8.8.8.8和8.8.4.4,我会查看用户是否通过8.8.8.8或8.8.4.4请求DNSlogging。
理想情况下,我不想涉及其他networkingstream量监测工具,并坚持使用BIND。 我的另一个兴趣是根据请求的服务器ip来改变响应,类似于bind中的view子句,但是如果能够实现前者,那么看起来似乎会简单得多。
谢谢!
绑定9中的日志logging选项非常全面,您需要设置一个像这样的频道:
channel resolving { file "data/named.resolve" versions 10 size 5m; severity info; print-time yes; };
然后是一个强制查询进入频道的类别
category queries { resolving; };
这一切都进入logging {}; 部分。
注意,如果你logging所有的查询,你将花费大量的时间写入磁盘,他们将变得很大。 选项版本10,大小5m是我控制日志的方式,它保留了10个版本,最大大小为5 MB。 然后我有一个cron作业,parsing信息之前,他们被绑定删除。
这是我在那个日志里得到的那种信息:
15-Apr-2014 16:15:15.041 client 192.168.xxx.xxx#40978: view That-one : query: XXXXX IN A + (192.168.xxx.xx)
()中的IP地址是响应的BIND服务器IP。