本文档介绍火山引擎私网解析(PrivateZone)的工作原理。
私网解析 PrivateZone 可以根据匹配的域名或云产品权威域名响应来自 VPC 或从入站终端节点转发到解析器的 DNS 查询请求,也可以根据匹配的转发规则把 DNS 查询请求转发到外部的 DNS 服务器,或者向公网递归 DNS 服务器发送 DNS 查询请求。
私网解析 PrivateZone 如何处理 DNS 查询请求
接收到 DNS 查询请求时,解析器会先匹配域名和云产品权威域名中的解析记录,再匹配类型为 转发到外部DNS系统 的转发规则,最后匹配递归解析。
下图展示了解析器先后为 DNS 查询请求匹配域名或云产品权威域名、类型为 转发至外部 DNS 系统 的转发规则以及递归解析的过程。
DNS 查询请求可能来自与域名关联的 VPC 中的客户端,也可能来自入站终端节点。解析器接收到 DNS 查询请求后:
- 解析器判断 DNS 查询请求是否匹配域名或云产品权威域名。
- 如果找到了与 DNS 查询请求匹配的域名或云产品权威域名,解析器首先在缓存中查询域名和云产品权威域名中的解析记录。
- 如果找到在缓存中找到了匹配的解析记录,就会返回匹配的解析记录中的 IP 地址。此时,DNS 解析完成。
说明
如果域名开启了智能解析或负载均衡,则该域名的解析记录不会被缓存。
- 如果没有在缓存中找到匹配的解析记录,解析器会向私网解析 PrivateZone 的权威 DNS 服务器发送 DNS 查询请求。
- 如果权威 DNS 服务器找到了匹配的解析记录,就会向解析器返回匹配的解析记录。解析器把解析记录返回给客户端并在缓存中保存该记录。此时,DNS 解析完成。
- 如果权威 DNS 服务器没有找到匹配的解析记录,解析器会判断域名是否开启了递归解析:
- 如果域名开启了递归解析,那么解析器会跳转到步骤 3,使用递归解析进行兜底。
- 如果域名没有开启递归解析,那么 DNS 解析会失败。
- 如果没有找到与 DNS 查询请求匹配的域名或云产品权威域名,解析器会进行下一步。
- 解析器判断 DNS 查询请求是否匹配类型为 转发到外部DNS系统 的转发规则。
- 如果找到了与 DNS 查询请求匹配的转发规则,解析器首先在缓存中查询是否有按转发规则获取的解析记录。
- 如果在缓存中找到了匹配的解析记录,那么解析器会返回该解析记录。此时,DNS 解析完成。
- 如果在缓存中没有找到匹配的解析记录,解析器就会按照匹配的转发规则把 DNS 查询请求转发到外部的 DNS 服务器,然后把外部 DNS 服务器的 DNS 响应返回给客户端。此时,DNS 解析完成。参见 在 VPC 和自建 IDC/第三方云服务之间实现 DNS 解析。
- 如果没有找到与 DNS 查询请求匹配的转发规则,解析器会继续进行下一步。
- 解析器判断 DNS 查询请求是否匹配递归解析。参见 实现递归解析。
- 如果 DNS 查询请求匹配递归解析,解析器首先在缓存中查询是否有按转发规则获取的解析记录。
- 如果在缓存中找到了匹配的解析记录,那么解析器会返回该解析记录。此时,DNS 解析完成。
- 如果在缓存中没有找到匹配的解析记录,解析器会向公网递归 DNS 服务器发送 DNS 查询请求:
- 如果 DNS 查询请求匹配到了类型为 自定义线路 的转发规则,解析器会返回从公网递归 DNS 服务器获取的查询结果。公网递归 DNS 服务器的出口 IP 地址使用您配置的自定义线路。解析器也会在缓存中保存该记录。此时,DNS 解析完成。参见 通过转发规则自定义递归解析的出口运营商和地理位置。
- 如果 DNS 查询请求没有匹配到类型为 自定义线路 的转发规则,解析器会返回从公网递归 DNS 服务器获取的查询结果。公网递归 DNS 服务器的出口 IP 地址使用火山引擎公网 IP 默认的 BGP 线路。解析器也会在缓存中保存该记录。此时,DNS 解析完成。
- 如果 DNS 查询请求不匹配递归解析,DNS 解析会失败。
解析器如何匹配 DNS 查询请求
解析器匹配 DNS 查询请求的方式如下:
为 DNS 查询请求匹配域名和云产品权威域名的解析记录
解析器对来自在域名和云产品权威域名生效范围内的 VPC 的 DNS 查询请求进行匹配。如果 DNS 查询请求的域名与解析记录中的域名相同或符合泛域名的匹配规则,则匹配成功。
为 DNS 查询请求匹配转发规则
解析器对来自转发规则生效范围内的 VPC 的 DNS 查询请求进行匹配。如果 DNS 查询请求的域名与转发规则所关联的转发域名相同或者是转发规则所关联的转发域名的子域名,则匹配成功。
例如,假设转发域名是 example.com
,那么 DNS 查询请求的域名是 example.com
,abc.example.com
或 1234.abc.example.com
时,转发规则都可以匹配成功。
为 DNS 查询请求匹配递归解析
如果 DNS 查询请求满足以下任意一个条件,则匹配成功:
- DNS 查询请求的域名不匹配私网解析 PrivateZone 中的域名或云产品权威域名,也不匹配任何类型为 转发到外部DNS系统 的转发规则。
- DNS 查询请求的域名匹配您在私网解析 PrivateZone 中添加的域名。您添加的域名开启了递归解析,且 DNS 查询请求的域名不在您添加的域名的解析记录中。