域名系统(DNS)入门
学习通过 DNS 将域名转换为 IP 地址。
DNS 的起源
我们可以考虑一个移动电话的例子,在这个例子中,每个用户都与唯一的号码相关联。为了给朋友打电话,我们可以最初尝试记住一些电话号码。然而,随着联系人数量的增加,我们将不得不使用电话簿来跟踪所有联系人。这样,每当我们需要打电话时,我们会参考电话簿并拨打我们需要的号码。
类似地,计算机通过 IP 地址进行唯一标识,例如 104.18.2.119
就是一个 IP 地址。我们使用 IP 地址访问托管在计算机上的网站。由于人类不能轻易地记住 IP 地址以访问域名(例如 educative.io
),我们需要一个类似电话簿的存储库来维护所有域名到 IP 地址的映射。在本章中,我们将看到 DNS 是互联网电话簿。
使用电话簿类比理解域名系统(DNS)
什么是DNS?
域名系统(DNS) 是互联网的命名服务,将人类友好的域名映射到机器可读的 IP 地址。DNS 服务对用户透明。当用户在浏览器中输入域名时,浏览器必须通过询问 DNS 基础设施将域名转换为 IP 地址。一旦获取所需的 IP 地址,用户的请求将转发到目标 Web 服务器。
下面的幻灯片展示了 DNS 工作的高级流程:
用户通过在浏览器中输入其 URL 请求访问网站
浏览器请求 ISP 转发 DNS 查询以解决对 IP 地址的请求
ISP 将 DNS 查询转发到 DNS 基础设施
DNS 基础设施响应域名匹配到的 IP 地址列表
IP 地址到达浏览器
浏览器在接收到的 IP 地址上发送 HTTP 请求
ISP 将 HTTP 请求转发到 Web 服务器
整个操作非常快速。因此,终端用户经历最小的延迟。我们将在下一课中看到浏览器如何保存一些常用的映射以供以后使用。
重要细节
让我们强调一些关于 DNS 的重要细节,其中一些我们将在下一课中涵盖:
- 名称服务器: 理解 DNS 不是单个服务器而是由众多服务器组成的完整基础设施很重要。响应用户查询的 DNS 服务器称为 名称服务器。
- 资源记录: DNS 数据库以资源记录(RR)的形式存储域名与 IP 地址的映射。RR 是用户从名称服务器请求的最小信息单元。有不同类型的 RR。下表描述了常见的 RR。三个重要的信息是 类型,名称 和 值。根据 RR 的 类型,名称 和 值 会发生变化。
常见的资源记录类型
类型 描述 名称 值 示例 (类型,名称,值) A 提供主机名到 IP 地址的映射 主机名 IP 地址 (A, relay1.main.educative.io,104.18.2.119) NS 提供域名的权威 DNS 的主机名 域名 主机名 (NS, educative.io, dns.educative.io) CNAME 提供别名到规范主机名的映射 主机名 规范主机名 (CNAME, educative.io, server1.primary.educative.io) MX 提供邮件服务器从别名到规范主机名的映射 主机名 规范主机名 (MX, mail.educative.io, mailserver1.backup.educative.io) - 缓存: DNS 在不同层使用缓存以减少用户请求的延迟。缓存在减少 DNS 基础设施负担方面发挥了重要作用,因为它必须应对整个互联网的查询。
- 层次结构: DNS 名称服务器呈分层形式。分层结构允许 DNS 在不断增大的大小和查询负载下具有高度可扩展性。在下一课中,我们将了解如何使用树状结构来管理整个 DNS 数据库。
让我们在下一课中探索以上观点的更多细节,以获得更清晰的理解。