Skip to content

一、引言与物理工程现实 ​

跨境网络的质量问题,归根结底是三个物理量在约束:光速、路由策略、排队时延。Anycast 被大量 CDN、DNS 根服务器与商业加速网络采用,但它在跨境场景下的行为与很多工程师的直觉并不一致。

先摆物理常数。单模石英光纤的折射率 n≈1.468,光在纤芯中的传播速度约 204 km/ms,换算单向传播时延约 4.9 μs/km。这意味着上海到洛杉矶(海缆实际路由约 11,000~13,000 km,非大圆距离 10,400 km)的单向光传播时延下限约 54~64 ms,加上两端城域接入、PoP 内转发、海缆登陆站的光电转换与再生中继,端到端 RTT 的物理下限落在 130~145 ms 区间。任何宣称"上海到美西 90 ms"的商业文案,要么走的是北极圈短路径(需特定海缆与陆缆组合),要么在测量口径上做了手脚。

Anycast 的核心机制是:同一段 IP 前缀(通常是 /24 或更细的 /48)从多个地理位置的 PoP 同时向全球 BGP 宣告,由中间 AS 的 BGP 选路算法决定流量落到哪个 PoP。这里的关键在于——BGP 的选路决策依据的是 AS Path 长度、Local Preference、MED、Origin 等策略属性,而不是地理距离,也不是 RTT。BGP 没有时延感知能力。这是所有 Anycast 异常行为的根源。

我们在 2025 年 Q4 至 2026 年 Q1 期间,用部署在上海电信(AS4134/CN2 AS4809)、北京联通(AS4837/AS9929)、广州移动(AS58453/CMI)的三组探针,对 14 个采用 Anycast 架构的商业加速网络与 CDN 节点做了持续追踪。抓到的典型异常包括:广州移动用户被 Anycast 调度到法兰克福 PoP(RTT 从 180 ms 劣化到 310 ms)、北京联通用户在晚高峰被甩到新加坡 PoP 导致 TCP 握手超时率从 0.3% 飙到 7.8%。这些都不是配置错误,而是 BGP 收敛动态与运营商互联策略共同作用的必然结果。

本文的目标是把这套机制拆到可操作的粒度。评测方法论与质检标准参见 评测方法论与质检标准,专线层面的拓扑差异参见 IEPL与IPLC专线解析。


二、底层物理拓扑与协议架构 ​

2.1 Anycast 宣告面与数据面分离 ​

一个典型的 Anycast 加速网络由三层构成:

                    ┌─────────────────────────────────────────┐
                    │        控制面 (Control Plane)            │
                    │   BGP Speaker / Route Reflector          │
                    │   宣告同一 /24 前缀 from N 个 PoP         │
                    └───────────────┬─────────────────────────┘
                                    │ iBGP / eBGP
        ┌───────────────┬───────────┼───────────┬───────────────┐
        │               │           │           │               │
   ┌────▼────┐    ┌────▼────┐  ┌───▼────┐  ┌───▼────┐    ┌────▼────┐
   │ PoP-HKG │    │ PoP-NRT │  │PoP-LAX │  │PoP-SIN │    │ PoP-FRA │
   │ AS13335 │    │ AS13335 │  │AS13335 │  │AS13335 │    │ AS13335 │
   └────┬────┘    └────┬────┘  └───┬────┘  └───┬────┘    └────┬────┘
        │              │           │           │              │
   ┌────▼────┐    ┌────▼────┐  ┌───▼────┐  ┌───▼────┐    ┌────▼────┐
   │ 上游ISP │    │ 上游ISP │  │ 上游ISP│  │ 上游ISP│    │ 上游ISP │
   │AS58453  │    │AS2914   │  │AS3356  │  │AS4657  │    │AS1299   │
   │AS4134   │    │AS2497   │  │AS174   │  │AS3491  │    │AS3320   │
   └────┬────┘    └────┬────┘  └───┬────┘  └───┬────┘    └────┬────┘
        │              │           │           │              │
        └──────────────┴───────────┴───────────┴──────────────┘
                                    │
                    ┌───────────────▼─────────────────────────┐
                    │        数据面 (Data Plane)               │
                    │   TCP/UDP 流量按 BGP 选路结果单向转发     │
                    │   BGP 决策 ≠ 地理最近 ≠ RTT 最低          │
                    └─────────────────────────────────────────┘

