什么是 BGP?|BGP 路由说明

边界网关协议 (BGP) 是 Internet 的路由协议。就像邮局处理邮件一样,BGP 选择最有效的路线来传递 Internet 流量。

Share facebook icon linkedin icon twitter icon email icon

BGP

学习目标

阅读本文后,您将能够:

  • 定义 BGP 路由
  • 探索自治系统之间的关系
  • 说明 BGP 如何影响 Internet 的功能

什么是 BGP?

边界网关协议 (BGP) 就是 Internet 的邮政服务。当某人将一封信投到邮箱中时,邮政服务会处理该邮件,并选择快速、高效的路线将这封信投递给收件人。同样,当某人通过 Internet 提交数据时,BGP 负责查看数据可以传播的所有可用路径并选择最佳路线,这通常意味着在自治系统之间进行跳跃。

BGP 是使 Internet 正常工作的协议。它通过支持 Internet 上的数据路由来做到这一点。当新加坡的用户加载源站位于阿根廷的网站时,BGP 是使该通信快速、有效地发生的协议。

什么是自治系统?

Internet 是一个网络组成的网络;它可以分解成成千上万个称为自治系统 (AS) 的小型网络。每一个网络本质上都是由单个组织运行的大型路由器池。

Internet topography

如果我们继续将 BGP 视为 Internet 的邮政服务,则 AS 就像各个邮局分支机构。一个城镇可能有数百个邮箱,但是这些邮箱中的邮件必须先经过当地的邮政分支机构,然后才能送到另一个目的地。AS 中的内部路由器就像邮箱一样,它们将出站传输转发到 AS,然后 AS 使用 BGP 路由将这些传输送到目的地。

BGP Simplified

上图说明了 BGP 的简化版本。在此版本中,Internet 上只有 6 个自治系统。如果 AS1 需要将数据包路由到 AS3,有两种不同的选择:

跳到 AS2,然后跳到 AS3:

AS2 → AS3

或跳到 AS6,然后跳到 AS5,然后是 AS4,最后跳到 AS3:

AS6 → AS5 → AS4 → AS3

在此简化模型中,决策似乎很简单。与 AS6 路线相比,AS2 路线所需的跃点更少,因此它是最快、最有效的路线。现在想象一下,有成千上万的 AS,并且跃点数量只是复杂路线选择算法的一部分。这就是 Internet 上的 BGP 路由的真实情况。

Internet 的结构在不断变化,新系统不断出现,现有系统不断变得不可用。因此,每个 AS 都必须保持有关新路线和过时路线的信息。这是通过对等会话完成的,在对等会话中,每个 AS 都使用 TCP/IP 连接连接到相邻的 AS,以共享路由信息。使用这些信息,每个 AS 都可以正确路由来自内部的出站数据传输。

到这里,我们的比喻就不适用了:与邮局分支机构不同,自治系统并非全部属于同一组织。因此,它们没有理由友善对待彼此,并且往往是商业竞争对手!因此,BGP 路由有时会考虑业务因素。自治系统经常互相收费,然后才在其网络上传输流量,并且访问价格可能成为最终选择哪个路由的决定因素之一。

谁在运营 BGP 自治系统?

自治系统通常属于 ISP 或其他大型高科技组织,例如科技公司、高校、政府机构和科研机构。希望交换路由信息的每个自治系统必须具有一个注册的自治系统编号 (ASN)。Internet 编号分配机构 (IANA) 将 ASN 分配给区域 Internet 注册表 (RIR),后者再将其分配给 ISP 和网络。ASN 是介于 1 到 65534 之间的 16 位数字,以及介于 131072 和 4294967294 之间的 32 位数字。截至 2018 年,全球大约有 64,000 个 ASN 在使用中。这些 ASN 仅对于外部 BGP 而言是必需的。

外部 BGP 与内部 BGP 有什么区别?

在 Internet 上,路线的交换和流量的传输是使用外部 BGP 或 eBGP 进行的。自治系统还可以使用内部 BGP 版本通过其内部网络进行路由,这称为内部 BGP,简称 iBGP。应该注意的是,使用内部 BGP 不是使用外部 BGP 的前提条件。自治系统可以从多种内部协议中进行选择,以连接其内部网络上的路由器。

外部 BGP 就像国际运输;在国际范围内运送邮件时,需要遵循某些标准和准则。邮件到达目的地国家/地区后,必须通过目的地国家/地区的本地邮件服务才能到达最终目的地。每个国家/地区都有自己的内部邮件服务,不一定与其他国家/地区遵循相同的准则。同样,每个自治系统都可以具有自己的内部路由协议,用于在自己的网络中路由数据。

BGP 会如何破坏互联网

2004年,一个名为 TTNet 的土耳其 Internet 服务提供商 (ISP) 意外地向相邻提供商通告了不良的 BGP 路线。这些路线声称 TTNet 本身是 Internet 上所有流量的最佳目的地。随着这些路线传播到更多的自治系统中,发生了一场大规模的中断,造成了时长 1 天的危机,全世界许多人无法访问部分或全部 Internet。

同样,2008 年,巴基斯坦 ISP 试图使用一条 BGP 路线来阻止巴基斯坦用户访问 YouTube。ISP 随后意外地将这些路线与相邻 AS 的路线发布了出去,并且该路线在 Internet 的 BGP 网络中快速传播。这条路线使试图访问 YouTube 的用户无法得到响应,导致 YouTube 数小时都无法访问。

这些是就称为 BGP 劫持的做法的示例,它们并不总是偶然的。在 2018 年 4 月,攻击者故意创建了错误的 BGP 路线来重定向用于 Amazon DNS 服务的流量。攻击者通过将这些流量重定向给自己,窃取了价值 100,000 美元的加密货币

之所以会发生此类事件,是因为 BGP 的路线共享功能依赖于信任,而自治系统会默认信任与其共享的路线。尽管有许多雄心勃勃的提议旨在使 BGP 更安全,但这些提议却难以实施,因为它们将要求每个自治系统同时更新其行为。由于这将需要成千上万的组织进行协调,并有可能导致整个 Internet 暂时瘫痪,因此任何一项重大提议似乎都不可能在短期内付诸实施。