我知道 Windows 10 缓存 DNS 查询,您可以使用ipconfig /displaydns命令查看它。
我怀疑某些路由器和 SOHO(小型办公室/家庭办公室)路由器内部是否也有 DNS 服务器。
如果是这样,那么我猜 DNS 服务器将只是另一个类似于 Windows 中的缓存,还是更高级的 DNS 服务器?我猜它所做的只是缓存名称解析并将所有其他解析转发到上游 DNS 服务器(通常是您的 ISP 的 DNS 服务器)。所以这与你的 ISP 的 DNS 服务器不同,因为这个基本的 DNS 服务器不包括对 13 个根服务器等的根提示。
我会很感激一些清理。
是的,大多数 SOHO 路由器都有一个内置的 DNS 服务器作为缓存。不过,这不是强制性的“路由器”功能——企业网络将在单独的系统上运行其 DNS。
它因产品而异。谈到 SOHO 路由器,路由器自己的 DNS 服务器几乎总是只是一个缓存代理,实际的名称解析依赖于将请求转发到上游解析器;不涉及根提示。
但除此之外,路由器对某些“本地”域(如or或)具有权威性也很常见,其中包含您的 LAN 主机的主机名。这与路由器的 DHCP 服务集成,收集设备在其租用请求中提供的主机名。它甚至可以支持静态条目,尽管在 SOHO 路由器中,每个名称只有一个“A”记录。
.lan
.home
.dlink
虽然它不会运行“完整的”DNS 服务器软件——尽管大多数 SOHO 路由器都是基于 Linux 的,但不要指望在其中找到 BIND 或 Unbound。如果幸运的话,它最多会运行 dnsmasq,如果运气不好,它最多会运行供应商自定义编写的 DNS 缓存。
有些会,有些不会。
路由和 DNS 查找是两个完全独立的操作,因此它们可以作为两个服务在同一个盒子上完成,或者两个服务在两个不同的盒子上完成。
(这同样适用于大多数网络功能 - 例如防火墙,或跟踪用户被允许访问的用户身份验证/访问服务。)
集成的本地 DNS 服务对于诸如本地设备网络和查找之类的事情很有用,尽管某些类型的设备不需要该功能,但包含它并没有什么坏处。在最坏的情况下,它可以充当缓存。
在较小的家用路由器上,路由器通常会包含一些基本的其他服务,因为家庭用户通常不想购买 3 盒一个人会做的事情。
但是,如果您打算作为企业购买独立产品,那么这可能不是您想要的。您将它们分开是为了安全性、可靠性和响应性(您可能拥有多个具有故障转移/循环的服务,包括远程)、网络设计和易于维护/操作。
答案是:视情况而定!
原因是,一些路由器只是将请求转发到另一台服务器。有些安装了 dnsmasq 或绑定,并自行解析和缓存。它也可以是安装在设备上的任何其他标准软件,用于响应和缓存或仅响应请求。
一般无法回答,因为没有告知供应商和设备。也可能发生同一供应商为其自己的产品使用不同的服务
大多数家庭路由器也是真正的 DNS 服务器。(虽然非常基本:它们通常最好将查询“上游”转发到 ISP 的服务器,并且通常提供一些附近的缓存。但这仍然算作“DNS 服务器”。)
由于许多家用路由器都是基于 Linux 的,它们中的一些绝对运行不寻常的 DNS 中继软件,例如 Unbound 或 Dnsmasq,尽管事实上其他路由器有不同的定制实现。
因此,当笔记本电脑在您的路由器中发送 DNS 问题时,路由器的内部 DNS 服务器首先评估它是否可以从本地缓存中响应,如果不能,则将其转发到您的 ISP 更成功的 DNS 服务器。
(您的电脑实际上不需要立即或以任何方式与 ISP 的 DNS 服务器通信。DNS 响应现在通常不包含任何 ISP 特定的记录。)
在典型的家庭设置中,您的计算机甚至不知道您的 ISP 的 DNS 服务器。路由器可能在建立连接后通过某种协议获取 ISP 的 DNS 服务器地址,或者可能通过某些配置以及其他 ISP 详细信息(或者您可以将其配置为使用完全不同的 DNS 服务器)。路由器有自己的 DNS 将请求转发到 ISP 的服务器(或您配置的任何服务器)。当您的计算机连接到路由器时,路由器将通过 DHCP 告诉计算机使用哪个 DNS 服务器,这将是路由器的内部 DNS 服务器。同样,您可以将您的计算机配置为忽略这一点并使用您选择的不同 DNS 服务器。
路由器不会做的是拦截指向另一个 DNS 服务器的 DNS 请求并给你一个缓存的响应。
这里要理解的是,DNS 解析涉及一个分布式缓存网络。
正如其他人所说,针对家庭或小型办公室的路由器通常内置有 DNS 服务器。大多数此类路由器运行 Linux 操作系统,其中大多数使用dnsmasq提供 DNS 服务。
这些通常在转发模式下运行,尽管可以选择在递归模式下运行。
在任何一种情况下,服务器都会维护一个本地缓存。如果查询被缓存,并且条目有效,则它们返回缓存的值。
当它们没有有效的缓存条目时,它们的行为方式有所不同。在这种情况下,转发模式和递归模式的服务器都会咨询另一个 DNS 服务器以寻找答案,但每个服务器都使用不同的策略。
转发 DNS 服务器将查询它配置使用的 DNS 服务器之一。该查询的结果将返回给客户端并缓存。
递归 DNS 服务器将改为执行一系列查询。它将首先咨询其中一个根服务器。这些服务器无法解析完全限定的域名,但它们可以将递归服务器定向到处于更好位置的服务器。因此,递归服务器向根服务器询问可以回答相关顶级域(即.com、.org、.uk...)的响应的服务器列表。一旦得到答案,它就会查询其中一个以找到可以回答有关域的问题的名称服务器(即超级用户)。然后它向 google 的名称服务器发出请求以获取主机名的 IP 地址(即 www,或域的根)。
这个查询链不一定由每个 DNS 请求触发,因为每个查询的结果在每个级别都被缓存。例如,对 .com 名称服务器的查询会被缓存一天。
关键是,DNS 一直在缓存。