主页 topics DNS (域名系统) 什么是 DNS(域名系统)?
深入了解 IBM 的 DNS 解决方案 订阅有关云计算的最新消息
包含电脑显示器、服务器、云朵、点的组合拼贴插图

 

发布日期:2024 年 4 月 19 日
撰稿人:Chrystal R. China、Michael Goodwin

什么是 DNS?

DNS (域名系统) 是互联网标准协议的组成部分,负责将人类友好的域名转换为计算机用于识别彼此的的互联网协议 (IP) 地址。

通常被称为“互联网的电话簿”,一个更现代的类比是 DNS 管理域名的方式与智能手机管理联系人的方式类似。智能手机通过将电话号码存储在易于搜索的联系人列表中,用户无需记住单个电话号码。

同样,DNS 使用户能够使用互联网域名而不是 IP 地址连接到网站。例如,用户不必记住 Web 服务器的 IP 地址是“93.184.216.34”,只需转到网页“www.example.com”,即可获得他们想要的结果。

利用 DaaS 实现工作场所灵活性

了解桌面即服务 (DaaS) 如何帮助企业实现与本地部署应用程序相同水平的性能和安全性。

DNS 的历史

在 DNS 出现之前,互联网是不断增长的计算机网络,主要供学术和研究机构使用。开发人员通过使用名为 HOSTS.TXT 的简单文本文件,手动将主机名映射到 IP 地址。SRI International 维护这些文本文件并将其分发到互联网上的所有计算机。然而,随着网络的扩大,这种方法越来越难以为继。

为了解决 HOSTS.TXT 的局限性并创建更具可扩展性的系统,南加州大学计算机科学家 Paul Mockapetris 于 1983 年发明了域名系统。一批互联网先驱协助创建了 DNS,并撰写了第一份详细说明新系统规范的征求意见稿 (RFC),即 RFC 882 和 RFC 883。RFC 1034 和 RFC 1035 后来取代了早期的 RFC。

最终,随着 DNS 的扩展,DNS 管理成为互联网号码分配机构 (IANA) 的责任,最终于 1998 年由非营利组织互联网名称与数字地址分配机构 (ICANN) 管控。

  

相关内容

注册并获取有关混合云的指南

DNS 服务器的类型

最初,开发人员为 DNS 设计了分层分布式数据库结构,以促进更动态的域名解析方法,这种方法可以与快速扩展的计算机网络保持同步。该层次结构从根级开始,使用点 (.) 表示,然后分支为顶级域 (TLD),比如“.com”、“.org”、“.net”或国家/地区代码 TLD (ccTLD),比如“.uk”和“.jp”,以及二级域名。

DNS 架构包括两种类型的 DNS 服务器,即递归服务器和权威服务器。递归 DNS 服务器是执行“询问”的服务器,搜索将用户连接到网站的信息。

递归服务器

递归服务器,也称为递归解析器或 DNS 解析器,通常由互联网服务提供商 (ISP)、大型企业或其他第三方 DNS 服务提供商管理。它们代表最终用户将域名解析为 IP 地址。递归解析器还会将请求的答案缓存一段时间(由生存时间 (TTL) 值定义),以提高对同一域的未来查询的系统效率。

当用户在搜索浏览器中输入网址时,浏览器会连接到递归 DNS 服务器来解析请求。如果递归服务器恰好缓存了答案,它可以连接用户并完成请求。否则,递归解析器会查询一系列权威 DNS 服务器,以找到 IP 地址并将用户连接到所需网站。

权威服务器

权威服务器给出了“解决方案”。权威域名服务器保存域名的最终记录,并响应有关其各自区域内存储的域名的请求(通常由域名所有者配置答案)。权威域名服务器有多种类型,每种类型在 DNS 层次结构中具有特定功能。

权威 DNS 域名服务器包括:

根域名服务器

根域名服务器位于 DNS 层次结构的顶部,负责管理根区域(DNS 的中央数据库)。它们回答根区域中存储的记录的查询,并将请求送交到相应的 TLD 域名服务器。

