AS 100AS 200AS 300AS 400Tier 1AS 1

边界网关协议

11 最小阅读量联网

互联网不是一个网络,它是数以万计的独立网络,由 1989 年以来的单一路由协议连接在一起。BGP 决定数据包如何从其中任何一个网络到达另一个网络。当 BGP 崩溃时,互联网就会崩溃;由于一条路线输入错误,整个国家/地区都已离线。了解它就可以解释原因。

完整的文章正文以英文提供如下。

BGP(边界网关协议)是Internet上大型独立网络之间使用的路由协议。大约有 75,000 个这样的网络(称为 自治系统 ),BGP 是它们相互告知可以到达哪些 IP 地址范围以及通过什么路径的方式。每个跨越 ISP 边界的数据包都由 BGP 决策路由到某处。

基本思想

每个自治系统 (AS) 向其邻居宣布“我可以到达这些 IP 前缀”。邻居传播该公告,并在其前面添加自己的 AS 编号。接收 AS 会看到类似“前缀 8.8.8.0/24 可通过 AS 15169 (Google) 通过 AS 3356 (Lumen) 通过 AS 1234 (您的 ISP) 访问”。每个 AS 通过可配置策略(最短 AS 路径、最便宜的对等关系、最低延迟,无论网络运营商决定如何)评估这些路径,并将获胜路由安装在其转发表中。

BGP 在端口 179 上通过 TCP 运行。两个 BGP 路由器建立会话,并在路由发生变化时增量交换更新。没有广播或洪水;

eBGP 与 iBGP

BGP 共存的两种风格:

  • eBGP(外部 BGP) 在两个不同的自治系统之间运行。这是一级运营商从客户 ISP 学习路由的方式,或者 Google 如何在 Internet 交换机上与 Comcast 进行对等的方式。
  • iBGP(内部 BGP) 在单个 AS 内运行 inside,以将一台路由器学习到的外部路由传播到同一网络中的所有其他路由器。如果没有 iBGP,多路由器 AS 就无法了解自己对 Internet 的集体视图。

P 策略,而不是最短路径

与查找数学上最短路径的内部协议(OSPF、IS-IS)不同,BGP 针对网络运营商的 业务策略 进行优化。典型的 ISP 更喜欢:

  1. 通过自己的客户(他们支付传输费用)而不是同行(不花钱)而不是上游提供商(支付他们费用)。
  2. 更短的 AS 路径长度,本地首选项的平局和最低的路由器 ID。
  3. 之间协商的特定 MED 值peers.

这意味着如果策略如此规定,BGP 路由可能会故意在延迟或跳数方面不是最佳的。这就是设计 — BGP 是业务模型与线路相遇的协议。

著名的中断

BGP 错误配置导致了历史上一些最严重的互联网中断。 2008 年,巴基斯坦电信宣布了一条更具体的路线,从而在全球范围内封锁了 YouTube。 2010年,中国电信公布了数万个其不拥有的前缀,短暂吸收了所有互联网流量的15%。 Facebook 2021 年的大规模宕机是由于 BGP 撤销导致其权威 DNS 服务器脱离互联网,此后他们甚至无法进入自己的建筑物进行修复。

共同主题:BGP 是一种基于信任的协议。直到最近,还没有对谁可以宣布哪些前缀进行加密验证。无论谁宣布得最响亮,互联网都会相信。

RPKI:缓慢的修复

资源公钥基础设施 (RPKI) 允许地址持有者以加密方式声明“只有这些 AS 有权宣布我的前缀”。验证 RPKI 的路由器会丢弃未经授权的公告。 RPKI 部署在 2024 年至 2026 年期间加速,目前覆盖超过 50% 的路由前缀;大多数主要一级运营商和 CDN 均经过验证。这不是一个完整的解决方案 - RPKI 说谁被授权使用 originate 前缀,而不是说谁被允许 transit 它 - 但它消除了许多简单的劫持。

BGP 和 VPN

最大的商业 VPN 提供商使用 BGP 来选播他们的端点 - 相同的 IP 地址解析为数十台物理服务器中最接近的一台。 Cloudflare、Google 的 8.8.8.8 和 Quad9 的 9.9.9.9 都使用 BGP 任播。当您连接到这些地址之一时,BGP 路由会为您选择最近的实例,而无需基于 DNS 的地理重定向。

为什么很难取代

BGP 具有众所周知的弱点:收敛速度慢(传播路由更改需要几分钟)、默认基于信任、随前缀数量线性扩展(目前约为 100 万个 IPv4 + 200,000 个 IPv6)。多年来,一些研究项目提出了替代方案;尚未部署任何一个。原因在于路径依赖:互联网上的每个路由器都使用 BGP,每个运营商都围绕它建立了运营实践,没有人想成为第一个更换到其他路由器的人。在可预见的未来,1989 年的协议将成为互联网的协议。

常见问题

作为普通用户我需要了解 BGP 吗?
不是直接,但它解释了这个消息。当您阅读“BGP 泄漏”或“AWS 公告造成的重大中断”时,您正在阅读决定您的数据包无法到达服务的路由协议。了解 BGP 可以使这些标题从模糊变得清晰。
为什么互联网有这么多自治系统?
每个有意义的网络运营商都希望拥有自己的网络。大学、ISP、云提供商、大型企业、内容交付网络——任何拥有多个 Internet 连接的人通常都会获得 ASN 来管理自己的路由策略。目前全球数量约为 75,000 人。
小型网络可以公布它想要的任何前缀吗?
从技术上讲是的——BGP 本身没有强制执行。在实践中,上游提供商通常会根据记录的分配来过滤客户的公告,并且 RPKI 越来越多地用于验证来源。未经授权的公告仍然偶尔会漏掉,这就是 BGP 劫持的发生方式。
BGP 如何影响 VPN 性能?
当您连接到商业 VPN 的任播 IP 时,BGP 会为您选择最近的服务器。如果对等互连链路中断或有新路径可用,这种情况随时可能发生变化 - 这就是为什么昨天感觉很快的 VPN 今天可能会变慢,而这并不是您的错。
BGP难学吗?
基本概念很简单——“谁能到达什么,传播给邻居。”困难的部分是策略:路由属性如何与本地首选项、MED、社区、AS 路径操作交互。大多数声称拥有 BGP 专业知识的网络工程师意味着他们已经调试了足够多的这些交互,知道可能发生的情况。
BGP 解释:将互联网维系在一起的协议