本文档介绍如何在火山引擎私网解析(PrivateZone)中为一个域名开启递归解析。
在递归解析中,私网解析 PrivateZone 向公网递归 DNS 服务器发送递归查询请求,公网递归 DNS 服务器会返回从公网权威 DNS 服务器获取的 DNS 查询结果。
如果 DNS 查询请求满足以下任意一个条件,则匹配成功:
对于 匹配条件二,域名开启了递归解析是该匹配条件生效的必要条件。如果您在私网解析 PrivateZone 创建了一个主域名,且您希望主域名的子域名分别被映射到 VPC 内的资源和互联网上的资源,您可以为该主域名开启递归解析。另外,递归解析也可以作为兜底。为一个域名开启递归解析后,对于所有不在解析记录中的子域名,私网解析 PrivateZone 可以返回从公网递归 DNS 服务器获取的查询结果,而不是解析失败。
说明
域名是否开启递归解析不影响 匹配条件一。
例如,您在私网解析 PrivateZone 创建了一个主域名 example.com
,您希望 ecs.example.com
或 rds.example.com
被映射到 VPC 内的资源,api.example.com
、www.example.com
等域名被映射到互联网上的资源。在这种情况下,您可以为主域名开启递归解析。
如果 DNS 查询请求匹配递归解析,解析器首先在缓存中查询是否有按转发规则获取的解析记录。
注意
如果 DNS 查询请求被发送到互联网,DNS 解析的延时会增加、变更生效会变慢。因此,我们建议您尽可能将解析记录指向 VPC 内的 IP 地址。
假设您为一个 VPC 关联了域名 example.com
。您有以下业务需求:
ecs.example.com
在域名的解析记录中。VPC 内的资源发送对 ecs.example.com
子域名的解析请求时,私网解析 PrivateZone 会返回记录值 10.0.1.128
。api.example.com
和 www.example.com
。这些子域名分别指向 API 服务器和网站的互联网 IP 地址。在这种情况下,您可以为域名 example.com
开启递归解析功能。递归解析功能开启之后,VPC 内的资源访问 api.example.com
时,私网解析 PrivateZone 会通过公网递归 DNS 服务器进行查询并返回解析结果。
完成以下步骤为一个域名开启递归解析。
添加域名 example.com
。您需要在添加域名时开启递归解析。参见 添加域名 了解如何添加一个域名。
为域名 example.com
添加一条解析记录:
ecs
。这样,域名就是 ecs.example.com
。10.0.1.128
。参见 添加解析记录 了解如何添加一条解析记录。
远程连接到域名所关联的 VPC 中的 ECS 实例。使用 nslookup 命令验证递归解析是否对 api.example.com
生效。如果 DNS 响应是一个互联网 IP 地址,则说明递归解析生效。
$ nslookup api.example.com Server: 100.96.0.2 Address: 100.96.0.2#53 Non-authoritative answer: Name: api.example.com Address: xx.xxx.xxx.xx
参见 更新域名配置 将 example.com
的 递归解析 设置为 关闭。
在 ECS 实例中,使用 nslookup 命令验证 api.example.com
是否还能被成功解析。如果 DNS 解析失败,则说明递归解析已经被关闭。
$ nslookup api.example.com Server: 100.96.0.2 Address: 100.96.0.2#53 ** server can't find api.example.com: NXDOMAIN
(可选)如果您需要指定公网递归 DNS 服务器出口 IP 地址的网络运营商和地理位置,您可以创建一条类型为 自定义线路 的转发规则。参见 通过转发规则自定义递归解析的出口运营商和地理位置。