有 13 个 IP 地址用于查询 13 个不同的根服务器网络,由字母 A 到 M 标识,这些网络处理 TLD 的请求并将查询定向到适当的 TLD 域名服务器。互联网名称与数字地址分配机构 (ICANN) 负责运营这些根服务器网络。

顶级域名 (TLD) 服务器

TLD 服务器负责管理层次结构的下一级,包括通用顶级域 (gTLD)。TLD 域名服务器将查询定向到其 TLD 中特定域名的权威域名服务器。因此“.com”的 TLD 域名服务器将引导以“.com”结尾的域,而“.gov”的 TLD 域名服务器将引导以“.gov”结尾的域,等等。

域名服务器(二级域名服务器)

域名服务器(有时称为二级域名服务器)保存了具有完整域名的 IP 地址的区域文件,例如“ibm.com”。

DNS 是如何工作的?

DNS 中的每个查询(有时称为 DNS 请求)都遵循相同的逻辑来解析 IP 地址。 当用户输入 URL 时,他们的计算机会逐步查询 DNS 服务器,以定位适当的信息和资源记录,进而响应用户的请求。这个过程会持续进行,直到 DNS 从与该域关联的权威 DNS 服务器找到正确答案。

更具体地说,DNS 中的查询解析涉及多个关键流程和组件。

查询启动

用户在浏览器或应用程序中输入一个域名,比如“ibm.com”,并将请求发送到递归 DNS 解析器。通常,用户的设备具有由互联网服务提供商 (ISP) 提供的预定义 DNS 设置,用于确定客户端查询哪个递归解析器。

递归解析器

递归解析器检查其缓存 - Web 浏览器或操作系统(如 macOS、Windows 或 Linux)中保存先前 DNS 查找的临时存储 - 以查找域的相应 IP 地址。如果递归解析器的缓存中没有 DNS 查找数据,解析器会启动从权威 DNS 服务器(从根服务器开始)检索数据的过程。递归解析器会查询 DNS 层次结构,直到找到最终 IP 地址。

根域名服务器

递归解析器查询根域名服务器,该服务器通过引用相关域的相应 TLD 服务器(在本例中,负责“.com”的 TLD 域名服务器)进行响应。

TLD 域名服务器

解析器查询“.com”TLD 域名服务器,该服务器使用“ibm.com”的权威域名服务器的地址进行响应。此服务器有时被称为二级域名服务器。

域名服务器(二级域名服务器)

解析器查询域的域名服务器,该服务器查找 DNS 区域文件,并使用所提供域名响应正确的记录。

查询解析

递归解析器缓存 DNS 记录(缓存时间由记录的 TTL 指定),并将 IP 地址返回到用户设备。然后,浏览器或应用程序可以使用该 IP 地址发起向主机服务器的连接,以访问所请求的网站或服务。

DNS 区域文件和资源记录

除了主要服务器类型之外,DNS 还使用区域文件和多种记录类型来帮助完成解析过程。区域文件是基于文本的文件,其中包括有关 DNS 区域内域的映射和信息。

区域文件的每一行指定一个 DNS 资源记录(有关特定类型或数据的单条信息)。资源记录确保在用户提交查询时,DNS 可以快速将域名转换为可执行信息,将用户定向到正确的服务器。

DNS 区域文件以两条必填记录开始:全局生存时间 (TTL) 和权威开始(SOA 记录),前者指示记录应如何存储在本地 DNS 缓存中,后者则指定 DNS 区域的主要权威域名服务器。

除了两个主要记录之外,区域文件还可以包含其他几种记录类型,包括:

A 记录和 AAAA 记录

记录映射到 IPv4 地址,AAAA 记录映射到 IPv6 地址。

邮件交换记录(MX 记录)

MX 记录指定域的 SMTP 电子邮件服务器。

规范名称记录(CNAME 记录)

CNAME 记录将主机名从别名重定向到另一个域(“规范域”)。

域名服务器记录(NS 记录)

NS 记录表明域的权威域名服务器。

指针记录(PTR 记录)