控制面与数据面的关键矛盾在于:BGP 只优化策略,不优化体验。当某个上游 ISP 的 AS Path 恰好更短,或者 Local Preference 被设得更高,流量就会落到一个物理上更远的 PoP。

2.2 跨境流量的 AS Path 真实形态 ​

以中国大陆三网访问一个 Anycast 加速节点为例,实际抓到的 AS Path 长度分布差异极大:

  • 电信 163 (AS4134):典型路径 AS4134 → AS4809(CN2) → AS3356 → AS13335,AS Path 长度 4,但 163 出口在晚高峰(19:00–23:00 CST)的丢包率可达 5%~15%。
  • 联通 9929 (AS9929):典型路径 AS4837 → AS9929 → AS2914 → AS13335,AS Path 长度 4,9929 作为联通精品网,拥塞控制较好,但覆盖城市有限。
  • 移动 CMI (AS58453):典型路径 AS9808 → AS58453 → AS4657 → AS13335,AS Path 长度 4,移动国际出口在 2025 年后扩容明显,但部分方向仍绕行。

AS Path 长度相同的情况下,BGP 会继续比较 MED、Origin、Router ID,最终结果由对端 AS 的策略决定。这意味着你无法通过本地配置强制流量走某条路径——除非你控制了对端的入向策略,或者使用 BGP Community 打标。

2.3 TCP 握手与 Anycast 的交互 ​

Anycast 对 TCP 的影响集中在握手阶段。三次握手的 SYN、SYN-ACK、ACK 三个报文如果被 BGP 收敛过程中的路由变更甩到不同 PoP,会出现:

  1. SYN 到达 PoP-A,PoP-A 回 SYN-ACK;
  2. 路由抖动,SYN-ACK 的返回路径切换到 PoP-B;
  3. 客户端收到来自不同源 IP 的 SYN-ACK(Anycast 下源 IP 相同,但实际处理节点不同),若 PoP-B 无该连接状态,直接 RST。

这就是 Anycast 场景下"连接建立失败但 ping 通"的典型成因。我们实测中,路由抖动期间 TCP 握手失败率与 BGP 收敛次数的相关系数达到 0.73。


三、核心指标测试方法论与多运营商实测对比 ​

3.1 测试环境与工具 ​

项目配置
探针位置上海电信 AS4134/CN2 AS4809、北京联通 AS4837/AS9929、广州移动 AS58453/CMI
探针系统Debian 12, kernel 6.1, 关闭 TCP BBR,使用 cubic 以排除拥塞控制干扰
抓包工具tcpdump 4.99.4 + tshark 4.0.10,环形缓冲 512MB
路由追踪mtr 0.95 (--tcp --port 443 -c 200),每小时一轮
BGP 数据源RIPE RIS + RouteViews,采集间隔 5 分钟
风险评分Scamalytics API,每日拉取
测试周期2025-10-01 至 2026-01-31,共 123 天

3.2 三网到主要 Anycast PoP 的实测对比 ​

下表为 123 天中位数统计,单位 ms,括号内为 P95:

目标 PoP上海电信 163上海电信 CN2北京联通 9929北京联通 4837广州移动 CMI
香港 (AS13335)38 (72)32 (41)45 (88)52 (110)28 (39)
东京 (AS13335)62 (118)54 (63)71 (135)80 (162)58 (76)
新加坡 (AS13335)78 (145)68 (82)92 (170)105 (198)65 (84)
洛杉矶 (AS13335)168 (245)148 (162)185 (270)210 (320)175 (230)
法兰克福 (AS13335)245 (380)218 (240)268 (410)295 (450)260 (350)

数据解读:CN2 与 9929 的 P95 与中位数差距显著小于 163 与 4837,说明精品网在晚高峰的排队时延控制更稳定。移动 CMI 到亚洲方向表现优异,但到欧美方向因绕行导致 P95 偏高。

3.3 BGP 路由抖动与收敛时延实测 ​

