首页/网络/协议速查/Anycast:DNS 的高可用基石
DNS 与域名解析60 条

Anycast:DNS 的高可用基石

根、TLD、公共 DNS、大量权威都用 anycast:同一 IP 在全球多机房宣告,用户自动就近访问;坏一个实例流量自动绕开。

协议速查网络更新于 2026-10-13

Anycast 是什么

Anycast 让同一个地址在全球多个机房同时对外宣告,网络按照路由策略把请求送到「最近或最优」的那个实例。根服务器、顶级域服务器、公共解析服务和大量权威服务器都靠它工作。它的价值在于三点:用户就近访问带来更低时延、流量天然分散提高抗攻击能力、任一实例故障后流量自动绕开。代价是同一个地址背后可能是不同机器,行为必须具备幂等性。

基本信息

原理多机房宣告同一地址前缀,由路由择近
收益低时延、攻击流量分散、天然冗余
代价同一地址每次可能落到不同实例
对应用的要求无状态或可共享状态,行为幂等
典型使用者根与顶级域服务器、公共解析、权威服务
替代方案多机房单播冗余配合健康检查切换

观察就近实例

观察就近实例
dig @1.1.1.1 example.com +short     # 从本地看返回结果与延迟
mtr -c 10 1.1.1.1                   # 看路径与经过的节点
traceroute 223.5.5.5                # 观察实际走到的机房方向
for i in 1 2 3; do dig @8.8.8.8 example.com +short; done   # 多次比对一致性

与单播冗余对比

方式故障切换常见问题
Anycast路由层面自动切换,通常很快同一地址行为可能不同,难复现
单播多机房依赖健康检查与解析切换切换期间部分用户可能仍指向故障点

典型使用场景

  • 公共解析服务:就近响应并分摊攻击流量
  • 权威服务器高可用:单机房故障不影响整体解析
  • 跨境访问优化:让用户尽量落到地理更近的节点
  • 抗攻击设计:把攻击流量挤压在局部实例而不是压垮全局
  • 排查思路整理:理解为什么同一个地址的表现会不同
自建权威服务器若不使用 Anycast,至少应做到多机房单播冗余加健康检查切换,并确保数据同步及时。排查解析异常时,单点的一次查询结论不可靠——同一个地址在不同时刻可能落到不同实例,需要多探点、多时段持续拨测才能看出规律。

易错点

  • 用单点的一次查询下结论:同一地址可能落到不同实例,异常难以复现
  • 应用层需要长连接或会话保持却直接依赖 Anycast,链路切换时会话中断
  • 多个实例的数据不同步,用户在不同时刻拿到不一致的答案
  • 把 Anycast 当作抗攻击的万能方案,忽略单实例仍可能被打满
  • 发布变更时只在一处实例验证,其他实例配置不一致却无人发现

数据来源与参考

  • RFC 4786(运维中的 anycast)
  • RFC 3258(权威 anycast)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