PTR 记录指定反向 DNS 查找,将 IP 地址映射回域名。

文本记录(TXT 记录)

TXT 记录指示用于电子邮件身份验证的发件人策略框架记录。

DNS 查询的类型

DNS 查找通常涉及三种类型的查询。递归查询,连接递归服务器和 DNS 客户端,负责完全解析域名或者向用户返回错误信息,通知其无法定位到该域。

迭代查询,连接递归解析器(本地 DNS 服务器)和非本地 DNS 服务器(如根服务器、TLD 或域名服务器),不需要域名解析。相反,服务器可能会使用引用进行响应,其中根服务器将递归解析器引用到 TLD,TLD 将解析器引用到提供答案的权威服务器(如果答案可用)。因此,迭代查询会通过答案或引用来解决。

非递归查询的情况下,递归解析器已经知道在哪里可以找到查询的答案,因此这些查询总是能得到答案。解析器通过查找递归服务器上缓存的答案,或者跳过 DNS 根和 TLD 域名服务器直接转到相应的权威服务器,从而节省时间。例如,如果递归解析器提供了在以前会话中缓存的 IP 地址,则该请求将视为符合非递归查询的条件。

公共 DNS 服务与专用 DNS 服务

在使用 DNS 时,组织拥有一系列选项,包括公共和/或专用 DNS。公共 DNS 和专用 DNS 二者完全不同;要了解如何最佳利用 DNS 来满足组织需求,了解每种类型的功能至关重要。

公共 DNS

公共 DNS 通常是指 DNS 的解析器端,以及用于查询权威域名服务器并将用户连接到网站的递归服务器。

互联网上的任何用户均可访问这些服务器,并且诸如 Cloudflare (1.1.1.1)、Quad9 和 OpenDNS 等这样的公司通常会免费提供这些服务。公共 DNS 服务器由运行它们的组织进行维护。用户和客户端无法控制其操作、策略或配置。

专用 DNS

专用 DNS 通常指 DNS 的权威部分。组织在专用网络中设置专用 DNS 服务器,这些服务器充当权威 DNS 服务器,为内部资源提供 DNS 查找。专用 DNS 服务器位于防火墙后面,仅保存内部站点的记录,因此访问仅限于授权用户、设备和网络。

与公共 DNS 配置不同,专用 DNS 为组织提供对其 DNS 服务器的控制,允许他们定制 DNS 记录,应用内部命名方案并强制执行特定的安全策略。这也意味着组织负责维护基础设施,无论它是托管在本地数据中心还是通过云服务

什么是托管 DNS?

托管 DNS 解决方案本质上是将服务器管理和编排过程外包。使用托管系统时,DNS 提供商处理组织 DNS 服务器的所有配置、维护和安全协议,客户端使用提供商基础设施来管理域名。在这种情况下,当用户输入企业的 URL 时,它们会从公司域名服务器重定向到提供商的服务器,后者会获取所有资源并响应用户。

托管 DNS 还可以提供专用 DNS、全局服务器负载均衡、运行时间保证、API 优先架构、DNSSEC 支持、全球任播网络、加速传播时间、监控和运行状况检查工具、DDoS 防护等服务和优势。

DNS 安全风险

大多数现代 DNS 服务器在安全性方面都相当可靠,即使是公共 DNS 也是如此。但是,最好的 DNS 系统仍然容易受到网络安全问题的影响。某些类型的攻击针对 DNS 的授权端,而其他类型的攻击则针对递归端。这些攻击包括:

DNS 欺骗

DNS 欺骗,也称为缓存投毒,在攻击者将虚假地址记录插入 DNS 解析器的缓存时发生,会导致解析器返回错误的 IP 地址,并将用户重定向到恶意站点。欺骗可能会危及敏感数据,并导致网络钓鱼攻击和恶意软件分发。

DNS 放大攻击

DNS 放大是一种分布式拒绝服务 (DDoS) 攻击,攻击者向 DNS 服务器发送小型查询,将其返回地址伪装为受害者的 IP 地址。这些攻击利用 DNS 协议的无状态特性,并利用小型查询生成超大响应的事实。

