我已经使用bind9 配置了CC TLD。我也成功配置了查询日志记录。但我无法记录查询响应。
请查看我为查询日志记录配置的内容:
logging {
channel queries_file {
file "/var/named/chroot/var/log/named/queries.log" versions 10 size 10G;
severity dynamic;
print-category yes;
print-severity yes;
print-time yes;
};
category queries { queries_file; };
};
该脚本仅记录来自外部的查询。
我如何记录这些请求的服务器响应。
答案1
BIND 中根本没有规定使用该logging
指令来记录查询的答案。
此外,除了隐私考虑之外,DNS 服务远程记录它们而不是记录在文件中可能会更有效。
很多时候人们都在跑步域名解析协议捕获/嗅探 DNS 查询以进行安全分析。
dnscap 是专门为 DNS 流量设计的网络捕获实用程序。它生成 pcap(3) 格式的二进制数据。该实用程序与 tcpdump(1) 类似,但具有许多针对 DNS 事务和协议选项定制的功能。
还有一个捕获/记录功能称为域名服务器,但它仅存在于某些版本的 BIND 中,并且似乎总是在 BIND 的最后一个版本(此时为 9.11)之后正式包含,该版本可能尚未在多个发行版中采用,因此涉及编译 BIND。
它更有趣,因为它与 BIND 集成,并且比dnscap
.
dnstap 是一种解决方案,它为 DNS 服务器引入了灵活的二进制日志格式以及协议缓冲区(一种用于序列化结构化数据的机制)。 Robert Edmonds 提出了 dnstap 的想法,并根据两个特定用例创建了第一个实现:
- 通过消除同步 I/O 瓶颈和消息格式化来加快查询记录速度
- 通过捕获完整消息而不是被动 DNS 数据包来避免复杂的状态重建
options {
dnstap { all; };
// dnstap { auth; resolver query; resolver response; };
/* where to capture to: file or unix (socket) */
// dnstap-output file "/tmp/named.tap";
dnstap-output unix "/var/run/dnstap.sock";
dnstap-identity "tiggr";
dnstap-version "bind-9.11.2";
};