我们对 14 个 Anycast 前缀在 123 天内监测到的 BGP UPDATE 消息做了统计:

指标香港 PoP东京 PoP新加坡 PoP洛杉矶 PoP法兰克福 PoP
日均 UPDATE 数142981877663
日均 withdraw 数1282154
平均收敛时延 (ms)420380610290260
P95 收敛时延 (ms)1850162024001100980
最长收敛时延 (ms)820064001150042003800
抖动引发的 TCP 握手失败率0.8%0.5%1.9%0.3%0.2%

新加坡 PoP 的抖动最严重,原因与其上游 AS4657、AS3491 的互联策略频繁调整有关。法兰克福 PoP 最稳定,因为欧洲 IXP(DE-CIX、AMS-IX)的互联质量高,路由策略变更少。

3.4 MTU/MSS 与分片行为 ​

Anycast 路径上不同 PoP 的 MTU 可能不一致,这是隐蔽的故障源:

链路段MTUTCP MSS备注
大陆城域接入15001460标准以太网
CN2 骨干15001460支持 1500
IPLC/IEPL 专线15001460部分运营商设 1400
海缆段15001460通常透明
部分 GRE/IPsec 隧道14001360需 PMTUD 或手动钳制
WireGuard 隧道14201380默认 1420

当路径上出现 MTU 不一致且 ICMP 被过滤时,PMTUD 失效,大包被静默丢弃,表现为"小包通、大包不通"。这是 Anycast 跨境场景的高频故障。


四、网络攻防实战与关键配置 ​

4.1 BGP Community 打标控制入向选路 ​

如果你运营自己的 AS 并与上游有 BGP 会话,可以用 Community 影响上游的入向选路。以某 Tier-1 上游为例(具体值因上游而异,需查阅其文档):

bash
# 在 Quagga/FRR 中为特定前缀打标
route-map SET-COMMUNITY permit 10
 match ip address prefix-list MY-PREFIX
 set community 1299:1000  # 示例:请求上游优先本地
!
router bgp 65001
 neighbor 203.0.113.1 route-map SET-COMMUNITY out

注意:Community 是"请求",不是"命令"。上游有权忽略。实测中,Tier-1 对 Community 的响应率约 60%~80%,二线运营商响应率更低。

4.2 本地路由策略:AS Path 预处理 ​

在接收侧,可以用 AS Path 正则过滤异常路由:

bash
# FRR 配置:拒绝 AS Path 中包含特定异常 AS 的路由
ip as-path access-list 10 deny _4134_.*_4134_
ip as-path access-list 10 deny _4837_.*_4837_
ip as-path access-list 10 permit .*
!
route-map FILTER-AS-PATH permit 10
 match as-path 10

AS Path 中出现重复 AS 号通常意味着路由环路或配置错误,必须过滤。

4.3 TCP 层优化:应对 Anycast 抖动 ​

针对 Anycast 抖动导致的握手失败,可在客户端侧调整:

bash
# Linux 内核参数优化
net.ipv4.tcp_syn_retries = 3        # 默认 6,降低重试次数避免长尾
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_syncookies = 1         # 防御 SYN flood,同时缓解状态丢失
net.ipv4.tcp_mtu_probing = 1        # 启用 MTU 探测,应对 PMTUD 失效
net.ipv4.tcp_base_mss = 1024        # 探测起始 MSS
net.ipv4.tcp_retries2 = 8           # 降低重传次数,快速失败

tcp_mtu_probing=1 是跨境场景的关键配置,它让内核在检测到 PMTUD 黑洞时自动降低 MSS。

4.4 客户端路由规则(Clash/Mihomo 示例) ​

在客户端侧,用规则将特定域名强制走低抖动节点:

yaml
rules:
  - DOMAIN-SUFFIX,openai.com,PROXY-LOW-JITTER
  - DOMAIN-SUFFIX,anthropic.com,PROXY-LOW-JITTER
  - DOMAIN-KEYWORD,api,POLICY-API
  - GEOIP,CN,DIRECT
  - MATCH,PROXY-DEFAULT

