出海企业多云 DNS 与全局流量调度实战:智能解析 + GSLB 双活流量编排(2026最新版)

📅 · 企业出海多云架构实战 - ChengziCloud

一句话结论

Meta Description: 出海企业如何用 DNS 层做多云流量调度?

本文要点
  • 前言:先给结论
  • 为什么 DNS 层是出海架构的"总开关":三个真实事故
  • DNS 与流量调度全景:四层概念一张表
  • 总体架构:两图看懂
  • 智能解析与就近接入:三朵云实操命令
  • GSLB 双活调度与健康检查:故障切换实操
  • TTL 与 DNS 容灾:把切换时间从小时级压到分钟级
  • DNS 即代码:Terraform 管理多云 DNS 记录

Meta Description: 出海企业如何用 DNS 层做多云流量调度?本文讲透智能解析、GSLB 全局负载均衡、健康检查与自动故障切换:阿里云云解析+GTM、AWS Route 53、腾讯云 DNSPod 三朵云命令实操,TTL 容灾策略与 Terraform DNS 即代码,附架构图、价格对比与 90 天落地路线图。

关键词: 多云DNS、全局流量调度、GSLB、Route 53、智能解析、DNS故障切换、出海云架构

前言:先给结论

DNS 是出海企业多云架构里最便宜、也最容易被忽视的"总开关"——它不转发任何业务数据,却掌握着所有用户的入口。结论直接给:多云流量调度的最佳实践是"智能解析做就近接入 + GSLB 做故障切换 + 低 TTL 做快速收敛"三层组合。平时按地理位置把用户引导到最近、最快的云区域(阿里云 / AWS / 腾讯云任选),某一朵云故障时通过健康检查自动把流量切到另一朵云,切换时间从小时级压到分钟级。本文覆盖三朵云 DNS 与 GSLB 产品的完整命令实操、TTL 容灾策略、Terraform DNS 即代码,以及一份可直接照抄的 90 天落地路线图。

一、为什么 DNS 层是出海架构的"总开关":三个真实事故

很多团队做多云双活,把精力全花在应用层、数据库层,最后 DNS 却还是单点。先看三个用真金白银买来的教训:

事故 1:2016 年 Dyn DNS 遭大规模 DDoS。 攻击者用 Mirai 僵尸网络发起超过 1Tbps 的 DNS 查询洪峰,导致 Dyn 权威 DNS 大面积不可用,Twitter、Netflix、Airbnb、Reddit 等大量网站同时"消失"。注意:这些公司的服务器完全正常,只是用户"找不到"它们了。DNS 是比应用更前置的单点——它挂了,后面所有高可用都白搭。

事故 2:2021 年 Fastly CDN 配置事故。 一次配置变更触发全球范围 503,大量电商网站在黑色星期五期间瘫痪数小时。这类边缘/入口层故障说明:任何"用户第一跳"的组件都必须有多云冗余,DNS 调度层正是把用户从故障入口切走的最快手段。

事故 3:云厂商权威 DNS 故障。 各家云厂商的公共权威 DNS 都出现过区域性故障(解析超时、解析错误)。如果企业把权威解析、智能调度、健康检查全押在一家云上,等于把"总开关"变成单点——与多云双活的初衷背道而驰。

三起事故的共同结论:多云架构的容灾链路必须从 DNS 层开始设计。应用层双活解决的是"流量到了之后怎么跑",DNS 层解决的是"流量能不能到、往哪到"——前者是 60 分之后的优化,后者是 0 到 1 的生死线。

二、DNS 与流量调度全景:四层概念一张表

要落地 DNS 层流量调度,先分清四个层次,避免把不同层的产品混为一谈:

层次作用典型组件出海场景要点
递归解析器替用户查询域名,缓存结果运营商 DNS、8.8.8.8、223.5.5.5你控制不了,只能靠低 TTL 缩短缓存时间
权威 DNS存放域名解析记录,回答"这个域名指向哪"阿里云云解析、Route 53、DNSPod必须多可用区/多节点,最好双云托管
智能解析 / GSLB按策略返回不同 IP:就近、权重、故障切换阿里云 GTM、Route 53 策略路由、DNSPod GTM多云调度的核心,健康检查驱动
CDN / 边缘就近缓存静态内容,隐藏源站Cloudflare、阿里云 CDN、CloudFront与 GSLB 配合,动态请求回源仍走调度

