You need to enable JavaScript to run this app.
导航

工作原理

最近更新时间2023.07.06 14:45:54

首次发布时间2022.04.25 16:02:09

本文档介绍了火山引擎云解析(DNS)的工作原理。

云解析 DNS 如何进行 DNS 解析

DNS 解析过程从客户端发起 DNS 域名解析请求开始,到客户端获取到域名的 IP 地址结束。例如,当用户在浏览器中输入 www.example.com 并按回车后,域名解析就开始了。本文假设云解析 DNS 为 www.example.com 提供了权威域名解析服务。

  1. 操作系统检查本地的 hosts 文件中是否有 www.example.com 的解析记录。如果操作系统在 hosts 文件中找到了 www.example.com 的解析记录,就会使用该解析记录中的 IP 地址。此时,DNS 解析完成。

    说明

    • 一般情况下,操作系统会首先检查本地的 hosts 文件。但是,这个顺序并不是绝对的。操作系统也可能会首先查询本地 DNS 缓存。
    • Windows 的 hosts 文件在 %Windir%\System32\drivers\etc 目录中,macOS 和 Linux 的 hosts 文件在 /etc 目录中。
  2. 如果 hosts 文件中没有 www.example.com 的解析记录,操作系统会查找本地 DNS 缓存。如果操作系统在本地 DNS 缓存中找到了解析记录,就会使用该解析记录中的 IP 地址。此时,DNS 解析完成。
  3. 如果本地 DNS 缓存中没有 www.example.com 的解析记录,操作系统会向 Local DNS 服务器发起域名解析请求。
  4. Local DNS 服务器查询缓存。如果 Local DNS 在缓存中找到了 www.example.com 的解析记录,就会返回该解析记录中的 IP 地址。此时,DNS 解析完成。
  5. 如果 Local DNS 服务器上的缓存中没有 www.example.com 的解析记录,Local DNS 服务器会向根 DNS(root DNS)服务器发起 .com 域的解析请求。
  6. 根 DNS 服务器将对应的顶级域 DNS 服务器的 IP 地址返回给 Local DNS 服务器。该顶级域 DNS 服务器解析 .com 域。
  7. Local DNS 服务器向该顶级域 DNS 服务器发起 example.com 域的解析请求。
  8. 顶级域 DNS 服务器将对应的权威 DNS 服务器的 IP 地址返回给 Local DNS 服务器。该权威 DNS 服务器解析 example.com 域。在本文中,example.com 域对应的权威 DNS 服务器是云解析 DNS 提供的。
  9. Local DNS 服务器向该权威 DNS 服务器发起解析请求。
  10. 权威 DNS 服务器将 www.example.com 的 IP 地址返回给 Local DNS 服务器。
  11. Local DNS 服务器将结果返回给用户的操作系统。此时,DNS 解析完成。

操作系统将结果返回给浏览器。浏览器向 www.example.com 的 IP 地址发送 HTTP 请求。然后,用户就看到了网站的页面内容。

操作系统向 Local DNS 服务器请求域名解析的过程使用的是递归查询。Local DNS 服务器向各域名服务器请求各级域的解析过程使用的是迭代查询。

alt

云解析 DNS 如何通过 ECS 协议获取用户所在的 IP 地址段

如果您为某条解析记录配置了运营商线路、地理位置线路或自定义线路,云解析 DNS 优先使用解析请求中的 ECS 协议 信息所包含的客户端 IP 地址段来匹配线路。

如果 Local DNS 服务器支持 ECS 协议

如果 Local DNS 服务器支持 ECS 协议,Local DNS 服务器向云解析 DNS 发送的解析请求中带有 ECS 协议信息。云解析 DNS 会使用解析请求中的 ECS 协议信息所包含的客户端 IP 地址段来匹配线路。

如果 Local DNS 服务器不支持 ECS 协议

在互联网上,部分 Local DNS 服务器不支持 ECS 协议。如果 Local DNS 服务器不支持 ECS 协议,Local DNS 服务器向云解析 DNS 发送的解析请求中没有 ECS 协议信息。云解析 DNS 会使用数据包中的客户端 IP 地址来匹配线路。这些客户端 IP 地址大部分是 Local DNS 服务器的出口 IP 地址。