从 www.google.com 到 172.217.5.253:DNS 的魔力

Image description

1. DNS 简介

  • DNS 的用途:DNS(域名系统)将人类可读的域名(例如 www.google.com)转换为计算机用于通过互联网进行通信的 IP 地址(例如 172.217.5.253)。
  • DNS 在浏览器请求中的作用:当您在浏览器中输入 www.google.com 时,浏览器不会直接使用域名建立 TCP 连接。而是使用与该域名关联的 IP 地址。
  • 2. DNS 记录和区域

  • DNS 记录:这些是将域名映射到 IP 地址或其他资源的键值对。A 记录:将域名映射到 IPv4 地址(例如,www.google.com -> 172.217.5.253)。CNAME 记录:将域名映射到另一个域名(例如,www.google.com -> cname.google.com)。MX 记录:指定负责代表域接受电子邮件消息的邮件服务器。TXT 记录:用于文本数据,通常用于 SPF、DKIM 等。
  • DNS 区域:DNS 区域包含特定域名(例如 google.com)的 DNS 记录。它由权威名称服务器管理。
  • 托管区域:在 AWS Route 53 等服务中,托管区域是特定域的 DNS 记录的集合。
  • 3. 权威域名服务器

  • 角色:权威名称服务器负责存储和提供特定区域的 DNS 记录。
  • 例如:如果 ns1.google.com 是 google.com 的权威名称服务器,则查询时它将提供 www.google.com 的 IP 地址。
  • 多个名称服务器:域通常具有多个权威名称服务器,以实现冗余和容错。
  • 4. DNS 解析器

  • 角色:DNS 解析器负责代表客户端(例如,您的浏览器)发起和管理 DNS 查询过程。
  • 位置:DNS 解析器可以位于 ISP 级别、路由器上,甚至是本地机器上。
  • 热门公共 DNS 解析器:Google DNS:8.8.8.8 和 8.8.4.4 Cloudflare DNS:1.1.1.1
  • 缓存:DNS 解析器缓存 DNS 记录以提高解析速度并减少权威名称服务器的负载。
  • Image description

    5.DNS解析过程

  • 逐步解决:客户端请求:您的浏览器向 DNS 解析器(例如,您的路由器)发送 DNS 查询。DNS 解析器检查缓存:如果 www.google.com 的 IP 地址已缓存,则立即返回。根名称服务器:如果未缓存,解析器将查询 13 个根名称服务器之一(例如,a.root-servers.net)。任播:根名称服务器使用任播在具有相同 IP 地址的多个物理服务器之间分发查询。TLD 名称服务器:根名称服务器使用 .com 的 TLD(顶级域)名称服务器的 IP 地址进行响应。权威名称服务器:TLD 名称服务器使用 google.com 的权威名称服务器的 IP 地址进行响应。DNS 记录检索:google.com 的权威名称服务器提供 www.google.com 的 IP 地址。解析器缓存并返回 IP:解析器缓存 IP 地址并将其返回给客户端。 TCP 连接建立:浏览器使用 IP 地址与服务器建立 TCP 连接。
  • 6. DNS 的层次结构

  • 根名称服务器:13 个逻辑定义的根名称服务器,构成 DNS 层次结构的根。
  • TLD 名称服务器:处理特定 TLD 内的域名(例如 .com、.org、.net)。
  • 权威名称服务器:处理特定区域内的域(例如,google.com)。
  • 7. DNS 中的任播

  • 定义:任播是一种网络技术,其中单个 IP 地址在不同位置的多个服务器之间共享。
  • 优点:负载分配:查询被分配到最近的服务器。容错:如果一台服务器发生故障,查询将被路由到具有相同 IP 地址的另一台服务器。
  • 8. DNS 缓存

  • 解析器缓存:DNS 解析器在一定时期内(TTL - 生存时间)缓存 DNS 记录。
  • 客户端缓存:客户端(例如浏览器)也会缓存 DNS 记录,以减少 DNS 查询的次数。
  • TTL:DNS 记录在需要刷新之前被缓存的时间。
  • Image description

    9. DNS 解析示例

  • 场景:将 www.google.com 解析为 IP 地址。
  • 流程:客户端查询:浏览器请求 www.google.com。解析器查询:解析器查询根名称服务器。根名称服务器响应:指向 .com TLD 名称服务器。TLD 名称服务器响应:指向 ns1.google.com(google.com 的权威名称服务器)。权威名称服务器响应:提供 www.google.com 的 IP 地址。解析器缓存 IP:解析器缓存 IP 地址并将其返回给客户端。TCP 连接:浏览器连接到 IP 地址。
  • 结论

    DNS 解析过程是互联网的重要组成部分,可将人类可读的域名转换为机器可读的 IP 地址。了解 DNS 解析器、权威名称服务器和 DNS 的层次结构对于管理和解决与 DNS 相关的问题至关重要。使用任播和缓存机制可确保 DNS 解析既高效又可扩展。

    更多资源:

  • https://www.cloudflare.com/learning/dns/what-is-dns/
  • https://www.geeksforgeeks.org/working-of-domain-name-system-dns-server/
  • https://aws.amazon.com/route53/what-is-dns/
  • https://howdns.works/
  • https://www.youtube.com/watch?v=g_gKI2HCElk 谢谢阿皮特! :)