当用户在浏览器的URL栏中键入域名时,DNS 服务器负责将这些域名转换为数字的 IP 地址,从而将其引导至正确的网站。
阅读本文后,您将能够:
复制文章链接
服务器是专用于向其他程序(称为“客户端”)提供服务的设备或程序。大多数现代桌面和移动操作系统都内置了 DNS 客户端,使网页浏览器可以与 DNS 服务器进行交互。如需更多信息,请参见客户端–服务器模型。
在没有任何高速缓存的典型 DNS 查询中,有四个服务器协同工作以将 IP 地址传递给客户端:递归解析器、根域名服务器、TLD 顶级域名服务器和权威域名服务器。
DNS 递归器(也称为 DNS 解析器)是一台服务器,它从DNS客户端接收查询,然后与其他 DNS 服务器进行交互以查找正确的IP。解析器收到来自客户端的请求后,实际上就充当客户端本身,查询其他三种类型的 DNS 服务器以搜索正确的 IP。
首先,解析器查询根域名服务器。根域名服务器是将人类可读域名转换(解析)为 IP 地址的第一步。然后,根服务器使用存储其域信息的顶级域 (TLD) DNS 服务器(例如 .com或 .net)的地址响应解析器。
接下来,解析器查询 TLD 服务器。 TLD 服务器以域的权威名称服务器的 IP 地址进行响应。然后,递归查询器查询权威名称服务器,该服务器将使用源站的 IP 地址进行响应。
解析器最终将源站IP地址传递回客户端。然后,使用该IP地址,客户端可以直接向源站发起查询,并且源站将通过发送可以由网页浏览器解释和显示的网站数据进行响应。
除了上述过程,递归解析器还可以使用高速缓存的数据解析 DNS 查询。在为给定的网站检索了正确的 IP 地址之后,解析程序将在有限的时间内将该信息存储在其高速缓存中。在此时间段内,如果其他任何客户端发送对该域名的请求,则解析程序可以跳过典型的 DNS 查找过程,并仅使用保存在缓存中的 IP 地址来响应客户端。
缓存时间限制到期后,解析器必须再次检索 IP 地址,并在其缓存中创建一个新条目。在每个站点的 DNS 记录明确设置了此时间限制,称为生存时间 (TTL)。通常,TTL 范围为 24-48 小时。TTL 是必需的,因为网页服务器偶尔会更改其 IP 地址,所以解析器无法无限期地从高速缓存中提供相同的 IP。
DNS 服务器可能由于多种原因而发生故障,例如断电、网络攻击和硬件故障。在互联网早期,DNS 服务器中断可能会产生相对较大的影响。值得庆幸的是,如今的 DNS 内置了很多冗余。例如,根 DNS 服务器和顶级域名服务器的实例很多,大多数 ISP 为其用户提供了备份的递归解析器。(个人用户也可以使用公共 DNS 解析器,例如 Cloudflare 的 1.1.1.1。)最受欢迎的网站也有自己的权威域名服务器的多重实例。
在 DNS 服务器严重中断的情况下,备份服务器正在处理的请求量可能会导致某些用户遇到延迟,但需要非常大比例的 DNS 中断才能使很大一部分互联网瘫痪。(2016年还确实发生了这样的事故,当时 DNS 提供商 Dyn 经历了历史上最大的 DDoS 攻击之一)。
当 DNS 服务器遭到入侵或发生故障时,可能会对用户、企业和整个互联网产生巨大的负面影响。与连接到互联网的任何事物一样,DNS 服务器容易受到各种攻击以及恶意方的冒充。DNSSEC 等 DNS 安全措施有助于防止此类攻击,确保服务器和依赖服务器的用户的安全。
Cloudflare 提供托管 DNS 服务,附带内置 DNS 安全,用于保护 DNS 服务器免受攻击以及其他常见的服务器故障源。