在 Ubuntu 12.04 上,我通过 安装了 BIND9 apt-get install
。
我以非常简单的方式配置了服务器,它的名称解析功能也正常。现在我很想读取(如果可能的话)它的缓存。
阅读rndc
手册页时,我尝试使用该rndc flush view
命令,但它说
rndc:“flush”失败:未找到
而如果我简单运行rndc flush
它就可以工作。
那么,首先,我可以在哪里找到 BIND9 缓存文件?
那么,为什么rndc flush view
会失败呢?
答案1
你似乎在问两个不同的问题。
首先,缓存仅保存在 RAM 中。但是,您可以使用它来查看它,rndc dumpdb -cache
默认情况下它将保存到(在 Debian 和 Ubuntu 上)/var/cache/bind/
。
其次,我想您可能不知道对于 bind 来说视图是什么。
视图是呈现给部分客户端的备用区域。例如,如果您有私有和公共网络,您可以为外部客户端创建区域仅公开的视图,而内部客户端将拥有公共和私有网络的视图。您只能刷新在named.conf
(或任何包含的文件中)配置的命名视图。
视图与区域不同,您不能单独刷新区域。
答案2
例如在named.conf中:
options {
...
dump-file "/usr/local/etc/namedb/working/named_dump.db";
...
}
答案3
要查看 2018 年的 dump.db 文件,我必须执行以下操作:
sudo rndc reload
重新加载 RNDC 缓存
dig website.example
将数据提供给缓存
sudo rndc dumped -cache
告诉它开始列出缓存项目
cat /var/cache/bind/named_dump.db
查看缓存的数据库 - 应该显示标准响应:
ubuntu.com.143 A 91.189.94.40
请注意,在您开始输入数据后,重新加载似乎不会影响文件。
根据我的经验,缓存服务器运行正常,但查看缓存文件时,即使服务器在实际工作中正常运行,结果也是空的(例如,dig google.com 耗时 100ms,dig google.com 耗时 1ms,3 分钟后解析时间仍为 1ms)。希望这能有所帮助,虽然不是具体的,但确实有效,如果对此答案进行适当的修正,我将不胜感激。
笔记:这适用于我的 Ubuntu 12.04 机器和 16.04 机器。我很快就会测试 Ubuntu 18.04。