我使用种子Ubuntu 12.04和两个不同的虚拟机:第一个是运行BIND9的DNS服务器,第二个是模拟用户/客户端。我的任务是毒化DNS服务器缓存。
在用户计算机中,我将主DNS地址配置为DNS服务器计算机的地址。
嗯,这是named.conf.options
文件的上下文(位置为/etc/bind/
):
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
// forwarders {
// 0.0.0.0;
// };
//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
//dnssec-validation auto;
dnssec-enable no;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
dump-file "/var/cache/bind/dump.db";
query-source port 33333;
};
在用户中,我尝试使用不同的主机名(google.com
,cnn.com
等)输入一些不同的地址,以查看缓存文件中的影响。
问题:无论我做什么,缓存文件都保持为空。当然我使用dump命令:
sudo rndc dumpdb -cache
但文件/var/cache/bind/dump.db
仍为空。
谢谢!
答案 0 :(得分:1)
我假设您的Ubuntu安装的bind默认使用chroot。该文件将相对于在其中运行/配置了绑定的chroot环境的根目录创建。
例如,在Redhat样式发行版中,/var/named/chroot/etc/named.conf
仅引用dump-file "/var/named/data/cache_dump.db";
;但是,其完整路径为/var/named/chroot/var/named/data/cache_dump.db
。
此外,无论chroot环境如何,您都可以使用诸如locate(1)或find(1)之类的工具来定位文件。