边界网关协议 (BGP)是一种标准化的外部网关协议,旨在在 Internet 上的自治系统 (AS) 之间交换路由和可达性信息。从最基本的意义上讲,BGP 是一种将 Internet 连接在一起的路由协议。它负责为数据包通过多个自治系统选择从其源到目的地的最佳路由。
什么是BGP?
当 Internet 的概念最初形成时,以及随后的几年中,Internet 只是一个小小的云。因此,以静态路由为代价实现了连接性,即路由器上的路由表是预先配置的,不考虑动态更改。但随着 Internet 的激增,静态路由已不再足够。路由协议需要更加动态,并根据各种因素(如流量水平、路由器跳数、带宽、可靠性等)在现有路由中加入新路由/更改。这种补偿网络拓扑变化的能力使动态路由成为基础对于互联网。
什么是自治系统?
随着 Internet 上设备数量的增加,路由数量也随之增加。当跟踪大量路由变得越来越困难时,网络世界决定使用自治系统。自治系统的概念源于互联网的基本定义,互联网是互连计算机网络的全球系统。一个自治系统(AS)在因特网上是一个网络或一组使用相同路由策略的网络,通常由相同的互联网服务提供商(ISP)提供服务。每个自治系统都分配有一个唯一的标识号,称为自治系统号 (ASN),由各种路由协议使用。
BGP 允许 Internet 上的不同自治系统共享路由信息。自治系统的网关称为自治系统边界路由器 (ASBR)。ASBR 负责从邻居那里收集路由信息,维护 BGP 路由表,并进一步将它们通告给对等体。
让我们考虑一个简单的例子来理解 BGP 如何将 Internet 绑定在一起。AS 51 和AS 49 是BGP 对等体,并建立了旨在相互交换路由信息的邻居关系。AS 49 和AS 234、AS 51 和AS 110、AS 234 和AS 110 建立了类似的邻居关系。BGP 允许每个对等方从其相邻对等方收集路由信息,然后进一步完整地通告该信息。因此,AS 51 中的 ASBR 知道它如何将数据包路由到 AS 234,即使它们没有直接连接。BGP 是一种路径向量路由协议,因为 ASBR 中的路由表包含网络前缀到构成路径的自治系统列表的映射。
让我们假设驻扎在印度的设备 1 想要连接到驻扎在美国的设备 2。设备 1 订阅了网络自治号为 51 的 ISP 的服务,设备 2 订阅了网络自治号为 234 的 ISP 的服务。 当连接到设备 2 时,设备 1 发送带有源的数据包IP 是它自己的 IP 地址,目标 IP 是设备 2 的 IP 地址。数据包首先到达 AS 51 的网关,那里的路由器断定数据包的目的地不在其自己的网络中。它通过 AS 51 的内部路由器路由这个数据包。
请注意,自治系统内部的路由过程是使用内部网关路由协议 (IGRP)、开放最短路径优先 (OSPF)、路由信息协议 (RIP)、中间系统到中间系统 (IS-IS) 等协议实现的。与 BGP 不同,它不能在外部使用。
在示例拓扑中,观察到有两条从 AS 51 到 AS 234 的路由。
- AS 51 -> AS 49 -> AS 234
- AS 51 -> AS 110 -> AS 234
当到达目的地的路径有多条时,BGP 能够根据组织的路由策略收集的信息(基于负载、延迟、可靠性、成本等指标)将所有路径从最首选到最不首选进行排序. 这些指标本质上是动态的,因此,BGP 路由表会根据现有网络条件反映到达目的地的最佳路径。ASN 51 的 ASBR 查找到数据包目的地的路径,并通过 AS 49 或 AS 110 将其转发,以当时最优先的为准。如果没有 BGP,ASN 51 的 ASBR 将永远不会知道将数据包转发到哪条路径以使其到达目的地。
BGP 的安全性如何?
需要注意的是,BGP 旨在创建一个全球网络网格,当时安全性并不是一个重要方面。因此,BGP 本身很少能阻止攻击和利用。路由劫持是一种更常见的 BGP 攻击,其中攻击者使用 BGP 向对等方通告虚假/有害路由,从而通过引发网络攻击、关闭服务或造成可靠性问题来轻松破坏互联网。
为了保护 BGP,互联网工程任务组 (IETF) 提倡 ISP 和企业进入从互联网编号分配机构 (IANA) 开始的信任链,并将其授权路由注册到作为 BGP 对等体的自治系统。AS 51 和 AS 49 签订协议,限制它们交换虚假路由。除此之外,ISP 通常会在其 ASBR 上配置数据包检查器和过滤器以谨慎行事。因此,BGP 为 ISP 提供了对其通告的路由以及它从其对等方接受的路由的更多控制。出于这个原因,在许多其他协议中,可以毫无疑问地说BGP 是 Internet 领先的外部网关协议。