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域名解析服务_第1张图片
      整个查询过程可能涉及多个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域名解析服务_第2张图片

传统 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解析的过程是什么

你可能感兴趣的:(服务器,网络,运维)