再对应到三朵云的产品映射,方便下文对照实操:

能力阿里云AWS腾讯云
权威 DNS 托管云解析 DNS(免费版起步)Route 53DNSPod(云解析)
智能解析线路云解析"解析线路"(地区/运营商粒度)延迟、地理、权重、故障转移策略DNSPod 线路分组
全局负载均衡 GSLB全局流量管理 GTMRoute 53 Health Check + 策略记录DNSPod 全局流量管理 GTM
私有域名解析PrivateZoneRoute 53 Private Hosted ZoneDNSPod 私有域解析
域名安全DNSSEC、防劫持DNSSEC、DNSSEC signingDNSSEC、D 监控

一句话记住分工:权威 DNS 负责"托管和回答",GSLB 负责"聪明地回答"。普通 A 记录回答的是固定 IP,GSLB 回答的是"根据用户位置、云厂商健康状态实时计算出来的 IP"。

三、总体架构:两图看懂

先看数据流全貌(mermaid 图,md2html 下按文本渲染,结构与文字说明一致):


graph TD
    U[全球用户] -->|递归查询| R[递归解析器 8.8.8.8 / 223.5.5.5]
    R -->|权威查询| A[多云权威 DNS: 阿里云云解析 + Route 53 双托管]
    A -->|返回 GSLB 策略结果| R
    R -->|缓存 TTL| U
    A -->|健康检查驱动调度| H1[阿里云 GTM 健康检查]
    A -->|健康检查驱动调度| H2[Route 53 Health Check]
    H1 -->|探测 /healthz| C1[阿里云新加坡区域]
    H2 -->|探测 /healthz| C2[AWS 新加坡区域]
    C1 -->|主流量| S1[应用双活]
    C2 -->|备流量| S2[应用双活]
    C1 -.->|故障: 3 次失败| A
    A -->|自动切换| C2

再看落地分层(ASCII 图):


┌─────────────┐   ┌─────────────┐   ┌─────────────┐
│  全球用户     │   │  全球用户     │   │  全球用户     │
│  亚太/欧美    │   │  亚太/欧美    │   │  亚太/欧美    │
└──────┬──────┘   └──────┬──────┘   └──────┬──────┘
       │                 │                 │
       └─────────┬───────┴───────┬─────────┘
                 ▼               ▼
        ┌─────────────────────────────────┐
        │  权威 DNS 层(双云托管,互为备份)      │
        │  阿里云云解析  ◄──Zone 同步──►  Route 53│
        │  策略:就近 + 权重 + 健康检查驱动        │
        └───────────────┬─────────────────┘
                        │ 返回最优 IP(TTL 60s)
          ┌─────────────┼─────────────┐
          ▼             ▼             ▼
   ┌────────────┐ ┌────────────┐ ┌────────────┐
   │ 阿里云 新加坡 │ │  AWS 新加坡  │ │ 腾讯云 香港  │
   │ 主区域       │ │ 备区域       │ │ 三区兜底     │
   │ LB + 应用    │ │ LB + 应用    │ │ LB + 应用    │
   └────────────┘ └────────────┘ └────────────┘
   健康检查 /healthz 每 30s 一次,连续 3 次失败自动摘除

架构要点:权威 DNS 双云托管解决"DNS 本身单点";GSLB 策略解决"往哪调度";健康检查解决"什么时候切"。三件事各自独立、又互相咬合,缺一个都不闭环。

四、智能解析与就近接入:三朵云实操命令

4.1 阿里云:云解析 + 解析线路

阿里云云解析免费版即可托管 Zone 并支持按地区线路返回不同 IP(即"智能解析"),企业版额外提供 EDNS Client Subnet 精细化调度。CLI 实操:


// 添加基础 A 记录:www.example.com -> 1.2.3.4(阿里云区域)
aliyun alidns AddDomainRecord \
  --DomainName example.com \
  --RR www \
  --Type A \
  --Value 1.2.3.4 \
  --TTL 600

