Gateway 解析器策略允许您基于各种标准将 DNS 查询路由到自定义 DNS 解析器。本教程展示了如何配置特定区域的私有 DNS 服务器,以确保您的用户根据其地理位置被引导至最近的内部资源。
这种方法对于内部网络跨越多个位置、且 DNS 负责路由和管理对私有网络资源访问的组织特别有用。
在本教程结束时,您将配置好 Gateway 解析器策略,以根据用户位置自动将 DNS 查询路由到特定区域的私有 DNS 服务器,从而提供最佳性能和对内部资源的访问。
本教程使用美国 (US) 和欧盟 (EU) 区域服务器作为私有 DNS 服务器的示例。
在开始之前,确保您拥有:
- 一个 Enterprise Zero Trust 账户
- 在多个区域(例如,US、EU 和 APAC)部署了私有 DNS 服务器
- 连接您的私有 DNS 服务器到 Cloudflare 的 Cloudflare Tunnel
- 需要解析的内部域(例如,
internal.example.com)
首先,使用 Cloudflare Tunnel 将您的区域性私有 DNS 服务器连接到 Cloudflare。
对于您拥有私有 DNS 服务器的每个区域,创建一个隧道。对于每个隧道,添加您 DNS 服务器的私有 IP 地址。例如,美国区域为 10.0.1.53/32,欧盟区域为 10.1.1.53/32。
为所有区域性 DNS 服务器重复此过程。
在将您的私有 DNS 服务器连接到 Cloudflare 后,配置 Gateway 解析器策略以根据用户位置将 DNS 查询路由到适当的区域性 DNS 服务器。
对于您拥有私有 DNS 服务器的每个区域:
-
转到 Traffic policies(流量策略) > Resolver policies(解析器策略)。
-
选择 Add a policy(添加策略)。
-
根据区域为您的策略命名(例如,
US Internal DNS)。 -
创建一个表达式以匹配该区域的内部域和用户。例如,要匹配美国的用户:
选择器 运算符 值 逻辑 Domain(域名) in internal.example.comAnd(且) Source Country IP Geolocation in United States -
在 Select DNS resolver(选择 DNS 解析器) 中,选择 Configure custom DNS resolvers(配置自定义 DNS 解析器)。
-
输入您区域性 DNS 服务器的私有 IP 地址(例如,US 为
10.0.1.53,EU 为10.1.1.53)。 -
在下拉菜单中,选择
<IP-address> - Private。 8.(可选)选择 Add DNS resolver(添加 DNS 解析器) 并输入辅助 IP 地址以添加备份 DNS 解析器。 -
选择 Create policy(创建策略)。
-
为您拥有私有 DNS 服务器的每个区域重复步骤 1-9。例如,要创建一条匹配欧盟区域用户的策略:
| 选择器 | 运算符 | 值 | 逻辑 |
|---|---|---|---|
| Domain(域名) | in | internal.example.com |
And(且) |
| Source Country IP Geolocation | in | Austria, Belgium, France, Germany, Netherlands |
为没有专用 DNS 服务器的区域中的用户,或者当没有策略匹配您的流量时,创建一条全部捕获(catch-all)策略:
-
转到 Traffic policies(流量策略) > Resolver policies(解析器策略)。
-
选择 Add a policy(添加策略)。
-
为您的策略命名(例如,
Internal DNS Fallback)。 -
创建一个表达式以匹配内部域:
选择器 运算符 值 Domain(域名) in internal.example.com -
在 Select DNS resolver(选择 DNS 解析器) 中,选择 Configure custom DNS resolvers(配置自定义 DNS 解析器)。
-
输入您的主 DNS 服务器的私有 IP 地址。
-
选择 Create policy(创建策略)。
Gateway 将根据优先级顺序应用解析器策略。确保您的策略按从最具体到最不具体的顺序排列:
- 转到 Traffic policies(流量策略) > Resolver policies(解析器策略)。
- 使用拖动把手重新排序策略:
- 区域覆盖的解析器策略放在前面
- 您的回退解析器策略放在最后
Gateway 将应用第一条匹配的策略。如果没有策略匹配您的流量,Gateway 将应用回退解析器策略。覆盖区域的解析器策略之间的顺序无关紧要。
要测试您的配置,请在您拥有私有 DNS 服务器的每个区域中的设备上部署 Cloudflare One 客户端,并对内部域运行 DNS 查询。例如,测试美国区域:
-
在美国区域的设备上部署 Cloudflare One 客户端。
-
从该设备打开终端并运行:
nslookup internal.example.com -
验证 DNS 查询是否返回内部资源的预期 IP 地址。响应应显示您的美国 DNS 服务器配置为
internal.example.com返回的 IP 地址。 -
在其他区域的设备上重复此测试,以确认它们从其各自的区域性 DNS 服务器接收响应。每个区域可能会根据您的 DNS 服务器配置返回不同的 IP 地址。
- 转到 Insights(洞察) > Logs(日志) > DNS query logs(DNS 查询日志)。
- 过滤对
internal.example.com的查询。 - 检查 Resolver IP(解析器 IP) 字段,以确认查询是否已根据用户位置路由到正确的区域性 DNS 服务器。
- 使用备份解析器:为每个区域配置辅助 DNS 解析器以确保高可用性。
- 监控 DNS 性能:使用 Gateway 分析跟踪 DNS 查询性能并识别区域性路由的任何问题。
- 实施网络策略:将解析器策略与网络策略结合,以基于用户身份和设备状态控制对内部资源的访问。
- 考虑虚拟网络:如果您跨区域的 IP 地址空间发生重叠,请使用虚拟网络来隔离流量。
- 测试故障转移场景:定期测试当区域性 DNS 服务器变得不可用时会发生什么,以确保您的备份解析器按预期工作。