其中 PROXY-LOW-JITTER 应绑定到实测抖动最低的节点组。Clash Verge 的详细配置参见 Clash Verge保姆级教程。ChatGPT 等 AI 服务对 IP 原生性与路由稳定性要求更高,参见 ChatGPT访问与原生IP。

4.5 用 MTR 定位 Anycast 异常 ​

bash
# 每小时采集一次,持续 24 小时
for i in $(seq 1 24); do
  mtr --tcp --port 443 --report --report-cycles 100 \
      --json target.example.com >> mtr-$(date +%Y%m%d).json
  sleep 3600
done

关注指标:某一跳的 Loss% 突然升高且后续跳也高,说明该跳是瓶颈;若某跳 Loss% 高但后续跳正常,通常是 ICMP 限速,非真实丢包。


五、常见误区剖析与故障排查自救指南 ​

5.1 三大误区 ​

误区一:Anycast 一定比 Unicast 快。 错。Anycast 的优势是就近接入与 DDoS 分散,但在 BGP 策略不利时,流量可能被调度到更远的 PoP。实测中 12% 的 Anycast 访问落到了非最优 PoP。

误区二:ping 通就说明链路正常。 错。ICMP 与 TCP 的路径可能不同(BGP 多路径),且 ICMP 被限速时 ping 值失真。必须用 TCP 层探测。

误区三:AS Path 越短越快。 错。AS Path 长度只反映 AS 跳数,不反映物理距离、链路带宽、拥塞程度。一条 3 跳的路径可能穿过拥塞的 IXP,而 5 跳的路径走的是专线。

5.2 故障排查步骤化流程 ​

Step 1: 确认故障范围
  ├─ 单域名故障 → 检查 DNS 解析,确认是否 Anycast IP
  ├─ 单运营商故障 → 检查该运营商出口路由
  └─ 全运营商故障 → 检查对端 PoP 状态

Step 2: TCP 层探测
  ├─ tcping -p 443 target.com(多次,观察成功率)
  ├─ curl -v --connect-timeout 5 https://target.com
  └─ 若握手失败率高 → 进入 Step 3

Step 3: 路由追踪
  ├─ mtr --tcp --port 443 -c 200 target.com
  ├─ 定位丢包跳与 RTT 突增跳
  └─ 对比不同运营商探针的结果

Step 4: BGP 数据核查
  ├─ 查询 RIPE RIS / RouteViews 的该前缀宣告
  ├─ 检查 AS Path 是否异常(环路、异常长)
  └─ 检查是否有 withdraw 风暴

Step 5: MTU/MSS 验证
  ├─ ping -M do -s 1472 target.com(1472+28=1500)
  ├─ 若失败,逐步降低 -s 值直到成功
  └─ 记录实际可用 MTU,调整本地 MSS 钳制

Step 6: 切换与验证
  ├─ 切换至备用节点/线路
  ├─ 重复 Step 2-5 验证
  └─ 记录故障时间线与根因

5.3 晚高峰专项排查 ​

晚高峰(19:00–23:00 CST)是跨境链路压力最大的时段。建议:

  • 提前 30 分钟采集基线 MTR 数据;
  • 晚高峰期间每 15 分钟采集一次;
  • 对比基线,定位 RTT 突增与丢包跳;
  • 若为上游拥塞,考虑切换至精品网线路。晚高峰稳定专线机场榜参见 晚高峰稳定专线机场榜。

六、长效演进与企业/个人选型建议 ​

6.1 技术演进趋势 ​

2026 年的几个明确趋势:

  1. SRv6 在骨干网的部署加速。SRv6 的 Segment Routing 可以让源端指定路径,部分解决 BGP 策略不可控的问题。但跨 AS 的 SRv6 仍受制于对端策略。
  2. BGPsec 与 RPKI 的普及。RPKI 的 ROA 验证已在主要 Tier-1 部署,路由劫持事件下降,但配置错误的 ROA 也导致过合法前缀被误拒。
  3. Anycast 与 AI 推理调度的结合。部分 AI 服务商开始用 Anycast 做推理请求的就近调度,但模型权重同步的带宽成本是瓶颈。
  4. 海缆扩容与北极路径。2025–2026 年多条新海缆投产,北极路径(经俄罗斯/北欧)在特定季节可缩短亚欧时延 20~30 ms,但地缘政治风险高。

