IP 地址与网络

BGP (边界网关协议)

约 5 分钟阅读

什么是 BGP

BGP (Border Gateway Protocol,边界网关协议) 是互联网上不同网络 (称为自治系统,AS) 之间交换路由信息的协议。互联网由数万个 AS 相互连接而成,BGP 在各个连接点传递「通过哪条路径可以到达哪个网络」的信息。

当你访问一个网站时,数据包会经过多个 ISP 和运营商的网络才能到达目的地。决定这条路径的就是 BGP。如果 BGP 无法正常工作,数据包将无法到达目的地,整个互联网都会陷入瘫痪。BGP 被称为「互联网的路标」,是支撑全球路由的最重要协议之一。

AS 号码与路由选择机制

AS (Autonomous System,自治系统) 是由单一管理实体运营的网络集合。每个 AS 由 IANA (互联网号码分配机构) 分配一个唯一的 AS 号码 (ASN)。例如,Google 拥有 AS15169,Amazon 拥有 AS16509。

BGP 路由器通过 TCP 端口 179 与相邻 AS 的 BGP 路由器建立连接,通告自己可达的网络前缀 (IP 地址范围)。接收方根据 AS 路径长度、本地优先级、MED (多出口鉴别器) 等属性,从多条候选路由中选择最优路径。

AS 路径长度
经过的 AS 数量,越短越优先。AS 路径预置技术可以故意增加路径长度来降低特定路由的优先级。
本地优先级
在 AS 内部设置的优先级值,值越大越优先。常用于优先选择对等互联路由而非付费转接路由。
MED
向相邻 AS 表达「请使用这个入口」的属性。在存在多个互联点时用于控制流量入口。

BGP 的路由选择不是简单的最短路径算法,而是反映了商业关系 (对等互联、转接)、成本和流量工程策略。

BGP 劫持 - 路由被盗用时会发生什么

BGP 劫持是指攻击者通过 BGP 非法通告不属于自己的 IP 前缀,从而截获流量的攻击方式。由于 BGP 在设计上不验证路由通告的合法性,恶意通告会原样传播到整个互联网。

  • 2008 年 YouTube 事件:巴基斯坦的一家 ISP 以更精确的路由 (/24) 通告了 YouTube 的 IP 前缀,导致全球的 YouTube 流量被引导至巴基斯坦。YouTube 在全球范围内约 2 小时无法访问。
  • 2018 年 Amazon Route 53 事件:BGP 劫持将 Amazon DNS 服务的流量引导至攻击者,加密货币交易所用户被重定向到钓鱼网站,约 15 万美元的加密货币被盗。
  • 2021 年 Facebook 大规模故障:Facebook 误撤回了自身的 BGP 路由通告,导致 Facebook、Instagram、WhatsApp 在全球范围内约 6 小时无法访问。

BGP 劫持不仅是蓄意攻击,也经常因运维人员的配置失误 (路由泄露) 而意外发生。2019 年,中国某 ISP 的配置错误导致欧洲流量被绕道中国。

RPKI - 路由的加密验证

RPKI (Resource Public Key Infrastructure,资源公钥基础设施) 是一种通过加密方式验证 BGP 路由通告是否来自授权 AS 的机制。IP 前缀持有者签发 ROA (路由来源授权),声明「允许通告此前缀的 AS 是哪个」。

BGP 路由器将收到的路由通告与 ROA 进行比对,分为以下三种状态:

Valid (有效)
与 ROA 匹配,作为合法通告接受。
Invalid (无效)
与 ROA 矛盾,很可能是非法通告,建议丢弃。
Not Found (未验证)
不存在 ROA,按传统方式接受,但无法享受验证保护。

RPKI 的普及正在稳步推进,截至 2024 年,全球约 50% 的 IP 前缀已签发 ROA。Cloudflare、Google、Amazon 等大型服务商已实施 Invalid 路由丢弃。但仍有大量路由处于 Not Found 状态,因此尚未实现完全防护。建议将 RPKI 与 IRR 过滤和 BGPsec 结合使用,构建多层防御。

BGP 与日常互联网体验

普通用户不会直接操作 BGP,但 BGP 的运行对互联网体验有重大影响。ISP 是否优化了 BGP 路由,会影响同一宽带套餐下访问海外网站的速度。

运行 traceroute 命令可以查看数据包经过的 AS。经过的 AS 越多,延迟通常越高,这直观地说明了 BGP 路由选择对性能的直接影响。

当发生大规模 BGP 故障时,特定地区或服务可能从互联网上「消失」。BGP 路由数据通过 RIPE RIS 和 RouteViews 等项目实时公开,任何人都可以查看,这些数据也被用于检测网络故障和劫持事件,支撑着互联网的透明性。

常见误解

BGP 决定互联网速度
BGP 决定的是「走哪条路」,而不是连接的带宽或速度。不过,路由选择会间接影响延迟和吞吐量,因为它决定了数据包经过多少个 AS 以及这些网络的质量。
BGP 劫持需要高超的技术能力
拥有 AS 号码的网络运营者在技术上可以轻松执行 BGP 劫持,只需发送非法路由通告即可。BGP 在设计上不验证通告的合法性。实际上,许多 BGP 劫持是运维人员的配置失误造成的意外事故。
部署 RPKI 就能完全防止 BGP 劫持
RPKI 验证的是路由来源 (Origin AS) 的合法性,无法检测 AS 路径本身的篡改。没有签发 ROA 的前缀不在验证范围内。RPKI 是重要的防御层,但单独使用无法提供完全保护。
分享

相关术语