// 添加"按地区线路"的解析:广东用户 -> 香港节点 IP
aliyun alidns AddDomainRecord \
  --DomainName example.com \
  --RR www \
  --Type A \
  --Value 203.0.113.10 \
  --Line "广东" \
  --TTL 600

// 查看当前全部解析记录
aliyun alidns DescribeDomainRecords --DomainName example.com

线路参数用 --Line 指定("广东"、"北京"、"境外"、"电信"、"联通"等粒度),未命中线路的请求回落到默认记录。配合 GTM 使用时,建议把业务 A 记录直接指向 GTM 提供的 CNAME 接入地址,由 GTM 统一调度。

4.2 AWS:Route 53 延迟路由

Route 53 的"延迟路由策略"(Latency routing)不需要维护地区与 IP 的映射表——AWS 内部维护了权威服务器到各区域网络延迟的实时数据,自动把用户导向延迟最低的区域。CLI 实操:


// 先创建两个区域的健康检查(新加坡 + 香港)
aws route53 create-health-check \
  --caller-reference hc-sg-202608 \
  --health-check-config '{"Type":"HTTPS","IPAddress":"1.2.3.4","Port":443,"ResourcePath":"/healthz","RequestInterval":30,"FailureThreshold":3}'

aws route53 create-health-check \
  --caller-reference hc-hk-202608 \
  --health-check-config '{"Type":"HTTPS","IPAddress":"203.0.113.10","Port":443,"ResourcePath":"/healthz","RequestInterval":30,"FailureThreshold":3}'

// 创建延迟路由记录:同一名字两条记录,分别绑定两个区域的健康检查
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [
      {"Action":"UPSERT","ResourceRecordSet":{
        "Name":"www.example.com","Type":"A","SetIdentifier":"sg","Region":"ap-southeast-1",
        "TTL":60,"ResourceRecords":[{"Value":"1.2.3.4"}],
        "HealthCheckId":"HEALTH_CHECK_SG_ID"}},
      {"Action":"UPSERT","ResourceRecordSet":{
        "Name":"www.example.com","Type":"A","SetIdentifier":"hk","Region":"ap-east-1",
        "TTL":60,"ResourceRecords":[{"Value":"203.0.113.10"}],
        "HealthCheckId":"HEALTH_CHECK_HK_ID"}}
    ]
  }'

两条记录共用同一个名字、通过 SetIdentifier 区分,Route 53 根据用户到各区域的延迟自动返回其中一条。TTL 设为 60 秒,配合健康检查实现秒级摘除。

4.3 腾讯云:DNSPod 线路解析

DNSPod 的线路分组(默认线路、境内分省、境外分洲)适合出海场景下"国内走腾讯云、海外走 AWS"的简单切分:


// 添加默认 A 记录(腾讯云香港节点)
tencentcloud dnspod CreateRecord \
  --Domain example.com \
  --RecordType A \
  --RecordLine "默认" \
  --Value 203.0.113.10 \
  --TTL 600

// 添加"境外-欧洲"线路记录,指向 AWS 法兰克福节点
tencentcloud dnspod CreateRecord \
  --Domain example.com \
  --RecordType A \
  --RecordLine "境外-欧洲" \
  --Value 198.51.100.20 \
  --TTL 600

// 列出已有记录
tencentcloud dnspod DescribeRecordList --Domain example.com

五、GSLB 双活调度与健康检查:故障切换实操

智能解析解决"哪里近",GSLB 解决"哪里活着"。三朵云都有对应的 GSLB 产品,核心机制一致:地址池 + 健康检查 + 故障转移策略。

5.1 阿里云 GTM(全局流量管理)

GTM 通过 CNAME 接入:把业务域名 CNAME 到 GTM 分配的接入地址,GTM 根据健康检查结果实时返回地址池中的可用 IP。


// 1. 创建 GTM 实例(标准版)
aliyun alidns CreateGtmInstance \
  --InstanceName "multicloud-gslb" \
  --PackageType standard

