根据维基百科关于地址解析机制DNS 应该有一个“提示文件”在我的操作系统中,包含一些“根名称服务器”。
如何在 Ubuntu 上查看这个提示文件?
答案1
您不会在每台计算机上都找到此提示文件。通常只有在运行 BIND、Unbound 等名称服务器时才需要它。这些名称服务器需要有关根服务器的信息。
如果你想知道这样的提示文件是什么样子的,你可以去ftp://ftp.rs.internic.net/域名/并下载文件数据库缓存。您也可以输入命令
dig . ns
获取提示文件的内容。
当您进行 DNS 查询时,您的计算机通常会/etc/hosts
先询问您的文件。如果它在那里找不到答案,它将向名称服务器(请参阅 的内容/etc/resolv.conf
)询问答案。然后,名称服务器将在其缓存中获取答案,或者询问根服务器,然后再询问其他名称服务器,直到正确答案到达。因此,您的本地计算机上不需要提示文件。
答案2
大多数 DNS 服务器默认配置有一个“根文件”(又称“提示文件”),指向由 ICANN 控制的“旧式根服务器”。
这使您可以访问“传统域名空间”,其中包括 .com、.net、.org、两个字母的国家代码等。
如果 DNS 服务器不知道所请求站点的地址,那么它将把请求转发给另一个 DNS 服务器。为此,DNS 服务器必须知道它可以将请求转发到的另一个 DNS 服务器的 IP 地址。这是根提示的工作。根提示提供了 DNS 服务器的 IP 地址列表,这些服务器在 DNS 层次结构的根级别(也称为根名称服务器)中被视为具有权威性。
正如 qbi 在他的回答中所述,最简单的方法是使用 dig。首先单独运行 dig,您将根据指定的服务器获得 root.hints。然后使用 dig 询问列出的根服务器之一@rootserver
。您会注意到输出看起来类似于 root.hints 文件。将其保存到文件 ( dig @a.public-root.net . ns >root.hints.new
) 并用它替换旧的 root.hints。
如果要恢复原始文件,只需删除当前文件并重新启动DNS服务器。它会自动重新生成原始文件。
来源:部分信息取自《DNS 和 BIND》第 5 版