本文档介绍了火山引擎云解析(DNS)的工作原理。
DNS 解析过程从客户端发送 DNS 查询请求开始,到客户端获取到域名的 IP 地址结束。例如,当用户在浏览器中输入 www.example.com
并按回车后,域名解析就开始了。本文假设云解析 DNS 为 www.example.com
提供了权威域名解析服务。
www.example.com
的解析记录。如果操作系统在 hosts
文件中找到了 www.example.com
的解析记录,就会使用该解析记录中的 IP 地址。此时,DNS 解析完成。说明
%Windir%\System32\drivers\etc
目录中,macOS 和 Linux 的 hosts 文件在 /etc
目录中。hosts
文件中没有 www.example.com
的解析记录,操作系统会查找本地 DNS 缓存。如果操作系统在本地 DNS 缓存中找到了解析记录,就会使用该解析记录中的 IP 地址。此时,DNS 解析完成。www.example.com
的解析记录,操作系统会向递归 DNS 服务器发起 DNS 查询请求。递归 DNS 服务器可以是运营商维护的 Local DNS 服务器,也可以是公共 DNS 服务器。www.example.com
的解析记录,就会返回该解析记录中的 IP 地址。此时,DNS 解析完成。www.example.com
的解析记录,递归 DNS 服务器会向根 DNS(root DNS)服务器发起 .com 域的 DNS 查询请求。.com
域。example.com
域的 DNS 查询请求。example.com
域。在本文中,example.com
域对应的权威 DNS 服务器是云解析 DNS 提供的。www.example.com
的 IP 地址返回给递归 DNS 服务器。www.example.com
的 DNS 查询请求,递归 DNS 服务器会直接返回缓存的结果。操作系统将结果返回给浏览器。浏览器向 www.example.com
的 IP 地址发送 HTTP 请求。然后,用户就看到了网站的页面内容。
操作系统向递归 DNS 服务器请求域名解析的过程使用的是递归查询。递归 DNS 服务器向各域名服务器请求各级域的解析过程使用的是迭代查询。
如果您为某条解析记录配置了运营商线路、地理位置线路或自定义线路,云解析 DNS 优先使用 DNS 查询请求中的 ECS 协议 信息所包含的被截断的客户端 IP 地址来匹配线路。
如果 Local DNS 服务器支持 ECS 协议,Local DNS 服务器向云解析 DNS 发送的 DNS 查询请求中带有 ECS 协议信息。云解析 DNS 会使用 DNS 查询请求中的 ECS 协议信息所包含的客户端 IP 地址段来匹配线路。
在互联网上,部分 Local DNS 服务器不支持 ECS 协议。如果 Local DNS 服务器不支持 ECS 协议,Local DNS 服务器向云解析 DNS 发送的 DNS 查询请求中没有 ECS 协议信息。云解析 DNS 会使用数据包中的客户端 IP 地址来匹配线路。这些客户端 IP 地址大部分是 Local DNS 服务器的出口 IP 地址。