// 2. 创建地址池:新加坡阿里云节点 + AWS 节点
aliyun alidns AddGtmAddressPool \
  --InstanceId gtm-xxxx \
  --Name "sg-aliyun" \
  --Type IP \
  --Addr '{"Addr":"1.2.3.4","LbaWeight":100,"Mode":"SMART"}' \
  --MinAvailableAddrNum 1

aliyun alidns AddGtmAddressPool \
  --InstanceId gtm-xxxx \
  --Name "sg-aws" \
  --Type IP \
  --Addr '{"Addr":"198.51.100.30","LbaWeight":80,"Mode":"SMART"}' \
  --MinAvailableAddrNum 1

// 3. 为地址池配置健康检查(HTTP GET /healthz,30s 间隔)
aliyun alidns AddGtmMonitor \
  --AddrPoolId pool-sg-aliyun \
  --ProtocolType HTTP \
  --Port 443 \
  --EvaluationCount 3 \
  --Interval 30 \
  --Timeout 5000 \
  --MonitorExtendInfo '{"httpCode":"2xx,3xx","path":"/healthz"}'

GTM 的故障转移策略支持"顺序优先"(主池全部不可用时切备池)和"权重轮询"两种模式。双活场景建议顺序优先:正常时全部流量走主区域,主区域 3 次探测失败后整体切到备区域,避免两朵云同时承担读写流量导致的脑裂风险。

5.2 AWS:健康检查 + 故障转移路由

Route 53 的 Failover routing policy 是 GSLB 的标准实现:PRIMARY 记录绑定健康检查,健康检查失败后自动返回 SECONDARY 记录。第 4.2 节的健康检查已创建,这里把延迟路由换成故障转移:


// PRIMARY 记录:新加坡,绑定健康检查,TTL 60
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes":[{"Action":"UPSERT","ResourceRecordSet":{
      "Name":"app.example.com","Type":"A",
      "SetIdentifier":"primary-sg","Failover":"PRIMARY",
      "TTL":60,"ResourceRecords":[{"Value":"1.2.3.4"}],
      "HealthCheckId":"HEALTH_CHECK_SG_ID"}}]
  }'

// SECONDARY 记录:香港,无健康检查(兜底),TTL 60
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes":[{"Action":"UPSERT","ResourceRecordSet":{
      "Name":"app.example.com","Type":"A",
      "SetIdentifier":"secondary-hk","Failover":"SECONDARY",
      "TTL":60,"ResourceRecords":[{"Value":"203.0.113.10"}]}}]
  }'

Route 53 故障切换的判定链路:健康检查每 30 秒探测一次,连续 3 次失败判定区域不可用,随后权威应答直接返回 SECONDARY 记录;用户侧递归缓存最长 60 秒过期后拿到新 IP。从故障发生到用户流量切走,理论上限约 3.5 分钟。

5.3 腾讯云 DNSPod GTM

DNSPod 的全局流量管理(GTM)与阿里云 GTM 形态一致:控制台创建 GTM 实例 → 添加地址池 → 配置健康检查 → 业务记录 CNAME 到 GTM 接入地址。API 层面走 dnspod 的 GTM 接口(CreateGtmInstance / AddGtmAddressPool 命名与阿里云类似),生产环境建议直接控制台操作,或统一用 Terraform 管理(见第七章)。

5.4 切换演练:每季度一次,别等真故障

故障切换脚本写得好不好,只有演练能验证。建议每季度做一次半自动演练:


// 演练脚本要点:把主区域健康检查的目标从真实业务地址临时指向不可达地址
// 1. 记录演练前状态:权威解析返回 IP、各区域健康检查状态
aws route53 list-health-checks | grep HealthCheckId

// 2. 用路由策略临时改权重为 0(等价于摘除主区域)
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{"Changes":[{"Action":"UPSERT","ResourceRecordSet":{
    "Name":"app.example.com","Type":"A","SetIdentifier":"primary-sg","Failover":"PRIMARY",
    "TTL":60,"ResourceRecords":[{"Value":"1.2.3.4"}],"Weight":0}}]}'

// 3. 观察切换:确认解析返回备区域 IP、业务无感
dig +short app.example.com @8.8.8.8

