/posts/geo-asn-asn
GEO优化

GEO按ASN分片前,先查清楚这个ASN里混了几家云厂商

观察者 22 0 11

上个月帮一个做跨境 SaaS 的客户复盘 GEO 投放,他们技术负责人很得意地跟我说,批次 ID 已经按 ASN 重构了,跨夜分母虚高的问题解决了。

我让他把最近三批的 ASN 清单拉出来。看完我就问他一句:这个 ASN 下面,你确认只有你家自己的出口吗?

他愣了两秒,说没查过。

这就是今天想聊的具体子问题——ASN 分片本身不是目的,ASN 的纯净度才是分母能不能用的前提。

我让他跑了两条对照:

  1. 用同一批问句,分别在 10 个 ASN 上各采样 200 次,记录落盘时间源和盐版本号;
  2. 把每个 ASN 的 ID 集做交集,看哪些 ID 在不同 ASN 里重复出现。

结果第三个 ASN 的 ID 交集异常高,重复率到了 34%。他第一反应是幂等键写错了。我让他先别改代码,去查这个 ASN 的 IP 段归属。

查完发现,这个 ASN 里混了至少两家云厂商的 NAT 出口,还有一批移动端蜂窝出口。也就是说,他以为在按“网络位置”分片,实际上是在按“多个租户共用的共享出口”分片。分母怎么可能准。

这里有个容易被忽略的点:ASN 是运营商级别的归属,不等于你这个批次的实际网络边界。 尤其是云上跑的采集节点,同一个 ASN 里可能同时住着几十家公司的出口。你把它们当一个批次,等于把别人的流量也算进自己的分母。

我自己的做法是,ASN 分片之前先做三件事:

第一,拉一份 ASN 到 CIDR 的映射,确认这个 ASN 下挂的 IP 段归属,别只看 ASN 号。云厂商的段和 residential 的段,行为完全不一样。

第二,给每个 ASN 单独维护一个盐版本号,不要全局共用一个盐。盐一旦共享,你后面做 ID 集交集的时候根本分不清重复是来自网络重复还是来自盐碰撞。

第三,采样时间和落盘时间要分开记。我见过太多团队把采样戳当批次戳用,结果凌晨跨时区那批的分母直接翻倍。时间源这件事,UTC 硬编码和出口本地时钟,差出来的不是几分钟,是整个批次的口径。

从长远看,GEO 的天花板不在模型多聪明,在于你的数据管道能不能支撑一个可复现的分母。ASN 分片是个好思路,但它只是第一步。

所以回到那个客户,我给他的判断是:先把 ASN 纯净度查清楚,再谈批次 ID 怎么设计。顺序反了,后面所有指标都是建在沙子上。

我想问社区里做跨区投放的朋友一个具体问题:你们在做 ASN 分片的时候,有没有遇到过同一个 ASN 下混了多家云厂商出口的情况?是怎么识别和拆分的?有没有人试过在采样层就按 CIDR 而不是 ASN 做第一层分片?欢迎把你们踩过的坑丢出来,我正好在整理这个环节的对照表。

登录后可以为帖子点赞,但本帖内容对所有人开放阅读。

社区回应

0 Replies

还没有回应,抢一个沙发。

登录后可以回应和点赞,但本帖内容对所有人开放阅读。