放大攻击的结果是,DNS 服务器会发出更大的响应,导致用户面临更大的流量,从而使其资源不堪负重。这可能会阻止 DNS 正常工作,并导致应用程序崩溃。

DNS 隧道

DNS 隧道是一种通过在 DNS 查询和响应中封装非 DNS 流量(如 HTTP)来绕过安全措施的技术。攻击者可以使用 DNS 隧道中继恶意软件命令或从受损网络中窃取数据,通常在 DNS 查询和响应中编码有效载荷以避免检测。

域名劫持

当攻击者未经授权访问域名注册商账户并更改域名注册详细信息时,就会发生域名劫持。劫持使恶意行为者能够将流量重定向到恶意服务器、拦截电子邮件,并以其他方式控制用户的在线身份。

子域接管

指向已停用服务的子域中被忽视的 DNS 条目是攻击者的主要目标。如果某项服务(比如云主机)已经停用,但 DNS 条目仍然存在,那么攻击者就有可能获取该子域并在其位置建立恶意网站或服务。

DNS 安全最佳实践

无论组织选择哪种 DNS 服务,实施安全协议最小化 DNS 攻击面、缓解潜在安全问题并优化网络进程中的 DNS 都是明智之举。加强 DNS 安全性的一些有用做法包括:

  • 部署 DNS 安全扩展 (DNSSEC) 和虚拟专用网络 (VPN):DNSSEC 通过要求对 DNS 响应进行数字签名来为 DNS 查找增加一层安全性。具体来说,DNSSEC 可以通过验证请求的来源并验证 DNS 数据的完整性来防止 DNS 欺骗攻击。

    VPN 通过使用加密来隐藏 IP 地址,使位置和浏览历史数据(以及其他数据)无法追踪,从而提供保密性。

  • 采用速率限制实践:DNS 服务器上的速率限制可以通过在指定时间段内对单个请求者发送响应的数量或速率来缓解 DDoS 攻击。

  • 要求域名注册商进行双因子身份验证 (2FA):为域名注册商帐户建立 2FA 可以使攻击者更难以未经授权地访问服务器,并降低域名劫持的风险。

  • 使用冗余:在多个地理位置分散的服务器上部署 DNS 的冗余配置,有助于在发生攻击或中断时确保网络可用性。如果主服务器出现故障,辅助服务器可以接管 DNS 解析服务。

  • 实施 DNS 刷新:定期清除 DNS 缓存会从本地系统中删除所有条目,这对于删除可能将用户重定向到恶意站点的无效或受损 DNS 记录非常有用。

  • 随时了解 DNS 威胁。攻击者和安全威胁的演变方式与它们入侵的系统类似。及时了解最新的 DNS 漏洞和威胁可以帮助团队保持领先地位,应对恶意行为者。
相关解决方案
IBM NS1 Connect

IBM NS1 Connect 通过优质 DNS 和高级可定制流量导向,为世界各地的用户提供快速、安全的连接。始终在线、API 优先的架构支持 IT 团队更高效地监控网络、部署变更和进行日常维护。

深入了解 IBM NS1 Connect
使用 IBM NS1 Connect 实现 DNS 可观察性

基于 IBM® NS1 Connect DNS Insights 中 DNS 可观测性数据,生成定制实时报告,快速识别配置错误和安全问题。

使用 IBM NS1 Connect 深入了解 DNS 可观察性
IBM Cloud DNS Services

IBM Cloud DNS Services 提供了公共和私有授权 DNS 服务,它们具有响应快捷、冗余无可比拟和高级安全性等特点,可通过 IBM Cloud Web 界面或 API 进行管理。

深入了解 IBM Cloud DNS 服务
采取后续步骤

IBM NS1 Connect 通过优质 DNS 和高级可定制流量导向,为世界各地的用户提供快速安全的连接。NS1 Connect 采用 API 优先架构,支持 IT 团队更高效地监控网络、部署变更、进行日常维护。

深入了解 NS1 Connect 预约实时演示