乐趣区

关于后端:DNS域名解析服务

DNS

DNS: 域名零碎(DNS)是互联网基础设施的重要组成部分。它负责将人类可读的域名映射到 IP 地址,使用户能够应用易记的名称拜访网站和其余互联网资源,而不是一串数字。本技术文档将提供 DNS 零碎的全面概述,包含其设计、实现和运作。

为什么会呈现 DNS 服务

  • DNS 服务的呈现是为了解决人类和计算机在进行网络通信时所应用的标识符(IP 地址和域名)之间的映射问题。
  • 在 DNS 呈现之前,零碎通过一个叫 hosts 的文件,实现主机名转换 IP 地址的性能。hosts 文件包含主机名和 IP 地址的对应关系。当须要通过主机名拜访主机时,它就会查看本地的 hosts 文件,从文件中找到绝对应的 IP 地址,而后进行报文发送。如果在 hosts 文件中没找到相干信息,则主机拜访失败。然而 hosts 文件是保护在各个独自的主机上的文件,文件数量开始多了之后,就变得难以保护。
  • 在计算机网络中,数据通信须要应用 IP 地址,这是由 32 位二进制数字组成的标识符。然而,因为 IP 地址是一串数字,对人类来说不太敌对,很难记忆和应用。为了解决这个问题,域名被引入到网络中。域名是一个便于人类记忆的标识符,比方 www.example.com。然而,为了使计算机可能辨认和应用域名,须要将其解析为相应的 IP 地址。

DNS 解析流程

  • 当用户输出一个网址时,操作系统会首先查看本地的 DNS 缓存中是否有该域名的 IP 地址记录,如果有,则间接返回对应的 IP 地址。

    • 如果本地 DNS 缓存中没有该域名的 IP 地址记录,则进行以下查问过程:
    • 用户计算机向本地 DNS 服务器发送 DNS 查问申请。如果本地 DNS 服务器缓存中有该域名的 IP 地址记录,则返回该记录。
    • 如果本地 DNS 服务器缓存中没有该域名的 IP 地址记录,则向根 DNS 服务器发动查问申请。
    • 根 DNS 服务器会返回一个指向该域名所在的顶级域(例如.com、.net 等)的 DNS 服务器地址。
    • 本地 DNS 服务器向指向的顶级域 DNS 服务器发动查问申请。顶级域 DNS 服务器会返回一个指向该域名所在的下一级 DNS 服务器的地址。
    • 本地 DNS 服务器持续向指向的下一级 DNS 服务器发动查问申请,直到查问到该域名对应的 IP 地址记录。
      查问后果会被缓存到本地 DNS 服务器中,以供当前应用。

整个查问过程可能波及多个 DNS 服务器之间的交互,所以 DNS 查问的速度受到网络提早等多种因素的影响。

DNS 查问的类型

  • 递归 DNS 查问是产生在递归服务器和客户端之间的查问。提供的答案要么是全名解析,要么是一条谬误音讯,指出找不到该名称。递归查问以答案或谬误完结。
  • 迭代 DNS 查问产生在递归解析器(本地 DNS 服务器)和非本地名称服务器(如根、TLD 和权威名称服务器)之间。迭代查问不须要名称解析;名称服务器可能会用举荐来响应。根服务器将递归服务器援用到 TLD,TLD 将其援用到权威服务器。权威服务器将域名提供给递归服务器(如果有的话)。迭代查问以答案或举荐的模式解决。
  • 非递归查问是那些递归解析器曾经晓得从哪里失去答案的查问。答案要么缓存在递归服务器上,要么递归服务器晓得跳过根和 TLD 服务器并间接转到特定的权威服务器。它是非递归的,因为不须要——因而也不须要——进行任何更多的查问。非递归查问在答案中解析。如果递归解析器缓存了前一个会话的 IP 地址,并在下一个申请时提供该地址,这被认为是非递归查问。

在根本的 DNS 过程中,客户端对递归解析器进行递归查问,而后递归解析器进行一系列迭代查问,从而援用下一个迭代查问。最终,查问达到权威服务器,如果递归解析器晓得它将在那里找到答案,则该服务器会进行非递归查问以检索它。而后信息存储在递归解析器上.

常见的 DNS 记录