// 4. 回切:恢复权重并确认主区域健康检查恢复

演练要点:选业务低峰期、提前发变更通知、备好回切脚本、演练后导出解析结果快照作为审计证据。

六、TTL 与 DNS 容灾:把切换时间从小时级压到分钟级

DNS 故障切换最大的敌人不是健康检查,而是 TTL 缓存。理解一个事实:权威 DNS 即使 1 秒内完成切换,全球递归解析器里缓存的旧 IP 最长还要等一个 TTL 周期才过期。TTL 600 秒意味着最坏情况下,故障后 10 分钟内仍有用户被引导到故障区域。

TTL 分层策略(生产验证过的配置):

记录类型TTL 建议理由
业务入口记录(受 GSLB 调度)60s故障切换的关键路径,越低收敛越快
邮件 MX / SPF / DKIM3600s邮件系统对瞬时抖动敏感,低 TTL 反而有害
静态资源 CNAME(CDN)600~3600sCDN 本身有容灾,无需 DNS 频繁切换
不常变的权威记录(NS/DS)86400s变更极少,且 NS 记录过低会放大递归压力

故障切换时间公式(好记的工程估算):


切换完成时间 ≈ 健康检查间隔 × 失败阈值 + 最大 TTL + 递归刷新余量
示例(本文配置):30s × 3 + 60s + 30s ≈ 180 秒,即 3 分钟量级

如果把 TTL 提到 3600s、健康检查 5 分钟间隔,同样的故障切换就要 1.5 小时起步——这就是"小时级"和"分钟级"的全部差距。

DNS 容灾五级阶梯(从轻到重,按需取用):

  1. 单云托管 + 多可用区:云厂商 DNS 本身多可用区冗余,适合单云阶段;
  2. 双云托管 + 手工切换:主备两个权威 DNS,故障时手工改解析,分钟级人工介入;
  3. 双云托管 + GSLB 自动切换:健康检查驱动,故障自动摘除(本文主推);
  4. 双云托管 + 多策略叠加:延迟路由 + 权重 + 地理策略组合,兼顾体验与容灾;
  5. 全局 Anycast + 边缘层兜底:DNS 与 CDN 都走 Anycast 网络,单点彻底消失。

七、DNS 即代码:Terraform 管理多云 DNS 记录

DNS 记录变更频繁且影响面大,靠控制台手点必然出错。把 DNS 纳入 Terraform 管理(与 08-09 的 OpenTofu 多云 IaC 文章同一套体系),变更走 PR 审批,解析记录可审计、可回滚。三朵云的 provider 资源名统一:


// AWS Route 53:健康检查 + 故障转移记录
resource "aws_route53_health_check" "sg" {
  fqdn              = "app.example.com"
  port              = 443
  type              = "HTTPS"
  resource_path     = "/healthz"
  request_interval  = 30
  failure_threshold = 3
}

resource "aws_route53_record" "primary_sg" {
  zone_id         = aws_route53_zone.main.zone_id
  name            = "app.example.com"
  type            = "A"
  ttl             = 60
  records         = ["1.2.3.4"]
  set_identifier  = "primary-sg"
  failover_routing_policy {
    type = "PRIMARY"
  }
  health_check_id = aws_route53_health_check.sg.id
}

// 阿里云云解析:A 记录 + 线路解析
resource "alicloud_dns_record" "www" {
  name     = "example.com"
  type     = "A"
  rr       = "www"
  value    = "1.2.3.4"
  ttl      = 60
  priority = 1
}

// 腾讯云 DNSPod:记录 + 线路
resource "tencentcloud_dnspod_record" "www" {
  domain      = "example.com"
  record_type = "A"
  record_line = "默认"
  value       = "203.0.113.10"
  ttl         = 60
}

Terraform 管理 DNS 的三个纪律:

  1. Zone 与记录分离:Zone 用 import 接管(避免重建导致 NS 变更),记录全部代码化;
  2. 变更走审批:DNS 变更建议单独开 PR,合并前 terraform plan 输出必须人工核对;
  3. 双云一致性校验:定期跑一个 diff 脚本,对比两朵云托管的同一组记录是否一致,防止双云托管漂移成"双云不一致"。