6.2 企业选型建议 ​

场景推荐方案关键指标
跨国办公(<50 人)商业 Anycast 加速 + 本地双线抖动 <20ms,丢包 <0.5%
跨国研发(50~500 人)IEPL 专线 + Anycast 备份可用性 >99.9%,RTT 稳定
AI 训练/推理专线 + 原生 IP + 低抖动节点原生 IP 率 >95%,抖动 <15ms
金融交易IPLC 点对点 + 低时延路由RTT 物理下限 +10ms 内

6.3 个人用户选型 ​

个人用户的核心诉求是稳定性与性价比。建议:

  • 优先选择有 CN2/9929/CMI 精品网入口的服务商;
  • 关注晚高峰实测数据,而非标称带宽;
  • 避免纯 Anycast 无专线入口的服务商,晚高峰抖动风险高;
  • 用 MTR 与 tcping 做长期监测,建立自己的基线数据。

关于实验室的评测标准与数据来源,参见 关于AirportMatrix评测实验室。


七、常见问题与技术答疑 (FAQ) ​

Q1: BGP Anycast 的同一 IP 从多个 PoP 宣告,会不会导致路由环路? ​

不会。BGP 的 AS Path 防环机制会拒绝包含自身 AS 号的路由。Anycast 的多个 PoP 通常属于同一 AS(如 AS13335),通过 iBGP 或 Route Reflector 同步,eBGP 层面只向外部宣告一次。真正的风险是配置错误导致的 iBGP 环路,需用 bgp cluster-id 与 neighbor route-reflector-client 正确配置。

Q2: 为什么 Anycast 节点 ping 值正常,但 TCP 握手经常失败? ​

典型原因是 BGP 收敛期间路径切换。SYN 与 SYN-ACK 走了不同 PoP,目标 PoP 无连接状态,返回 RST。排查方法:用 tcpdump 同时抓两端,对比 SYN 与 SYN-ACK 的到达接口与时间戳。缓解方法:启用 tcp_syncookies,降低 tcp_syn_retries,并在客户端侧配置多节点故障转移。

Q3: AS Path 长度相同的情况下,BGP 如何选路? ​

BGP 的选路顺序为:Weight(Cisco 私有)→ Local Preference → 本地始发 → AS Path 长度 → Origin → MED → eBGP 优于 iBGP → IGP Metric 到 Next Hop → 最老路由 → Router ID 最小 → Cluster List 最短 → 邻居 IP 最小。AS Path 相同后,MED 与 IGP Metric 起决定作用,这也是为什么同一前缀在不同运营商看到的下一跳可能不同。

Q4: 如何判断一个 Anycast 服务商的路由质量? ​

三个维度:一是 BGP 宣告的 PoP 数量与地理位置覆盖;二是实测的 AS Path 多样性与收敛时延;三是晚高峰的抖动与丢包率。建议用 RIPE RIS 查询该前缀的宣告历史,用 MTR 做长期监测,用 Scamalytics 核查 IP 风险评分。单一指标都会误导。

Q5: MTU 不一致导致的 PMTUD 黑洞如何快速定位? ​

用 ping -M do -s <size> 逐步降低 size,找到能通的最大值。若 1472 不通但 1400 通,说明路径 MTU 在 1428~1500 之间。进一步用 traceroute --mtu 定位具体跳。根治方法是在隧道入口做 MSS 钳制(iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu),或启用 tcp_mtu_probing=1。

Q6: 2026 年 Anycast 在跨境场景还有优势吗? ​

有,但优势收窄。Anycast 的就近接入与 DDoS 分散仍不可替代,但在跨境高抖动场景下,纯 Anycast 的体验不如"Anycast 接入 + 专线回源"的混合架构。企业级用户应优先考虑混合方案,个人用户应关注服务商是否有专线入口。专线拓扑的详细对比参见 IEPL与IPLC专线解析。


本文数据来自 AirportMatrix 实验室分布式探针的实测采集,采集周期 2025-10 至 2026-01。测试方法与质检标准详见 评测方法论与质检标准。