KNOWLEDGE BGP ASN ROUTING EXPLAINED

AS / ASN / BGP 路由 — 看懂互联网骨架

互联网不是一张网, 而是 75000+ 个自治网络 (AS) 之间用 BGP 协议互联拼起来的。AS 号是啥? BGP 怎么工作? 路由泄漏 / 劫持怎么发生?

一段话先讲明白

"互联网"实际上是 75000+ 个独立网络 (AS, Autonomous System) 之间互相连接拼成的, 每个 AS 有唯一编号 (ASN, 例如 AS13335 = Cloudflare)。 这些 AS 之间用 BGP 协议 互相宣告 "我这里有哪些 IP 网段", 形成全球路由表 (约 100 万条 IPv4 前缀, 20 万条 IPv6)。 你的数据包从家里到 Google, 通常跨越 4-15 个 AS。下面一步一步讲清楚。

一、什么是 AS — Autonomous System

AS (自治系统) 是一个或一组在统一管理策略下的 IP 网络。一个 AS 内部用什么路由协议 (OSPF / IS-IS) 是私事, 但 AS 之间用 BGP 公开宣告自己的 IP 前缀。

  • 大型 ISP 自己是一个 AS (中国电信 AS4134, 中国联通 AS4837, 中国移动 AS9808)
  • 大型云厂商是一个 AS (Google AS15169, Cloudflare AS13335, AWS AS16509)
  • 大学 / 政府 / 大型企业可以拥有自己的 AS
  • 普通家宽用户的 IP 是从他 ISP 的 AS 里分出来的, 用户不需要自己的 AS

1.1 谁分配 ASN

ASN (AS 编号) 由 5 个区域注册局 (RIR) 管理:

RIR区域典型 ASN 范围
ARIN北美AS1-AS6655 + 部分
RIPE NCC欧洲 / 中东AS6656-AS9215 + 部分
APNIC亚太AS17676-AS18431 + 部分
LACNIC拉美AS27648-AS28671 + 部分
AFRINIC非洲AS36864-AS37887 + 部分

ASN 早期是 16 位 (0-65535, 1996 年后开始紧张), 现在是 32 位 (0-4294967295, RFC 6793), 全球目前实际用了约 12 万个。

1.2 ASN 怎么读 — 几种格式

AS13335 // 老格式 (16-bit)
AS393227 // 新格式纯数字 (32-bit)
AS6.10 // 老 dot 格式 (= 6×65536+10 = 393226, RFC 5396 已废弃)

现代用纯数字格式即可。"AS" 前缀可省, 但写完整更清晰。

二、BGP — 互联网的"邮政编码系统"

BGP (Border Gateway Protocol), 边界网关协议 (RFC 4271), 是 AS 之间唯一的路由协议。 每个 AS 通过 BGP 向邻居 AS 宣告: "下面这些 IP 前缀我能到, 经过我能到达后面这些 AS"。

2.1 BGP 通告的核心信息: 前缀 + AS-PATH

BGP 路由表 (RIPE RIS 截取)
Prefix                Next Hop          AS-PATH
104.16.0.0/13    203.0.113.1   AS3356 AS13335   ← 经 Lumen 到 Cloudflare
104.16.0.0/13    198.51.100.5   AS6939 AS13335   ← 经 HE.net 到 Cloudflare
8.8.8.0/24      203.0.113.1   AS3356 AS15169   ← 到 Google DNS
202.106.0.0/16  198.51.100.5   AS6939 AS4847 AS4134 ← 到中国电信北京

AS-PATH 是从源 AS (前缀的拥有者) 到当前路由器经过的所有 AS。从右往左读 — 最右是源, 最左是邻居。

2.2 BGP 怎么选最佳路径

同一个前缀有多条路径时, BGP 按以下优先级选 (摘要):

  1. LOCAL_PREF 越大越好 — 本 AS 内部偏好 (谁先用)
  2. AS-PATH 长度越短越好 — 经过的 AS 越少越好
  3. Origin: IGP (内部) > EGP > Incomplete
  4. MED (Multi-Exit Discriminator) 越小越好 — 跨 AS 提示
  5. eBGP > iBGP
  6. IGP cost 越小越好
  7. Router ID 越小越好 (最后 tiebreak)

注意: BGP 不一定选最快路径。AS-PATH 短 ≠ 物理延迟低。一条经过 1 个 AS 的洲际线路可能比经过 3 个 AS 的同城线路慢。

三、Tier 1 / Tier 2 / Tier 3 — ISP 分层

所有 AS 按"是否需要花钱买上游 transit"分成三层:

层级定义典型代表
Tier 1不向任何人付费, 互相 peering 就能访问全球AT&T AS7018, Verizon AS701, Lumen/Level3 AS3356, NTT AS2914, Telia AS1299, Tata AS6453, GTT AS3257, 中国电信 AS4134 (部分定义), 中国联通 AS4837
Tier 2跟少数 Tier 1 peering, 但部分访问要付费大部分国家级 ISP / 大型云厂商 (Google AS15169, Microsoft AS8075, Cloudflare AS13335)
Tier 3必须向上游付费才能访问其他网络小型本地 ISP / 接入运营商

家宽数据包路径示意: 你家 → 当地小 ISP (Tier 3) → 省级 / 城域网 (Tier 2) → 中国电信骨干 (Tier 1) → 海外 Tier 1 → 目标网络。

四、自己实测 — 从家到 Google 跨了哪些 AS

mtr -bz (BSD: traceroute -A) 可以看每一跳的 AS 号:

