Skip to content

递归 DNS 配置

简介

矩尺平台除了提供权威 DNS(响应自己管理的域名),还支持递归 DNS(替客户端去公网查询其他域名)和 DNS 缓存预取(在缓存过期前主动刷新)。这三个功能组合使用,可以让矩尺同时作为内网的 DNS 服务器,为内部服务提供域名解析加速。

典型场景:

  • 内网服务器需要通过域名访问外部 API,矩尺做 DNS 递归代理
  • 需要缓存外部 DNS 解析结果以减少公网 DNS 查询量
  • 对关键域名的 DNS 记录做预取,降低首次查询延迟

权威 DNS 与递归 DNS 的区别

维度权威 DNS递归 DNS
作用对自己管理的域名给出权威答案替客户端去互联网上查找任意域名的答案
典型配置DNS 记录 + DNS 策略 + DNS 虚拟服务DNS 根域 + DNS 转发域 + DNS 缓存预取
客户端感知返回自己配置的 IP返回从上游 DNS 查询到的 IP
是否需要上游不需要需要(根域名服务器或转发目标)

矩尺可以同时提供权威 DNS 和递归 DNS——对管理的域名做权威应答,对其他域名做递归查询。

核心组件关系

客户端 DNS 查询 "www.baidu.com"


DNS 虚拟服务(监听 53 端口)

      ├── 权威 DNS 策略(自己管理的域名)→ 直接应答

      └── 递归 DNS(不归自己管的域名)

            ├── DNS 根域(13 个内置根域名服务器,可导入自定义)
            │     └── 从根开始逐级递归查询

            ├── DNS 转发域(指定上游 DNS 服务器)
            │     └── 将查询转发给上游 DNS,而非自己递归

            └── DNS 缓存预取
                  └── 在 TTL 过期前主动拉取,保持缓存新鲜

操作步骤概览

第一步:配置 DNS 根域        →  使用内置 13 个根域或导入自定义根域
第二步:配置 DNS 转发域      →  指定上游 DNS 服务器(与根域二选一或互补)
第三步:配置 DNS 缓存预取    →  对高频域名在 TTL 过期前主动刷新
第四步:关联 DNS 虚拟服务    →  在权威 DNS 虚拟服务中同时启用递归能力
第五步:验证                →  dig 测试递归解析

第一步:配置 DNS 根域

DNS 根域是递归解析的起点——DNS 服务器从根域名服务器开始逐级查询。矩尺内置了全球 13 个默认根域名服务器,通常无需额外配置。

入口:【GSLB 全局负载 → DNS 根域】:

DNS根域列表

使用内置根域: 系统已预置,无需手动创建。

导入自定义根域: 在内网隔离环境或需要使用内部根域时,点击"新增"导入自定义根域文件(标准 DNS 根提示文件格式):

新增DNS根域

第二步:配置 DNS 转发域

DNS 转发域将指定域名的查询转发给上游 DNS 服务器,而非自己从根开始递归。这比递归更高效——利用上游 DNS 已有的缓存。如果配置了转发域,匹配的查询直接转发;未匹配的查询仍走根域递归。

入口:【GSLB 全局负载 → DNS 转发域】,点击"新增":

新增DNS转发域

配置项说明
域名需要转发查询的域名,如 example.com。填空表示转发所有未命中权威策略的查询
上游 DNS 服务器转发目标 DNS 的 IP 地址,可配置多个(主备)
DNS 虚拟服务关联已有的 DNS 虚拟服务

典型配置示例:

# 所有外部域名的查询转发给公司的上游 DNS
域名:留空
上游 DNS:10.1.1.1(主), 10.1.1.2(备)

# 仅 internal.example.com 的查询转发给内部 DNS
域名:internal.example.com
上游 DNS:192.168.1.53

递归(根域)与转发(转发域)的选择:

维度DNS 根域(递归)DNS 转发域
工作方式从根开始逐级查询直接转发给上游 DNS
速度首次较慢(多级递归)快(利用上游缓存)
独立性不依赖上游 DNS依赖上游 DNS 可用性
适用场景公网 DNS 解析内网 DNS、企业 DNS 层级

两者可同时配置:匹配转发域的走转发,其余走递归。

第三步:配置 DNS 缓存预取

正常 DNS 缓存在 TTL 过期后才会重新查询,此时如果恰好有客户端请求,会产生额外的查询延迟。缓存预取在 TTL 过期之前主动拉取最新的 DNS 记录并更新缓存,使客户端始终命中新鲜缓存,消除首次查询延迟。

入口:【GSLB 全局负载 → DNS 缓存预取】,点击"新增":

新增DNS缓存预取

配置项说明
名称如"高频域名预取"
DNS 虚拟服务选择关联的 DNS 虚拟服务
域名需要预取的域名,如 api.example.com
查询类型A / AAAA / CNAME 等

适用场景: 业务强依赖的第三方 API 域名(如支付网关、短信接口等),对解析延迟敏感。开启预取后,即使原 TTL 为 300 秒,矩尺也会在过期前主动刷新,保持缓存始终有效。

DNS 缓存预取与权威 DNS 中的普通 DNS 缓存不冲突——预取是"主动提前刷新",普通缓存是"被动到期失效"。

第四步:关联 DNS 虚拟服务

递归 DNS 和权威 DNS 共用同一个 DNS 虚拟服务。权威 DNS 的创建流程中已经包含了 DNS 虚拟服务的配置,此处只需确认 DNS 虚拟服务已正确配置:

  • 转发引擎/流量组:处理 DNS 请求的引擎
  • 监听地址和端口(53)
  • DNS 策略:权威解析的策略
  • DNS 记录:权威解析的记录

递归能力(根域 + 转发域 + 缓存预取)关联到 DNS 虚拟服务后自动生效,无需额外开关。

第五步:验证

bash
# 验证递归解析(查询非权威域名)
dig @<DNS虚拟服务IP> www.baidu.com

# 查看递归查询路径(从根到最终结果)
dig @<DNS虚拟服务IP> www.baidu.com +trace

# 验证转发域(如果配置了对特定域名的转发)
dig @<DNS虚拟服务IP> internal.example.com

验证要点:

  • dig 返回非零 TTL 且 QUERY TIME 较短 → 缓存命中和预取生效
  • ;; SERVER 显示矩尺 DNS 虚拟服务 IP → 确认查询经过了矩尺
  • 对比开启预取前后的查询延迟:dig ... | grep "Query time"

GSLB 递归功能的详细配置参数参见用户手册:DNS根域DNS转发域DNS缓存预取。权威 DNS 的完整配置流程参见 权威 DNS 配置