Menu Close

DNS

域名系统 (DNS) 是互联网电话簿。人们通过例如 nytimes.com 或 espn.com 等域名在线访问信息。Web 浏览器通过 互联网协议 (IP) 地址进行交互。DNS 将域名转换为 IP 地址,以便浏览器能够加载互联网资源。DNS(Domain Name System域名系统)是互联网的核心基础设施之一,它的主要作用是将人类可读的域名(如 www.example.com)转换为机器可读的 IP 地址(如 192.0.2.12001:db8::1),从而实现网络通信。

连接到互联网的每个设备都有一个唯一 IP 地址,其他计算机可使用该 IP 地址查找此设备。DNS 服务器使人们无需存储例如 192.168.1.1(IPv4 中)等 IP 地址或更复杂的较新字母数字 IP 地址,例如 2400:cb00:2048:1::c629:d7a2(IPv6 中)。

DNS 放大镜检查 IP 地址,查找 www.example.com

DNS 的基本功能

  • 域名解析:将域名转换为 IP 地址(正向解析),也可以将 IP 地址转换为域名(反向解析)。
  • 分布式数据库系统:DNS 并不是一个集中式数据库,而是一个层级式、分布式的命名系统
  • 提高访问效率:通过本地缓存、CDN 节点和智能解析,使用户访问速度更快。
  • 负载均衡与容灾:通过返回不同 IP 地址,实现多个服务器的负载分担。

DNS 如何工作?

当你在浏览器中输入 www.example.com,浏览器背后会发生如下步骤:

  1. 浏览器缓存:浏览器先查看自己是否有该域名的 IP 地址缓存,有就直接使用。
  2. 操作系统缓存:如果浏览器没命中,它会请求操作系统缓存。
  3. 本地域名服务器(递归解析器):若操作系统也没有,它会向配置的 DNS 服务器(如 114.114.114.114)发起请求。
  4. 根域名服务器:若本地 DNS 服务器没有结果,会先问“根 DNS 服务器”。
  5. 顶级域名服务器(TLD):根服务器告诉它 .com 的服务器地址。
  6. 权威域名服务器:TLD 服务器告诉它 example.com 的权威 DNS 地址。
  7. 最终解析:本地 DNS 向 example.com 的权威服务器请求 www.example.com 的 IP 地址。
  8. 返回并缓存结果:IP 地址被返回给浏览器,并被本地 DNS 服务器缓存以提高下次访问速度。

DNS 解析过程涉及将主机名(例如 www.example.com)转换为计算机友好的 IP 地址(例如 192.168.1.1)。互联网上的每个设备都被分配了一个 IP 地址,必须有该地址才能找到相应的互联网设备 – 就像使用街道地址来查找特定住所一样。当用户想要加载网页时,用户在 Web 浏览器中键入的内容(example.com)与查找 example.com 网页所需的机器友好地址之间必须进行转换。

为理解 DNS 解析过程,务必了解 DNS 查询必须通过的各种硬件设备。对于 Web 浏览器而言,DNS 查询是“在幕后”发生的,除了初始请求外,不需要从用户的计算机进行任何交互。

加载网页涉及 4 个 DNS 服务器:

1. 递归解析器(Recursive Resolver)

  • 又称为本地 DNS 服务器,通常由你的 ISP(互联网服务提供商)或操作系统配置。
  • 它的职责是代表用户发起查询,层层询问其它 DNS 服务器直到找到最终结果。
  • 会缓存查询结果,提高解析速度。

2. 根DNS服务器(Root DNS Server)

  • 全球共部署了 13 组(A–M)根服务器副本,实际上有上千台分布式节点。
  • 它知道每个顶级域(如 .com.org.cn)的服务器在哪里。
  • 响应本地 DNS 请求,并返回相应 TLD 服务器的地址。

3. 顶级域DNS服务器(TLD DNS Server)

  • 负责管理某一类顶级域(如 .com.net.cn 等)。
  • 告诉本地解析器某个具体域(如 example.com)的权威 DNS 服务器地址

4. 权威DNS服务器(Authoritative DNS Server)

  • 实际存储域名与 IP 地址之间的映射关系
  • 由网站托管方或云服务提供商(如2743、阿里云、Cloudflare、godaddy)负责维护。
  • 返回最终的 IP 地址,供浏览器连接目标网站服务器。

权威性 DNS 服务器与递归 DNS 解析器之间的区别是什么?

这是一个非常关键的问题。**权威 DNS 服务器(Authoritative DNS Server)递归解析器(Recursive Resolver)**在 DNS 系统中扮演着完全不同的角色。

下面从多个维度来对比它们:

一、基本定义

