networking - DNS服务器IP地址

标签 networking dns server ip-address infrastructure

我有一个关于 DNS 基础设施的基本问题。

我想知道上游 DNS 服务器的 IP 地址是如何在 DNS 服务器中配置的。例如,当我的路由器需要代表 LAN 上的计算机满足 DNS 查询时,它会询问其上游 DNS 服务器是否是通过 DHCP 提供的。但是,如果上游 DNS 服务器没有缓存该信息,它如何知道如何到达根 DNS 服务器或某个权威 DNS 服务器?根 DNS 服务器的 IP 地址是否已在任何地方进行硬编码以实现此目的?主干 DNS 服务器是否始终配置有一些上游 DNS 服务器?

我记得设置了一个 Microsoft DNS 服务器,其中任何无法满足的请求都会被转发。但是,由于未配置上游 DNS 服务器,它会将这些请求直接转发到根。这种行为是有道理的,但是,它是如何知道在哪里联系根的呢?

最佳答案

你的推理是正确的。

问:如果上游 DNS 服务器没有缓存该信息,它如何知道如何到达根 DNS 服务器或某个权威 DNS 服务器?根 DNS 服务器的 IP 地址是否已在任何地方进行硬编码以实现此目的?

答:小型 DNS 服务器(例如为一个组织中的客户端提供服务的 DNS 服务器)有时会(手动)配置转发器(通常是 ISP 域名服务器),以便从 ISP 域名服务器的大缓存中受益和更快的查询。根据我的经验,近年来随着互联网链接速度更快(并且延迟更短),这种设置的使用频率越来越低。相反,使用根提示。

问:根 DNS 服务器的 IP 地址是否已在任何地方进行硬编码以实现此目的?

答:是的。对于 Microsoft DNS 服务器,它位于 systemroot\System32\dns\cache.dns,对于 BIND,它通常位于 /etc/bind/db.root/var/named/named.root。可以从 https://www.internic.net/domain/db.cache 检索更新的副本(如果需要)

问: Backbone DNS 服务器是否始终配置有一些上游 DNS 服务器?

答:据我所知,从来没有。

关于networking - DNS服务器IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37245826/

相关文章:

ios - Cocoapods "pod update"安装旧的 pod

r - 包的安装具有非零退出状态 - Linux 服务器

python - 解耦、冗余、异步在远程服务器上执行命令

sockets - RST 在通过 TCP 套接字的视频流中?

Docker 无法连接到容器暴露端口

networking - 通过 ICMP 传输文件

linux - MTR 返回奇怪的结果。每跳多个结果

email - 邮件未发送到特定域

redirect - 端口通过主机名重定向到 docker 容器

dns - 如何在 Go 中查找 NAPTR 记录?