解决方法
将正确类型的通道节放在named.conf中的logging {}块中.
channel "client" { file "/var/log/client_named.log"; severity info; print-time yes; };
可能会做的伎俩.这应该会得到这样的数据:
22-Apr-2011 12:06:53.294 client xxx.xxx.xxx.xxx#56202: view external-in: query: st.in.multi.surbl.org IN A +
编辑:警告 – 启用此类日志记录将非常快速地生成非常大的日志文件,并且可以轻松填充磁盘而无需进行某种日志轮换/压缩,并且可能最适合于简短的数据收集会话,而不是永久配置.
如果(以及后处理生成的日志文件)太多,您可以使用tcpdump之类的工具执行此操作.
tcpdump -i eth0 dst port 53 | egrep 'A' | egrep 'xyyzyy.com'
甚至更好,编写一个过滤器,只匹配你要过滤的DNS数据包的正确位(在这种情况下为A?类型)
但是,可能更容易使用像dnstop这样的工具. dnstop webpage将为您执行所有协议解码,IIRC您可以使用-n过滤它的输出,以限制它捕获到单个域的内容.