当用户在浏览器的URL栏中键入域名时,DNS服务器负责将这些域名转换为数字的IP地址,从而将其引导至正确的网站。域名系统 ( DNS ) 是 Internet 的电话簿。当用户在网络浏览器中键入诸如“baidu.com”或“mfisp.com”之类的域名时,DNS 负责为这些站点查找正确的IP地址。浏览器然后使用这些地址与源服务器或CDN 边缘服务器通信以访问网站信息。这一切都归功于DNS服务器:专门用于回答 DNS查询的机器。
什么是服务器?
服务器是专用于向其他程序(称为“客户端”)提供服务的设备或程序。DNS 客户端内置于大多数现代桌面和移动操作系统中,使 Web 浏览器能够与DNS服务器交互。
DNS服务器如何解析DNS查询?
在没有任何缓存的典型DNS查询中,有四个服务器协同工作以向客户端提供 IP地址:递归解析器、根名称服务器、TLD 名称服务器和权威名称服务器。
DNS 递归器(也称为 DNS 解析器)是一个服务器,它接收来自 DNS 客户端的查询,然后与其他DNS服务器交互以寻找正确的 IP。一旦解析器接收到来自客户端的请求,解析器就会实际充当客户端本身,查询其他三种类型的DNS服务器以搜索正确的 IP。
首先,解析器查询根名称服务器。根服务器是将人类可读的域名转换(解析)为 IP地址的第一步。然后,根服务器使用存储其域信息的顶级域 (TLD)DNS服务器(例如 .com 或 .net)的地址响应解析器。
接下来,解析器查询 TLD 服务器。TLD 服务器以域的权威名称服务器的 IP地址进行响应。然后递归者查询权威名称服务器,后者将使用源服务器的 IP地址进行响应。
解析器最终会将源服务器 IP地址传递回客户端。使用此 IP地址,客户端可以直接向源服务器发起查询,源服务器将通过发送可由 Web 浏览器解释和显示的网站数据进行响应。
什么是 DNS 缓存?
除了上面概述的过程之外,递归解析器还可以使用缓存数据解析 DNS查询。在检索到给定网站的正确 IP地址后,解析器会将该信息存储在其缓存中一段有限的时间。在此期间,如果任何其他客户端发送对该域名的请求,解析器可以跳过典型的 DNS 查找过程,只需使用缓存中保存的 IP地址响应客户端。
一旦缓存时间限制到期,解析器必须再次检索 IP地址,在其缓存中创建一个新条目。此时间限制称为生存时间 (TTL),在每个站点的DNS 记录中明确设置。通常,TTL 在 24-48 小时范围内。TTL 是必需的,因为 Web 服务器偶尔会更改其 IP地址,因此解析器无法无限期地从缓存中提供相同的 IP。
当DNS服务器出现故障时会发生什么?
DNS服务器可能因多种原因而失败,例如停电、网络攻击和硬件故障。在互联网的早期,DNS服务器中断可能会产生相对较大的影响。值得庆幸的是,今天 DNS 中内置了很多冗余。例如,有许多根DNS服务器和 TLD 名称服务器的实例,并且大多数 ISP 为其用户提供备份递归解析器。(个人用户也可以使用公共 DNS 解析器)大多数流行的网站也有其权威域名服务器的多个实例。
在DNS服务器发生重大中断的情况下,一些用户可能会因备份服务器处理的请求量而遇到延迟,但需要很大比例的 DNS 中断才能使大部分 Internet 不可用。(这实际上发生在 2016 年,当时 DNS 提供商 Dyn 经历了历史上最大的 DDoS 攻击之一)。提供托管 DNS 服务,该服务带有内置的 DNS 安全性,旨在保护DNS服务器免受攻击以及其他常见的服务器故障源。