项目 权威 DNS 服务器 递归解析器
角色 提供最终答案 代表用户去查找答案
维护者 域名注册者或云服务商(如 阿里云、Cloudflare 通常是 ISP、企业网关或公共 DNS 提供商(如 Google DNS)
是否存储解析记录 是(正式记录) 否(只做临时缓存)

二、功能对比

功能点 权威 DNS 服务器 递归解析器
是否存储域名的实际解析记录 ✅ 是,存储 A、CNAME、MX 等记录 ❌ 否,只临时缓存查询结果
是否发起其他 DNS 查询 ❌ 否,它是终点,不再向上游查询 ✅ 是,它要逐级向根、TLD 等服务器查找
是否可以缓存结果 ❌ 一般不缓存,是数据源 ✅ 是,为加快后续访问速度会缓存结果
响应内容 返回原始解析数据(权威结果) 返回最终解析结果(可能是缓存,也可能是新查询)

三、举个例子说明

假设用户要访问 www.example.com

  • 递归解析器会代表用户:
    • 先问根 DNS,得到 .com 服务器;
    • 再问 .com,得到 example.com 的权威服务器;
    • 最后问权威服务器,得到 www.example.com 的 IP 地址;
    • 并将结果返回给用户,并缓存它一段时间。
  • 权威 DNS 服务器
    • 只负责回答:“我知道 www.example.com93.184.216.34”;
    • 它不会去根服务器或 TLD 查询任何东西。

四、总结类比

可以类比为:

  • 递归解析器 = 快递员,跑去各个仓库找货物,把最终结果送到你手上。
  • 权威 DNS 服务器 = 最终仓库,它拥有“货物”(IP 地址),等别人来取。

 

DNS记录查询过程
DNS记录查询过程

值得一提的是,在查询对象为子域命(例如 forums.2743.com )的情况下,将向权威性域名服务器之后的序列添加一个附加域名服务器,负责存储该子域的 CNAME 记录。

子域名DNS记录查询过程
域名DNS记录查询过程

DNS 查找有哪些步骤?

大多数情况下,DNS 与正被转换为相应 IP 地址的域名有关。要了解此过程的工作方式,在 DNS 查找从 Web 浏览器经过 DNS 查找过程然后再返回时,跟踪 DNS 查找的路径会有所帮助。我们来看一下这些步骤。

注意:通常,DNS 查找信息将本地缓存在查询计算机内,或者远程缓存在 DNS 基础设施内。DNS 查找通常有 8 个步骤。缓存 DNS 信息时,将从 DNS 查找过程中跳过一些步骤,从而使该过程更快。以下示例概述了不缓存任何内容时的所有 8 个步骤。

DNS 查找的 8 个步骤:

    1. 用户在 Web 浏览器中键入 “example.com”,查询传输到互联网中,并被 DNS 递归解析器接收。
    2. 接着,解析器查询 DNS 根域名服务器(.)。
    3. 然后,根服务器使用存储其域信息的顶级域(TLD)DNS 服务器(例如 .com 或 .net)的地址响应该解析器。在搜索 example.com 时,我们的请求指向 .com TLD。
    4. 然后,解析器向 .com TLD 发出请求。
    5. TLD 服务器随后使用该域的域名服务器 example.com 的 IP 地址进行响应。
    6. 最后,递归解析器将查询发送到域的域名服务器。
    7. example.com 的 IP 地址而后从域名服务器返回解析器。
    8. 然后 DNS 解析器使用最初请求的域的 IP 地址响应 Web 浏览器。

DNS 查找的这 8 个步骤返回 example.com 的 IP 地址后,浏览器便能发出对该网页的请求:

  1. 浏览器向该 IP 地址发出 HTTP 请求。
  2. 位于该 IP 的服务器返回将在浏览器中呈现的网页(第 10 步)。
DNS 查找和网页查询中的 10 个步骤示意图
DNS 查找和网页查询中的 10 个步骤示意图

DNS 查询类型

DNS 查询包括不同类型的记录:

类型 含义
A 域名映射到 IPv4 地址
AAAA 域名映射到 IPv6 地址
CNAME 规范名称(别名)
MX 邮件交换服务器记录
NS 域名服务器记录
TXT 文本记录(如 SPF, DKIM)
PTR 用于反向解析 IP 到域名
SOA 权威信息记录

什么是 DNS 解析器?

DNS 解析器是 DNS 查找的第一站,其负责与发出初始请求的客户端打交道。解析器启动查询序列,最终使 URL 转换为必要的 IP 地址。

注意:典型的未缓存 DNS 查找将涉及递归查询和迭代查询。

务必区分递归 DNS 查询和递归 DNS 解析器。该查询是指向需要解析该查询的 DNS 解析器发出的请求。DNS 递归解析器是一种计算机,其接受递归查询并通过发出必要的请求来处理响应。

DNS 递归查询从 DNS 客户端到 DNS 递归解析器

DNS 查询有哪些类型?

典型 DNS 查找中会出现三种类型的查询。通过组合使用这些查询,优化的 DNS 解析过程可缩短传输距离。在理想情况下,可以使用缓存的记录数据,从而使 DNS 域名服务器能够返回非递归查询。

3 种 DNS 查询类型:

  1. 递归查询 – 在递归查询中,DNS 客户端要求 DNS 服务器(一般为 DNS 递归解析器)将使用所请求的资源记录响应客户端,或者如果解析器无法找到该记录,则返回错误消息。
  2. 迭代查询 – 在这种情况下,DNS 客户端将允许 DNS 服务器返回其能够给出的最佳应答。如果所查询的 DNS 服务器与查询名称不匹配,则其将返回对较低级别域名空间具有权威性的 DNS 服务器的引用。然后,DNS 客户端将对引用地址进行查询。此过程继续使用查询链中的其他 DNS 服务器,直至发生错误或超时为止。
  3. 递归查询 – 当 DNS 解析器客户端查询 DNS 服务器以获取其有权访问的记录时通常会进行此查询,因为其对该记录具有权威性,或者该记录存在于其缓存内。DNS 服务器通常会缓存 DNS 记录,以防止更多带宽消耗和上游服务器上的负载。

什么是 DNS 高速缓存?DNS 高速缓存发生在哪里?

DNS 系统中广泛使用缓存机制,缓存的位置包括:

  • 浏览器缓存
  • 操作系统缓存(如 Linux 中的 nscdsystemd-resolved
  • 本地 DNS 缓存
  • 上游 DNS 服务器缓存

缓存记录的时长由 TTL(Time To Live)指定。

缓存的目的是将数据临时存储在某个位置,从而提高数据请求的性能和可靠性。DNS 高速缓存涉及将数据存储在更靠近请求客户端的位置,以便能够更早地解析 DNS 查询,并且能够避免在 DNS 查找链中进一步向下的额外查询,从而缩短加载时间并减少带宽/CPU 消耗。DNS 数据可缓存到各种不同的位置上,每个位置均将存储 DNS 记录并保存由生存时间(TTL)决定的一段时间。

浏览器 DNS 缓存

现代 Web 浏览器设计为默认将 DNS 记录缓存一段时间。目的很明显;越靠近 Web 浏览器进行 DNS 缓存,为检查缓存并向 IP 地址发出正确请求而必须采取的处理步骤就越少。发出对 DNS 记录的请求时,浏览器缓存是针对所请求的记录而检查的第一个位置。

在 Chrome 浏览器中,您可以转到 chrome://net-internals/#dns 查看 DNS 缓存的状态。

操作系统(OS)级 DNS 缓存

操作系统DNS 解析器是 DNS 查询离开您计算机前的第二站,也是本地最后一站。操作系统内旨在处理此查询的过程通常称为“存根解析器”或 DNS 客户端。当存根解析器获取来自某个应用的请求时,其首先检查自己的缓存,以便查看是否有此记录。如果没有,则将本地网络外部的 DNS 查询(设置了递归标记)发送到互联网服务提供商(ISP)内部的 DNS 递归解析器。

与先前所有步骤一样,当 ISP 内的递归解析器收到 DNS 查询时,其还将查看所请求的主机到 IP 地址转换是否已经存储在其本地持久性层中。

根据其缓存中具有的记录类型,递归解析器还具有其他功能:

  1. 如果解析器没有 A 记录,但确实有针对权威性域名服务器的 NS 记录,则其将直接查询这些域名服务器,从而绕过 DNS 查询中的几个步骤。此快捷方式可防止从根和 .com 域名服务器(在我们对 example.com 的搜索中)进行查找,并且有助于更快地解析 DNS 查询。
  2. 如果解析器没有 NS 记录,它会向 TLD 服务器(本例中为 .com)发送查询,从而跳过根服务器。
  3. 万一解析器没有指向 TLD 服务器的记录,其将查询根服务器。这种情况通常在清除了 DNS 高速缓存后发生。

DNS 的安全问题

  • DNS Spoofing / Cache Poisoning:攻击者伪造 DNS 响应,使用户被重定向。

  • DNS 劫持:ISP 或攻击者截获 DNS 请求,返回错误结果。

  • DNS 放大攻击:用于 DDoS 攻击,利用开放 DNS 服务器对特定目标发送大量流量。

  • 解决方案

    • DNSSEC(DNS 安全扩展):对 DNS 数据进行签名,防止伪造。
    • DoH(DNS over HTTPS)、DoT(DNS over TLS):加密 DNS 查询防止监听。

常用的公共 DNS 服务

服务商 地址 特点
Google DNS 8.8.8.8, 8.8.4.4 快速、稳定
Cloudflare DNS 1.1.1.1, 1.0.0.1 支持 DoH、隐私保护强
阿里 DNS 223.5.5.5, 223.6.6.6 中国用户访问速度快
114 DNS 114.114.114.114 本地化,国内普及度高

Entires个相关

除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!

发表回复