什么是 ASN?开发者指南
ASN,即自治系统编号(Autonomous System Number),是用于标识一个由单一组织运营、并在互联网上通告自己路由的网络的唯一编号,这样的网络例如 ISP、云服务商、大学或大型企业。查询 IP 地址时,ASN 这个字段会告诉你该地址属于哪个网络,以及由谁运营。
什么是自治系统
互联网不是一个单一的网络,而是由独立运营的网络组成的集合。其中每个网络称为一个自治系统,控制着自己的地址空间和路由策略。为了交换可达性信息,自治系统使用边界网关协议(BGP)与邻居通信。每个系统通告它能将流量送达的 IP 前缀,每条通告都带有发起该通告的网络的 ASN。
Google 的网络有 ASN,住宅 ISP、移动运营商、内容分发网络和托管公司也有。例如 AS15169 注册给 Google。一家公司可能运营多个自治系统,而只有单一上游的小型组织往往没有,而是使用其服务商的编号。ASN 最初是 16 位数字,后来空间扩展到了 32 位,这就是为什么你会同时看到很小和非常大的 ASN 值。
谁来分配 ASN
ASN 按层级分配。IANA 将编号块分发给五个区域互联网注册管理机构,再由这些机构将其分配给各自区域内的组织:
- AFRINIC 负责非洲。
- APNIC 负责亚洲和太平洋地区。
- ARIN 负责美国、加拿大和加勒比地区的部分区域。
- LACNIC 负责拉丁美洲和加勒比地区的部分区域。
- RIPE NCC 负责欧洲、中东和中亚的部分区域。
组织向其注册管理机构申请,通常是以会员身份或通过赞助服务商,并且一般需要说明申请理由,例如正在运营或计划运营多宿主网络。各注册管理机构的要求和费用不同,因此请查看你要申请的机构的当前政策。有些号段保留用于私有用途和文档,绝不会出现在公共互联网上。
开发者为什么应该关心
IP 地址本身只是一个数字。ASN 赋予它一个所有者,从而开启了若干实际用途。你可以区分托管和云网络与消费级 ISP,这对机器人检测和解读流量很重要。你可以按网络而不是按单个地址来调整允许列表和封锁列表,也可以按来源对滥用行为分组,而不是一个地址一个地址地追查。在事件处置期间,发现几十个来源共用同一个 ASN,会把零散的日志变成一种模式。
ipto 上的 ASN 查询接受 AS15169 这样的 AS 编号,返回其注册所有者、组织名称、国家,以及归属于它的 IP 地址段数量,并为每个 ASN 提供专门页面,列出其通告的地址段。答案来自 ipto 自己的路由和注册数据集,每天刷新。在主 IP 查询中,asn 和 org 字段为给定地址提供同样的信息,并附带 is_vpn、is_datacenter 和 is_abuser 等标记。
ASN、安全及其局限
ASN 是信誉判断的有用输入,因为各网络在管束客户方面的做法各不相同。这就是为什么 VPN 检测将黑名单与 ASN 数据结合,也是为什么滥用网络排名和 IP 滥用检查器会显示某个地址位于哪个网络。当你能看到不良主机周围的整个地址段时,它就更容易采取行动,而 IP 地址段目录让你可以按 /8 和 /16 地址块浏览。
了解 ASN 不能告诉你什么,同样有帮助:
- 它描述的是谁在运营某个网络,而不是谁在使用其中的某个地址。一个云 ASN 涵盖成千上万互不相关的客户。
- 国家是注册国家,不一定是基础设施实际所在的位置。
- 注册记录可能落后于收购和重组。
- BGP 本身建立在信任之上。网络可以通告它并不拥有的前缀,这称为路由劫持,而 RPKI 路由起源验证正是为帮助检测这种情况而存在的。RPKI 查询会检查当前为某个 IP 通告的路由是否被有效的 ROA 覆盖,并报告 valid、invalid 或未覆盖。
要进一步了解归属,通过 RDAP 的 IP whois 会返回某个地址块的结构化注册记录。免费套餐每天允许 1,000 次请求,无需注册,API 文档列出了各个端点。相关概念请参阅什么是 CIDR 地址块,因为每个 ASN 都以 CIDR 前缀的形式通告其地址空间。