Cloud DNS 异常 NXDOMAIN 流量分析:迁移实战与经验总结
2026年3月,Cloud DNS 中的一个公共 DNS 区域遭遇异常流量:NXDOMAIN 响应查询从每秒 0.57 次激增至每秒 2720 次。总负载跃升至每秒 2951 次查询,导致账单费用急剧上升。由于技术支持未能及时提供分析,我们不得不紧急将该区域迁移至外部托管服务。
监控数据显示,NXDOMAIN 查询量远超 NOERROR 查询。鉴于缺乏业务事件关联、流量模式重复出现且服务商未给出合理解释,该流量被判定为异常。
异常详情
3月22日正常基准数据:
- A 记录 NOERROR 查询:每秒 9.38 次
- A 记录 NXDOMAIN 查询:每秒 0.57 次
- 总计:每秒 9.96 次查询
3月25日异常数据:
- A 记录 NXDOMAIN 查询:每秒 2720.29 次
- A 记录 NOERROR 查询:每秒 231.14 次
- 总计:每秒 2951.43 次查询
该区域包含标准记录:A、CNAME、MX、TXT、NS,以及 DKIM、DMARC、ACME 等服务记录。首次告警出现在 3月7日至10日,主要事件发生在 3月24日至31日。
流量被归类为异常的依据包括:NXDOMAIN 查询占主导且无合理原因、事件反复发生、以及技术支持未予回应。
技术支持响应与财务影响
联系技术支持未获实质帮助:对方未分析流量,仅回复需等待同事处理。费用随对不存在域名的查询量成比例增加。
解决方案:在准备迁移的同时提交索赔。我们选择了支持区域文件导入的外部 DNS 托管服务。
迁移步骤
- 导出记录:
yc dns zone list-records example-zone --format json > zone-records.json
JSON 结构示例:
{
"record_sets": [
{
"name": "*.service.example-company.ru.",
"type": "A",
"ttl": "300",
"data": [
"203.0.113.10"
]
},
{
"name": "_dmarc.example-company.ru.",
"type": "TXT",
"ttl": "300",
"data": [
"\"v=DMARC1; p=none; sp=none; rua=mailto:[email protected]\""
]
}
]
}
- 将 JSON 转换为 BIND 区域文件:
- 使用
@表示源域名 - 移除原服务商的 NS 记录
- 解包多行 TXT 记录
- 检查 CNAME、ACME、DMARC 记录
- 排除 SOA 记录
区域文件示例:
$TTL 1d
example-company.ru. IN SOA ns1.provider.example. hostmaster.ns1.provider.example. (
1
14400
3600
604800
10800
)
@ A 203.0.113.10
app A 203.0.113.20
www CNAME infra.example-company.ru.
监控与准备建议
面向中高级 DevOps 和 SRE 工程师:
- 按响应代码监控指标:NOERROR、NXDOMAIN、负载峰值。
- 准备区域导出/转换脚本。
- 迁移前审查记录:NS、TXT(ACME/DKIM)、私有 IP。
分开处理工单:技术分析与财务索赔分别提交。
若遇异常且无响应——启动备用方案:导出、迁移、记录所有操作。
核心经验
- 监控 NXDOMAIN 查询可避免账单意外。
- 通过
yc dns zone list-records --format json导出是迁移关键步骤。 - 从区域文件中排除服务商 NS 记录,避免冲突。
- 审查 TXT/ACME 记录:移除过时条目。
- 并行提交工单加速问题解决。
— Editorial Team
暂无评论。