• DNS的作用和工作原理
  • 发布于 2个月前
  • 203 热度
    0 评论
如果明天早上你醒来后,无法再通过输入诸如 baidu.com 或 bilibili.com 之类的名称来访问网站,而是必须记住并输入一系列数字才能上网,比如 172.217.16.206 查看 Gmail,或者 199.181.132.250 来阅读体育新闻,那会变得非常繁琐!

值得幸运的是,在 DNS(域名系统)在背后顺畅运行的情况下,这种互联网的噩梦情景永远不会发生。DNS 是一个至关重要的服务,它有效地将易记的域名与其对应的 IP 地址相匹配,这样我们就可以轻松浏览网页。

在这篇文章中,我们探讨了这个关键的互联网基础设施的复杂工作原理。

DNS 就是互联网的一个地址簿
DNS 是一个分布式和分层次的系统,充当互联网的地址簿。它将域名翻译成 IP 地址,以促进全球范围内设备之间的高效通信。DNS 的主要目的是为用户提供一个方便的方式,使用容易记忆的域名来访问网站和资源,而计算机和服务器在幕后使用 IP 地址进行通信。

DNS 被实现为一个应用层服务。它由位于网络边缘的服务器来实现,而不是网络内部的路由器和交换机。这反映了互联网设计哲学,即将网络核心保持简单,将复杂性放在网络边缘。

DNS 提供的关键服务
DNS 提供了多种不同的服务,以促进互联网的正常运行。以下是我们将要描述的一些 DNS 最重要的服务:

主机到 IP 地址的映射
在计算机和网络领域,主机是指任何连接到网络的设备或计算机系统,它可以是个人计算机、服务器、路由器、智能手机或其他任何可以通过网络进行通信的设备。主机通常具有自己的唯一标识符,称为 IP 地址,用于在网络上识别和寻址它们。DNS 维护着一个域名和其对应 IP 地址的数据库。这种映射对于设备在互联网上相互定位非常重要。

例如,考虑域名"www.duidaima.com"。主机到IP地址的映射涉及确定与该域名关联的IP地址,比如"172.67.21.11"。

主机别名
DNS 支持一种通常称为主机别名的功能,通过 CNAME(规范名称)记录实现。这允许将单个 IP 地址或主要域名与多个域名别名关联起来。例如,考虑主要域名"duidaima.com"。您可能希望您的网站不仅可以通过"duidaima.com"访问,还可以通过各种别名如"www.duidaima.com"、"web.duidaima.com"和"blog.duidaima.com"来访问。通过在DNS中设置适当的CNAME记录,所有这些别名都可以指向主要域名"bytebytego.com"。结果,用户可以使用任何这些域名访问您的网站,都将导向相同的目标IP地址。

电子邮件路由
DNS 在电子邮件路由中发挥了至关重要的作用,通过 MX 记录(邮件交换记录)。这些记录允许域名指定哪些邮件服务器负责代表其接收电子邮件消息。这种机制使电子邮件配置变得灵活多样。

例如,假设指定用于接收"duidaima.com"域的电子邮件的主要邮件服务器是"mail.duidaima.com"。您可能希望拥有特定的电子邮件地址,比如以"@sales.duidaima.com"或"@support.duidaima.com"结尾的地址,但仍然将这些地址的所有传入邮件定向到"mail.bytebytego.com"服务器。通过适当配置 MX 记录,发送到任何这些地址的电子邮件都将路由到指定的主要邮件服务器。

IP 到主机地址的映射
虽然 DNS 主要用于将域名转换为 IP 地址,但它也可以执行反向查找,将 IP 地址转换回域名。这对于安全和日志记录目的很有用

负载均衡
DNS 可以通过返回不同的 IP 地址来响应相同的域名查询,从而在多个服务器之间分配传入的网络流量。这有助于平衡负载,提高在线服务的性能和可靠性。

DNS 层次结构
DNS 作为分布式分层数据库运行。下图显示了 DNS 层次结构的高级视图:

根 DNS 服务器
在 DNS 层次结构的顶部是根服务器。当服务器无法解析一个名称时,会联系根服务器。你可以把它看作是启动解析的第一个接触点。根服务器就像互联网的中枢神经系统,因此安全性非常重要。与根服务器相关的许多基础设施是由 ICANN(互联网名称与数字地址分配机构)负责的。全球有 13 个逻辑根服务器,但实际上,与这 13 个逻辑服务器对应的是全球近千台物理服务器。

顶级域 (TLD) DNS 服务器
从根服务器向下一级移动,我们可以找到 TLD(顶级域)服务器,TLD 层中的每个服务器负责解析以.com、.edu、.net 和.org 等结尾的地址之一。

互联网名称与数字地址分配机构(ICANN)对互联网上使用的所有 TLD 具有管理权,并将这些 TLD 的责任授权给各种组织。对于希望在这些 TLD 下注册新域名的个人或实体,通常会接洽域名注册商,这些注册商是与注册机构接口的认可实体,负责处理注册流程。

权威 DNS 服务器
权威服务器是其特定域内域名解析的权威源。它们存储了给定域的实际名称到 IP 地址的映射关系。虽然互联网上存在各种缓存机制以加速域名解析,但当查询时,权威服务器提供正确且最终的答案。域名所有者或管理员配置其域的记录,但实际的基础设施,即 DNS 服务器,通常由 DNS 托管提供商或注册商(如 Cloudflare、Namecheap、GoDaddy 等)维护和运营。