mtr -bz www.google.com (Linux)
HOST: xxx                Loss%   Snt   Last  Avg   ASN
1.  192.168.1.1                0.0%   10   0.5  0.6   (私网, 无 ASN)
2.  61.183.x.x                 0.0%   10   3.2  3.5   AS4134  中国电信
3.  202.97.x.x                 0.0%   10   5.1  5.4   AS4134  中国电信骨干
4.  202.97.x.x                 0.0%   10  15.2  16.1  AS4134
5.  202.97.x.x                 0.0%   10  45.3  46.0  AS4134  出境前节点
6.  211.95.x.x                 0.0%   10 156.4 158.2  AS4134  国际出口
7.  72.14.215.x                0.0%   10 158.1 159.8  AS15169 Google 网络
8.  142.250.x.x                0.0%   10 159.8 161.2  AS15169 Google
9.  142.250.x.x (www.google.com)  0.0%   10 160.2 162.0  AS15169

从这个 mtr 可以看出:

  • 家里 → 电信小区 (AS4134, 跳 2-3): < 10ms
  • 电信骨干 (AS4134, 跳 4-6): 5-150ms
  • 国际出口跳到 Google (AS15169, 跳 7): 150+ms 突变 ← 出境延迟
  • Google 内部 (AS15169, 跳 8-9): < 5ms

中国家宽到 Google 跨了 2 个 AS, AS-PATH 长度极短, 但物理延迟大 — 这就是我们说的"BGP 不等于物理延迟"。

五、BGP 的两个安全噩梦 — 路由泄漏 + 路由劫持

5.1 路由泄漏 (Route Leak)

一个 AS 把不该传给上游的路由错误传给了上游 / 邻居, 导致全球流量被引向错误路径。 典型: 一个 ISP 把客户路由误当成自己的路由, 宣告给所有人。

知名事件: 2017 Level3 错误宣告导致全球 Cogent 客户流量受影响。

5.2 路由劫持 (BGP Hijack)

恶意 AS 宣告不属于自己的 IP 前缀。其他 AS 接受后, 流量被引向劫持者, 可以做 MITM / 拒绝服务 / DNS 污染。

典型事件:

  • 2008 巴基斯坦 PTCL 宣告 YouTube 前缀, 全球 YouTube 流量被引到巴基斯坦, 持续 2 小时
  • 2018 俄罗斯运营商劫持 80+ 加密货币交易所前缀, 持续 2 小时
  • 2022 俄罗斯 RTCOMM 短暂劫持 Twitter 前缀

5.3 防御 — RPKI 给路由签名

RPKI (Resource Public Key Infrastructure), RFC 6480 系列, 让 IP 前缀的合法持有者用密码学签名"这个前缀只能来自这个 AS"。 支持 RPKI 的 BGP 路由器收到不签名 / 签名错的路由会丢弃。

目前全球约 50% IPv4 前缀有 RPKI 签名。在 cleanip.io 上查 IP 时, "AS 信息" 卡里会显示 RPKI 状态: valid / invalid / not-found。

六、怎么查 IP / 域名属于哪个 ASN

6.1 用 cleanip.io 直接查

直接访问 https://cleanip.io/8.8.8.8https://cleanip.io/AS15169 — 我们显示完整的 ASN 信息、注册时间、IP 段、上下游、地理分布。

6.2 用 cleanip.io 的 BGP 可视化

/asn-graph 给任意 ASN 画 BGP 拓扑 — 从 Origin 经 Tier 2 到 Tier 1, 一目了然谁在 peer 谁。

/asn-history 看 IP / CIDR 的历史归属 — 一个 CIDR 历史上属于过哪些 AS, 什么时候变更。

6.3 命令行工具

terminal — ASN lookup
$ whois -h whois.cymru.com " -v 8.8.8.8"
AS      | IP        | BGP Prefix    | CC | Registry | Allocated  | AS Name
15169   | 8.8.8.8   | 8.8.8.0/24    | US | arin     | 1992-12-01 | GOOGLE, US

$ curl https://api.bgpview.io/ip/8.8.8.8 | jq
{
  "data": {
    "ip": "8.8.8.8",
    "prefixes": [{
      "asn": { "asn": 15169, "name": "Google LLC" },
      "prefix": "8.8.8.0/24"
    }]
  }
}

七、常见 ASN 速查

ASN名称类型
AS13335CloudflareCDN / DNS
AS15169Google云 / 搜索
AS16509Amazon AWS
AS8075Microsoft / Azure
AS32934Facebook (Meta)社交
AS13414Twitter / X社交
AS2906Netflix视频
AS4134中国电信ISP (Tier 1 部分)
AS4837中国联通ISP
AS9808中国移动ISP
AS37963阿里巴巴 / 阿里云
AS45102阿里云国际
AS132203腾讯云
AS9009M247 (主流 VPN 主干)IDC
AS62371Proton AG (ProtonVPN)VPN
AS24940Hetzner德国 VPS
AS16276OVH法国 VPS
AS20473Choopa (Vultr)VPS
AS14061DigitalOceanVPS

八、为什么这些知识对普通用户也重要

  • 风控系统判断 IP 信誉时会看 ASN — 数据中心 ASN (云厂商 / VPN 厂商) 通常被打低分; 家宽 ASN (中国电信 / 联通) 信誉更高
  • 跨境业务选 CDN 时, 看目标用户 ASN 跟 CDN 节点的 AS 距离 — 一篇文章告诉你 cleanip.io 这个 IP 在哪个 AS
  • 遭遇 DDoS 时, ASN 是溯源第一线索 — "攻击流量大部分来自 AS46562 Performive 数据中心"
  • 选 VPN 时, 看它租的是哪家 IDC 的 ASN — VPN 溯源 里详细讲

延伸阅读

mimetic
mimetic
mimetic