BIND9 将其缓存保存在哪里?

BIND9 将其缓存保存在哪里?

在 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。

相关内容