递归 DNS 服务器(解析器)
递归服务器处理来自客户设备(如计算机和智能手机)的 DNS 查询。当设备希望解析一个域名时,它会联系这些服务器。代表客户端行动的递归服务器遍历 DNS 层次结构,咨询各种 DNS 服务器,以确定与域名关联的 IP 地址。一旦它们获取答案,就会将其返回给客户端。为了提高效率,递归服务器通常会缓存响应,以避免重复查询相同的信息。

DNS 解析的工作原理
DNS 中的查询解析主要有两种方法:
1.迭代查询解析。
2.递归查询解析。
这些方法定义 DNS 服务器如何相互交互以查找与给定域名关联的 IP 地址。以下是每种方法的简要概述。

迭代查询解析
在迭代查询解析中,接收到查询的 DNS 服务器会向查询服务器提供引用,引导它穿越 DNS 层次结构。查询服务器通过根据收到的引用发送后续查询来积极参与这个过程。让我们尝试通过下面示意图中的示例来理解迭代查询解析的工作原理:

假设请求主机正在请求解析名称 duidaima.com。下面是这个过程的展开方式:
1.主机首先向本地 DNS 解析器发送一个查询消息。查询消息包含要转换的主机名 duidaima.com。
2.如果解析器的缓存中没有 IP 地址,它会向根 DNS 服务器发送查询。
3.根 DNS 服务器识别到.com 后缀后,提供一个引用,指向负责.com 的 TLD 服务器。
4.解析器随后向这些 TLD 服务器之一发送新的查询。
5.TLD 服务器提供一个引用,指向负责 duidaima.com 的权威 DNS 服务器。
6.解析器向权威 DNS 服务器发送另一个查询。
7.权威 DNS 服务器回复 duidaima.com 的 IP 地址。
8.DNS 解析器将此 IP 地址缓存,然后将其返回给请求的主机。
9.现在,请求主机向www.duidaima.com网站的IP地址发出HTTP请求。
10.网站服务器返回www.duidaima.com的网页。
这样,整个过程完成了。

递归查询解析
在递归查询解析中,接收到查询的 DNS 服务器承担了代表客户端查找 IP 地址的责任。它可以自己使用迭代查询来浏览 DNS 层次结构,直到达到所请求域的权威 DNS 服务器为止。

让我们使用之前的示例,尝试使用递归查询解析来解析 bytebytego.com 的 IP 地址,如下图所示:

DNS(Domain Name System)的深度解析涉及到 DNS 查询的整个过程,包括递归和迭代查询,以及与根服务器、TLD 服务器和权威 DNS 服务器的交互。下面是 DNS 深度解析的详细步骤:
1.请求开始:假设用户在 Web 浏览器中输入了要访问的网址,比如"www.duidaima.com"。
2.本地 DNS 解析器:首先,用户的设备会向本地 DNS 解析器发送一个 DNS 查询请求,询问要访问的网址的 IP 地址。本地 DNS 解析器通常由 Internet 服务提供商(ISP)提供,也可以是用户设备上配置的公共 DNS 服务器,如 Google DNS 或 OpenDNS。
3.本地 DNS 解析器的缓存:如果本地 DNS 解析器已经缓存了网址的 IP 地址,它会直接返回答案给用户设备,不必进行进一步的查询。如果没有缓存,它将继续进行下一步。
4.递归查询:本地 DNS 解析器将发起一个递归查询,通常向根 DNS 服务器发送查询请求。
5.根 DNS 服务器:根 DNS 服务器是全球 DNS 体系的起点。它不会知道特定域名的 IP 地址,但它会知道哪些 TLD 服务器负责哪些顶级域(比如.com、.org 等)。根 DNS 服务器会将本地 DNS 解析器引导到负责请求域的 TLD 服务器。
6.TLD 服务器:TLD 服务器是负责顶级域的权威服务器,它收到本地 DNS 解析器的查询后,将提供指向该域的权威 DNS 服务器的引用。
7.权威 DNS 服务器:权威 DNS 服务器是负责特定域名的最高级别的服务器。它将解析查询并返回请求的域名的 IP 地址。
8.本地 DNS 解析器的缓存更新:本地 DNS 解析器会将获取的 IP 地址缓存起来,以备将来使用,并将答案返回给用户设备。
9.用户设备的访问:现在,用户设备知道了网址的 IP 地址,它可以开始建立与 Web 服务器的连接,以获取所需的网页或资源。

10.网站服务器的响应:Web 服务器会向用户设备发送所请求网页的内容,用户可以在其浏览器中查看。


这就是 DNS 深度解析的工作方式。它允许用户通过友好的域名来访问网站,而不必记住复杂的 IP 地址。DNS 系统的分层和分布式设计使其能够有效地管理全球范围内数以百万计的域名和 IP 地址的映射关系。

总结
DNS 是互联网的关键基础设施之一,它使我们能够以更友好的方式访问网站和在线资源,同时确保了互联网上的设备能够相互通信。理解 DNS 的工作原理对于网络管理、网站托管和互联网安全都至关重要。
用户评论