递归 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 已有的缓存。如果配置了转发域,匹配的查询直接转发;未匹配的查询仍走根域递归。
入口:【GSLB 全局负载 → 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 虚拟服务 |
| 域名 | 需要预取的域名,如 api.example.com |
| 查询类型 | A / AAAA / CNAME 等 |
适用场景: 业务强依赖的第三方 API 域名(如支付网关、短信接口等),对解析延迟敏感。开启预取后,即使原 TTL 为 300 秒,矩尺也会在过期前主动刷新,保持缓存始终有效。
DNS 缓存预取与权威 DNS 中的普通 DNS 缓存不冲突——预取是"主动提前刷新",普通缓存是"被动到期失效"。
第四步:关联 DNS 虚拟服务
递归 DNS 和权威 DNS 共用同一个 DNS 虚拟服务。权威 DNS 的创建流程中已经包含了 DNS 虚拟服务的配置,此处只需确认 DNS 虚拟服务已正确配置:
- 转发引擎/流量组:处理 DNS 请求的引擎
- 监听地址和端口(53)
- DNS 策略:权威解析的策略
- DNS 记录:权威解析的记录
递归能力(根域 + 转发域 + 缓存预取)关联到 DNS 虚拟服务后自动生效,无需额外开关。
第五步:验证
# 验证递归解析(查询非权威域名)
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 配置。
