摘要
- 如果一台设备把 traceroute 探测包的 TTL 改成很大的固定值,它就能隐藏后续路径。新研究中最常见的改写值是 255;目的地址可能因此紧挨最后一个可见路由器或 AS,尽管二者之间还有其他网络转发了数据包。
- 研究人员在 471 个 AS 内的 950 个 RIPE Atlas 探针上发现受影响的路径,并识别出至少 47 个很可能与重写有关的 AS。这是有限测量范围内的结果,不是全网发生率;IPv4 和 IPv6 的分项数量彼此重叠,不能相加。
- 目的端抓包和 ICMP 错误所引用的原始探测包 TTL 可以确证向上重写。路径长度、单跳循环和外部拓扑知识只能报警。RIPE Atlas 把引用的内部 TTL 记在可选字段
ittl中;字段缺失表示证据不可用,不能写成“没有重写”。
数据包没有少走,记录少写了
Traceroute 依赖一连串有意制造的过期。探测包带着有限的 TTL 出发,每经过一台路由器,数值通常减一。减到零时,设备丢弃探测包,并可返回 ICMP Time Exceeded。下一轮探测把初始 TTL 加一,于是多露出一个转发节点。
现在设想路径上的某台设备不再递减,而是把剩余 TTL 直接写成 255。下一台路由器看到的是 254,再往后是 253、252 和 251。它们都不会遇到零,也就不会发送 traceroute 等待的过期响应。如果目的端最终回复,它会在输出中直接排到改写前最后一个可见节点之后。
隐藏的路由器仍然完成了转发。跳过它们的是观测结果。
当观测结果被加工成拓扑图,误差就从一行输出变成了一条关系。连续回复经常被解释为相邻路由器,地址随后映射到自治系统,两个连续的 AS 标签又会被写成推定互联。一次固定 TTL 重写可以由此“创造”路由器链路和 AS 链路,但运行中的网络并没有那条直接邻接。
这与熟悉的 ECMP 伪影不是一回事。普通 traceroute 的多次探测可能走不同等价路径,拼出没有任何单个数据包完整经过的序列。Paris traceroute 通过稳定流标识减少这种偏差,却仍依赖路径设备递减 TTL。保持同一流无法修复途中被改大的字段。
950 个探针足以证明问题存在,不足以代表整个互联网
Sebastian Kappes、Anja Feldmann、Tobias Fiebig 和 Johannes Zirngibl 从 RIPE Atlas 发起测量,把探测包送往可以在目的端抓包的服务器。RIPE Labs 报告称,471 个 AS 内共有 950 个探针产生了受影响的路径。
按地址族拆分的数字会重叠:IPv4 探针 800 个,IPv6 探针 538 个;涉及 IPv4 的 AS 446 个,涉及 IPv6 的 AS 263 个。直接相加会把同时支持两个地址族的探针或网络重复计算。
论文进一步识别出至少 47 个很可能存在路径干扰型重写设备的 AS。其中 43 个最常见的改写值是 255,另外 4 个是 64。样本既有源网络内的情况,也有传输途中发生的情况。RIPE Labs 列出 Orange AS5511 内 14 个探针、AT&T AS7018 内 65 个探针;它们发生重写时,最后一个可见节点仍在源 AS 内。另一些来自其他网络的路径,则在经过 Arelion AS1299 后受到影响。
这些名称是定位线索,不是归责结论。改写一旦隐藏后半段,研究者只能把最后可见地址所属的 AS 视作最可能位置;该地址也可能来自边界路由器。论文还发现,很多经过相关 AS 的路径并没有发生重写。判断必须附着在单条路径上,不能一次性给整个 AS 定性。
测量平台自身也有覆盖边界。RIPE Atlas 与 CAIDA Ark 的探针和目标分布并不均匀。大量 Atlas 测量由用户创建,组成会随时间变化。受控实验只用了有限目的地。研究证明了这类设备行为已经具有实际规模,却没有估算全网路径中有多少受到影响。
49,600 条路径的分母是 139,600,不是 2.048 亿
历史分析利用部分 ICMP 错误中保留的原始探测包 TTL。研究者查看 2025 年 11 月 10 日的 RIPE Atlas 快照,最初共有 2.048 亿条路径。其中 265 万条收到了相关 ICMP 错误,只有 139,600 条带有可供比较的引用 TTL。判定为重写的有 49,600 条,占最后这个子集的 35.5%。
因此,不能把结论写成“35.5% 的 Atlas 路径被重写”。准确说法是:在特定日期、带有引用 TTL 的子集中,35.5% 符合检测条件。从 2.048 亿缩到 139,600 的过程不是统计附注,而是决定性证据的可用范围。
历史数据最早可追到 2018 年 2 月,重写迹象此后愈发常见。但测量集合在变,ICMP 引用字段不是每次都有,而且检测方法更擅长发现 TTL 上升而非下降。这条时间序列是已检查路径的保守下限,不是设备部署普查。
CAIDA Ark 的一个案例展示了单个观测点可能受到多大扭曲。位于 AT&T AS7018 的 IPv6 节点 igx2-us 在 2025 年 10 月完成的 traceroute 中,有 93.4% 只有四跳;另一个分母下,已识别循环中有 95.9% 以三个相同节点结束。两个比例不能互换,也不能代表 AT&T 的全部流量或全部路径。
五种信号,只有两种能定案
论文提出五种检测或怀疑重写的办法,但它们的证明力不同。
| 证据或迹象 | 可以支持的结论 |
|---|---|
| 目的端抓到的探测包 TTL 高于该次测量发送过的所有 TTL | 确证该路径发生向上重写 |
| ICMP 错误引用的原始探测包 TTL 高于发送过的所有 TTL | 确证该路径发生向上重写 |
| 表面前向路径远短于估算的返回路径 | 需要数据包证据的警报 |
| 同一地址响应相邻 TTL,形成表面上的单跳循环 | 需要数据包证据的警报 |
| 表面链路与独立拓扑资料冲突 | 需要数据包证据及谨慎 AS 映射的警报 |
后三项既非必要条件,也非充分条件。短路径可能真实存在,循环可能另有原因,公开路由和对等资料也不完整。把警报直接升级为结论,只是换一种方式重复拓扑误判。
前两项则有覆盖成本。目的端抓包要求研究者能够控制目标。ICMP 方法要求目标或最后可达节点返回包含原始探测包的有效错误。证据越严格,可判定的路径就越少。
可选 ittl 不是默认的“否”
RIPE Atlas 的结果格式把 ittl 定义为触发 ICMP 错误的原始包 TTL,并明确把它列为可选字段。RIPE Labs 也说明 Atlas 只在部分路径结果里保存这个内部 TTL。字段存在且高于所有已发送值时,它可以确证重写;字段不存在时,下游处理就失去了这种比较依据。
缺失必须成为单独状态。如果数据库直接记成 ttl_rewrite=false,就会混合两个不同命题:“决定性证据没有显示上升”,以及“这条记录根本没有决定性证据”。
一个足够薄的逐路径记录可以分成四类:
confirmed_target_capture:目的端抓包证明 TTL 上升;confirmed_quoted_ttl:ICMP 引用值证明 TTL 上升;indicator_only:形态或外部拓扑可疑,但没有包级确证;evidence_unavailable:两种决定性方法都无法使用。
字段名称可以调整,语义不能合并。记录还应保存测量 ID、探针 ID、源与目的、地址族、协议、时间、最大发送 TTL、存在时的 ittl、判定方法、分类器版本,以及由此保留或撤下的拓扑边。以后获得更强证据时,可以更正结论,却不必抹掉旧收据。
原因仍在证据边界之外
研究人员没有找到能够公开引用的根因,也未能在实验室复现。两位运营者匿名提供了可能解释:一个涉及双层 MPLS 标签,以及出口设备把内层标签 TTL 写回 IP 载荷;另一个涉及网络操作系统和宽带网关功能在 ASIC SDK 中的映射缺陷。
这些说法让实现错误显得合理,却不能把所有样本归到同一家厂商或同一种配置。论文还提到“固定 TTL 是为隐藏商业关系”的猜想,但认为可能性不大,因为这种行为也会破坏运营者自己的诊断能力。路径被隐藏,不等于动机得到证明。
来源
公开说明来自 RIPE Labs 的 When Traceroutes Lie。方法、分母、限制及 AT&T 案例来自 Kappes、Feldmann、Fiebig 与 Zirngibl 获 IMC 2026 接收的论文 TTL Jumps: Unexpected TTL Rewrites Impacting Inferences from Traceroutes,DOI 为 10.1145/3777912.3809149。
可选字段见 RIPE Atlas 测量结果格式 5000 版。论文把数据包抓取和路径数据列在 DOI 10.17617/3.D5GQFG。这些来源证明的是有限数据内的机制,不是全球发生率或确定设备归责。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance

