什么是 DNS 服务器?

当用户在浏览器的URL栏中键入域名时,DNS服务器负责将这些域名转换为数字的IP地址,从而将其引导至正确的网站。

Share facebook icon linkedin icon twitter icon email icon

DNS 服务器

学习目标

阅读本文后,您将能够:

  • 定义DNS服务器
  • 概述典型的DNS查找
  • 阐释DNS高速缓存如何运作
  • 了解DNS服务器故障的后果

什么是DNS服务器?

域名系统( DNS )是互联网的电话簿。当用户在网络浏览器中键入域名(例如“ google.com”或“ nytimes.com”)的时候,DNS负责为这些站点查找正确的 IP地址 。然后,浏览器使用这些地址与源站 CDN边缘服务器进行通信,以访问网站信息。这一切都要归功于DNS服务器:专用于回答DNS查询的机器。

什么是服务器?

服务器是专用于向其他程序(称为“客户端”)提供服务的设备或程序。大多数现代桌面和移动操作系统都内置了DNS客户端,使网页浏览器可以与DNS服务器进行交互。有关更多信息,请参见客户端–服务器模型

DNS服务器如何解决DNS查询?

在没有任何高速缓存的典型DNS查询中,有四个服务器协同工作以将IP地址传递给客户端:递归解析器,根域名服务器,TLD顶级域名服务器和权威域名服务器。

DNS递归器(也称为DNS解析器)是一台服务器,它从DNS客户端接收查询,然后与其他DNS服务器进行交互以查找正确的IP。解析器收到来自客户端的请求后,实际上就充当客户端本身,查询其他三种类型的DNS服务器以搜索正确的IP。

DNS Lookup

首先,解析器查询根域名服务器。根域名服务器是将人类可读域名转换(解析)为IP地址的第一步。然后,根服务器使用存储其域信息的顶级域(TLD)DNS服务器(例如.com或.net)的地址响应解析器。

接下来,解析器查询TLD服务器。 TLD服务器以域的权威名称服务器的IP地址进行响应。然后,递归查询器查询权威名称服务器,该服务器将使用源站的IP地址进行响应。

解析器最终将源站IP地址传递回客户端。然后,使用该IP地址,客户端可以直接向源站发起查询,并且源站将通过发送可以由网页浏览器解释和显示的网站数据进行响应。

什么是DNS高速缓存?

除了上述过程,递归解析器还可以使用高速缓存的数据解析DNS查询。在为给定的网站检索了正确的IP地址之后,解析程序将在有限的时间内将该信息存储在其高速缓存中。在此时间段内,如果其他任何客户端发送对该域名的请求,则解析程序可以跳过典型的DNS查找过程,并仅使用保存在缓存中的IP地址来响应客户端。

高速缓存时间限制到期后,解析器必须再次检索IP地址,并在其缓存中创建一个新条目。在每个站点的 DNS记录明确设置了此时间限制,称为生存时间(TTL) 。通常,TTL在24-48小时范围内。 TTL是必需的,因为网页服务器偶尔会更改其IP地址,因此解析器无法无限期地从高速缓存中提供相同的IP。

DNS服务器故障时会发生什么?

DNS服务器可能由于多种原因而发生故障,例如断电、网络攻击和硬件故障。在互联网早期,DNS服务器中断可能会产生相对较大的影响。值得庆幸的是,今天的DNS内置了很多冗余。例如,根DNS服务器和顶级域名服务器的实例很多,大多数ISP为其用户提供了备份的递归解析器。 (个人用户也可以使用公共DNS解析器,例如 CloudFlare的1.1.1.1。 )最受欢迎的网站也有自己的权威域名服务器的多重实例。

在 DNS 服务器严重中断的情况下,备份服务器正在处理的请求量可能会导致某些用户遇到延迟,但需要非常大比例的 DNS 中断才能使很大一部分互联网瘫痪。(2016年还确实发生了这样的事故,当时 DNS 提供商 Dyn 经历了历史上最大的 DDoS 攻击之一)。Cloudflare 提供托管 DNS 服务,附带内置 DNS 安全,旨在保护 DNS 服务器免受攻击以及其他常见的服务器故障源。