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,至少应做到多机房单播冗余加健康检查切换,并确保数据同步及时。排查解析异常时,单点的一次查询结论不可靠——同一个地址在不同时刻可能落到不同实例,需要多探点、多时段持续拨测才能看出规律。