八、三厂商 DNS/GSLB 能力对比

能力阿里云(云解析+GTM)AWS Route 53腾讯云(DNSPod+GTM)
免费托管 Zone✅ 免费版(基础记录)❌ 按 Zone 收费✅ 免费版
智能解析线路粒度省/运营商/境外分洲延迟/地理/权重/故障转移省/运营商/境外分洲
健康检查类型HTTP/HTTPS/TCP/PINGHTTP/HTTPS/TCP/UDP/CLOUDWATCHHTTP/HTTPS/TCP
故障自动切换✅ GTM 顺序/权重策略✅ Failover 策略✅ GTM
延迟感知路由✅(GTM 支持就近)✅ Latency routing(成熟)✅(GTM 就近模式)
权重路由✅✅✅
DNSSEC✅✅✅
私有域名解析✅ PrivateZone✅ Private Hosted Zone✅
Anycast 权威节点✅ 全球多节点✅ 全球多节点✅
与自家云产品联动GTM+SLB+DNS 一体Health Check+CloudWatch+ALBDNSPod+CLB
中文文档/工单✅✅❌(英文为主)✅✅

选型建议:主云是阿里云选"云解析+GTM",主云是 AWS 选 Route 53,主云是腾讯云选 DNSPod;但权威 DNS 一定要双云托管——主云托管权威解析 + 第二朵云做备份 Zone 或独立 GSLB 出口,用 Terraform 保持两侧记录一致。单云托管 DNS 等于把总开关交给单点,与多云双活目标矛盾。

九、参考价格表(新加坡区域,2026-08)

DNS 与 GSLB 的计费以"托管 Zone 数 + 查询量 + 健康检查数"为主,与计算实例无关。以下为官网公开价的大致区间,实际以各官网实时报价为准:

计费项阿里云国际版AWS腾讯云国际版
托管 Zone 月费(前 25 个)免费版 $0$0.50/个免费版 $0
标准查询(每百万次)免费版含基础量$0.40免费版含基础量
健康检查(每个/月)GTM 按实例计$0.75(基础端点)GTM 按实例计
GSLB/GTM 标准版(每月)约 $10~30策略路由+HC 组合计费约 ¥60~200
企业版高级功能(加权/EDNS/报告)约 $30+/月延迟路由 $0.70/百万查询套餐升级

省钱要点:域名少、查询量小的出海起步期,用"免费权威 DNS + 自建健康检查脚本"即可覆盖大部分需求;一旦上 GSLB,优先选主云的同生态产品(联动好、计费简单),第二朵云只保留最便宜的兜底能力(如 Route 53 单条 SECONDARY 记录),避免双份 GSLB 全价叠加。

十、90 天落地路线图

阶段时间动作验收标准
摸底第 1~2 周盘点现有域名、解析记录、TTL、单点依赖;画出当前 DNS 链路图输出"DNS 单点清单",标注所有无冗余入口
基线第 3~4 周权威 DNS 双云托管;Terraform 接管全部记录;TTL 按第七章分层调整双云记录一致性 diff 为 0;TTL 分层表落地
调度第 5~8 周上线 GSLB:主云 GTM 或 Route 53 策略路由;健康检查覆盖全部业务入口故障注入演练:主区域 3 次失败后自动切换,时长 ≤ 5 分钟
固化第 9~13 周切换演练制度化(季度);双云一致性巡检脚本入 CI;告警接入现有监控体系连续两次演练通过;DNS 变更 100% 走 PR 审批

总结

一句话总结:DNS 是多云架构的总开关,流量调度必须从 DNS 层开始设计。 落地三步走:第一步权威 DNS 双云托管,消灭 DNS 本身的单点;第二步上 GSLB(阿里云 GTM / Route 53 策略路由 / DNSPod GTM),用健康检查驱动自动故障切换;第三步把 TTL 压到 60 秒并纳入 Terraform 管理,让切换从小时级收敛到分钟级。配合每季度一次的切换演练,DNS 层就不再是双活架构的短板,而是整个容灾体系里响应最快的环节。记住:应用层双活决定"流量到了怎么跑",DNS 层调度决定"流量能不能到"——先修好总开关,再谈其他。

