任播把同一个 IP 从多处注入路由,一次发送只落到路由眼中的一个节点。截至 2026 年 10 月,根域名服务和部分公共解析使用这种做法。连上 VPN 之后,数据包从出口所在的拓扑位置出发,同一个目的 IP 可以落到和家里不同的节点。

路由在选哪一处

一个可独立引用的定义句:任播(anycast,RFC 4786)是让同一个服务地址在多处、彼此独立的节点上可用,使发往该地址的数据报被路由到其中一处。

RFC 4786 把某一节点实际收到流量的拓扑范围称为 catchment。选中哪一处,取决于路由系统里的路径,运营者可以用流量工程影响它。负载通常不会在各节点之间平均分配。

据该文档,若干根域名服务器运营者已经用任播把服务散布开。文档同时写明:这种做法限制了事务可以有多长、服务器上要保存多少状态,以及数据如何在节点之间同步。

一个可独立引用的结论句:任播改变的是「这个 IP 的下一处落点」,不改变 IP 这一串数字本身。

和另外三种「有很多机器」分开

「服务商在很多城市都有机器」至少有四种做法。只有第一种是任播。

做法你看到的目的地址谁决定落到哪一台
任播多处宣告同一个地址从你的源位置出发,路由选出一条它认为更优的路径
单播通常只在一处宣告路由指向宣告它的那一处
多条地址轮询解析返回不同的地址先选定其中一个地址,再按单播前往
按客户端网段返回不同地址权威侧可以给出不同的 IP发生在取出地址之前,见 EDNS 客户端子网

据 Google Public DNS 的性能说明(页面标注更新于 2024-09-03),该服务部署在全球多个数据中心,并用任播把查询送到它所说的 geographically closest 数据中心。这句话里的「近」是他们当时的表述。RFC 4786 的 catchment 按路由拓扑计算,可以和地图上的直线距离不一致:策略、对等和本地优先级都会把流量送到另一座城市。

其他公共解析是否任播,以各服务当时的基础设施说明为准。机房数量多,也可能是每个城市一个不同的单播地址,不能从城市数量推断。

连上 VPN 以后,源位置换了

远程访问 VPN 的服务器地址通常是单播,对应一处机房。节点名称上的城市是标签。IP 地理位置是拿着这个出口地址去查库,库里的城市和机房招牌可以不一致。这两件事都还没有用到任播。

任播出现在出隧道之后的目的地上。隧道建好以后,访问公共互联网的源地址变成出口。任播的 catchment 按这个新的源位置计算:

你在比较的东西家里直连经 VPN 出口再访问
目的 IP 这串数字例如公共解析的任播地址可以仍是同一串数字
路由选中的节点家里所在拓扑的 catchment出口所在拓扑的 catchment
往返时间到家里那个落点到出口那个落点,见 延迟、抖动与丢包
地理库里的城市按这段前缀的登记或测量同一前缀往往仍是同一条库记录

因此会出现:目的 IP 没变,延迟变了;或者 traceroute 的终点城市变了,地理库仍显示注册信息里的那一个城市。地理库没有「更新失败」也可以同时成立。

一个可独立引用的结论句:同一个任播 IP,从家里出发和从 VPN 出口出发,可以落到不同节点;地理库仍可能只给这段前缀标一个城市。

长连接和写死的地址

短的 UDP 查询换一个节点,下一次查询落到别处,应用多半只看到延迟不同。已经建立的 TCP 连接如果在中途被路由带到没有这份会话状态的节点,连接会失败。这是 RFC 4786 所写的状态限制,不是地理库把城市写错。

VPN 分流若按写死的地址前缀区分内外,要单独留意:任播前缀不代表某一座城市的全部内容,多条单播地址也会变更。前缀表过期之后,命中的是「这个地址现在被路由到哪里」,不是当初抄下来时的那一个机房。本文不提供修改分流表的步骤。

消费级远程访问节点是否把网关本身做成任播,要以该服务的说明为准。本文默认讨论的是出口之外的目的地址,不把节点名称里的城市当成网关正在全球任播的证据。

现象对照

现象更可能先看什么
目的 IP 相同,换出口后延迟明显不同任播落点随源位置改变
地理库城市稳定,路径终点却变了库记录的是前缀,路径选的是当前节点
只有某一类 UDP 查询变快或变慢,网页 IP 是另一个解析器在任播,网站地址可能是另一套单播或另一套任播
长连接中途断开,短查询仍正常路由把有状态的流带到了另一个节点;同时对照 MTU 与密钥轮换
节点名称、出口地理库、路径终点是三个城市三者本来就不是同一份数据

核对清单

  1. 先查公开说明:这个目的 IP 是否被写成任播,而不是只看到服务商有很多机房;
  2. 把三套结果分开记:节点名称、出口 IP 的地理库城市、到该目的 IP 的路径终点;
  3. 看源位置:同一目的 IP,从家里和从出口出发,落点可以不同;
  4. 看连接有没有状态:短查询换节点和长连接被甩到无状态节点,表现不同;
  5. 服务器地址按单播理解:除非服务商写明网关本身在任播。