DNS 记录是查问查找的信息。依据查问、客户端或应用程序,须要不同的信息。有些记录是必须的,比方 A 记录。
有许多 DNS 记录类型,每种类型都有本人的目标,示意应如何解决查问。常见的 DNS 记录如下:

  • A 记录。这代表地址并蕴含域的 IP 地址。A 记录仅实用于 IPv4 地址。IPv6 地址有 AAAA 记录,它应用更长的 IPv6 地址格局。大多数网站只有一个 A 记录,但一些较大的站点有多个 A 记录,这有助于通过为流量大的不同用户提供不同的 A 记录来实现负载平衡。
  • NS 记录。这些名称服务器记录示意哪个权威服务器负责领有无关给定域的所有信息。通常,域同时具备次要和备用名称服务器以进步可靠性,并且应用多个 NS 记录将查问定向到它们。
  • TXT 记录。TXT 记录使管理员可能将文本输出 DNS。最后的目标是在 DNS 中搁置人类可读的正文,但明天,机器可读的正文常常放在那里。TXT 记录用于确认域所有权、爱护电子邮件和反垃圾邮件。
  • CNAME 记录。当有别名时,应用标准名称记录而不是 A 记录。它们用于重试具备两个不同域的雷同 IP 地址的查问。例如,在 URL searchsecurity.techtarget.com 中,CNAME 将查问 techtarget.com。

DNS 域名构造

域名服务器

  • 根域名服务器:根域名服务器是最高档次的域名服务器,也是最重要的域名服务器。根域名服务器晓得所有顶级域名服务器的域名和 IP 地址。如果本地域名服务器无奈对域名进行解析,就首先求助于根域名服务器。
  • 顶级域名服务器:顶级域名服务器负责管理在该服务器注册的所有二级域名。当收到 DNS 查问申请时,就给出相应的答复(可能是最初的后果,也可能是下一步须要查问的域名服务器的 IP 地址)。
  • 权威域名服务器:这就是后面曾经讲过的负责一个区的域名服务器。当一个权限域名服务器还不能给出最初的查问答复时,就会告知收回查问申请的 DNS 客户,下一步该当找哪一个权威域名服务器。
  • 本地域名服务器:本地域名服务器并不属于下图中的树状构造的 DNS 域名服务器,然而它对域名零碎十分重要。当一个主机收回 DNS 查问申请时,这个查问申请报文就发送给本地域名服务器。每一个互联网服务提供者 ISP 都能够领有一个本地域名服务器。

传统 DNS 存在哪些问题

  • DNS 缓存净化问题:DNS 服务器会将查问到的后果缓存到本地,以便下次查问时能够疾速响应。然而,这也容易导致 DNS 缓存净化的问题,即攻击者能够通过坑骗 DNS 服务器,让其缓存谬误的域名解析后果,导致用户被重定向到谬误的网站上。
  • DNS 劫持问题:DNS 劫持是指攻击者通过坑骗 ISP 或者用户的 DNS 服务器,将用户申请的域名解析到歹意的 IP 地址上。这种攻击方式能够导致用户被重定向到歹意网站上,从而受到进一步攻打。
  • DNS 提早问题:因为 DNS 查问须要多个服务器之间的交互,可能会导致查问提早较高,影响用户体验。

为了解决这些问题,一些新的技术和协定曾经被提出来,例如 DNSSEC、DNS-over-HTTPS(DoH)和 DNS-over-TLS(DoT)等,这些技术能够增强 DNS 的安全性和性能。

  • DNSSEC(Domain Name System Security Extensions)是一种用于加强 DNS 安全性的扩大协定。它通过数字签名和公钥加密等技术,确保 DNS 解析过程中的数据完整性和身份验证。DNSSEC 可能避免 DNS 缓存净化、DNS 劫持等攻打,保障 DNS 服务器和客户端之间的通信安全。
  • DNS-over-HTTPS(DoH)是一种应用 HTTPS 加密协议进行 DNS 查问的机制。DoH 能够将 DNS 查问数据加密,避免第三方窃取和篡改,从而加强 DNS 的安全性。同时,DoH 还能够通过防止 ISP 的限度,进步 DNS 查问的速度和稳定性。
  • DNS-over-TLS(DoT)也是一种应用加密协议进行 DNS 查问的机制。与 DoH 相似,DoT 也可能爱护 DNS 查问数据的机密性,同时还可能爱护数据完整性和身份验证,加强 DNS 的安全性。不同的是,DoT 应用 TLS 协定进行加密,因而它能够在 TCP 级别上提供更牢靠的爱护,并且更容易被墙掉的 ISP 解除。

DoH 的工作模式

DoH 其实就是,不走传统的 DNS 解析,而是本人搭建基于 HTTP 协定的 DNS 服务器集群,散布在多个地点和多个运营商。当客户端须要 DNS 解析的时候,间接通过 HTTP 协定进行申请这个服务器集群,失去就近的地址。

这就相当于每家基于 HTTP 协定,本人实现本人的域名解析,本人做一个本人的地址簿,而不应用对立的地址簿。然而默认的域名解析都是走 DNS 的,因此应用 DoH 须要绕过默认的 DNS 门路,就不能应用默认的客户端。应用 DoH 的,往往是手机利用,须要在手机端嵌入反对 DoH 的客户端 SDK。通过本人的 DoH 服务器和本人的 SDK,实现了域名到 IP 的查问。

文档参考

  • DNS 解析的过程是什么
退出移动版