🚀 企业出海需要云架构咨询?通过 7.chengzicloud.cloud 联系我们,获取专属方案。多云 DNS 与 GSLB 架构设计、双活容灾方案、Terraform 基础设施即代码均在服务范围内。

相关阅读

本文由 7.chengzicloud.cloud 提供,点击访问首页了解更多

常见问题(FAQ)

1: 智能解析和 GSLB 有什么区别?

智能解析是"按用户位置返回不同 IP"(线路解析、延迟路由),本质是静态策略;GSLB 在智能解析之上增加了"健康检查 + 故障自动切换",是动态决策。两者可以叠加:先就近选区域,再在区域内选存活节点。只做智能解析不做健康检查,故障时用户会被导到死节点——这是最常见的半吊子落地。

2: 故障切换到底要多久?

按本文配置(30s 探测间隔 × 3 次失败 + TTL 60s),理论最坏约 3.5 分钟,实际多数在 1~2 分钟内完成。要更快只能缩短探测间隔和 TTL,但会增加权威 DNS 查询成本和误切换概率。3 分钟对绝大多数 Web 业务可接受,对支付、交易类业务应叠加应用层重试与客户端容错。

3: 双云托管权威 DNS 会不会冲突?

不会,但要注意两点:一是同一域名的 NS 记录只能指向一组权威服务器,双云托管指"主 Zone 在 A 云,备份 Zone 在 B 云"(通过辅助 DNS/Zone 传输同步),或"业务域名在 A 云、容灾入口在 B 云";二是两侧记录必须用 Terraform/脚本保持同步,否则会出现"主云说 1.2.3.4、备云说 203.0.113.10"的漂移。第 7 章的一致性校验就是干这个的。

4: 需要启用 DNSSEC 吗?

建议启用。DNSSEC 防止 DNS 劫持和缓存投毒,对跨境电商、金融类域名是硬要求(等保、ISO 审计也看重)。代价是密钥轮换和记录管理复杂度上升——用托管 DNS 的 DNSSEC(三朵云都支持一键启用)可把复杂度降到最低。注意 DNSSEC 变更影响面大(DS 记录同步到注册局),演练和变更窗口要单独规划。

5: 免费 DNS 够用吗?

流量小、单区域部署时够用;但免费版通常没有健康检查驱动的自动切换(阿里云/DNSPod 免费版不含 GTM,Route 53 免费额度内也无法用策略路由)。只要是多云双活,GSLB 就不是可选项而是必选项,对应成本每月也就几十元到几百元,远低于一次故障切换失败造成的损失。

6: 切换后用户还访问旧 IP 怎么办?

两类用户:递归缓存未过期(最多等一个 TTL)和客户端本地缓存(浏览器/APP 内置 DNS 缓存)。缓解手段:TTL 压到 60s 缩短前者;应用层做"多 IP 故障重试"(客户端同时持有主备 IP,连接失败自动换)消除后者。对 APP 场景,HTTPDNS 是更彻底的方案(阿里云 HTTPDNS / DNSPod HTTPDNS),绕过运营商递归解析。

7: GSLB 和 CDN 怎么配合?

静态资源走 CDN(CDN 自己有多源容灾),动态 API 走 GSLB 调度的双活区域。典型配置:业务域名 CNAME 到 CDN 加速域名,CDN 源站配置为 GSLB 接入地址——用户先就近命中 CDN 缓存,回源请求再由 GSLB 导向存活区域。两层各司其职,不要用 CDN 代替 GSLB(CDN 源站故障检测粒度粗,且动态请求全走 CDN 会增加一跳延迟)。

8: 等保/ISO 审计对 DNS 有什么要求?

等保 2.0 对 DNS 的要求集中在"解析服务可用性"和"防篡改";ISO 27001 A.8 系列要求域名与 DNS 变更走变更管理流程。落地证据链:双云托管的架构说明、健康检查与演练记录、Terraform PR 审批记录、DNS 变更日志。这些材料平时由 IaC 流程自动产生,审计季直接导出即可,不用突击补。