我们可以将 BGP 视为互联网的 GPS 系统,它向互联网上正在交换的所有数据显示应采用哪条路径才能有效传输。想象一下,您正在通过 Messenger 向另一个国家的朋友发送带有照片的短信。您的消息和照片在到达目的地之前要穿越多个国家。BGP 通过确保您的电子邮件数据在不同网络中采用最有效的路径来引导这一旅程。在本文中,我们将准确解释 BGP 的工作原理,以便您了解数据如何在互联网上可靠地移动。
虽然我们每天都在无缝地与互联网互动,但互联网的功能依赖于复杂的基础设施,以实现快速的数据传输。该基础设施由横跨国家和大洲的复杂光纤电缆网络、手机信号塔以及偏远地区的卫星传输组成。
在这个物理层之下,各行各业都在协调复杂的流程,以充分利用基础设施的潜力。在这些流程中,路由是一项关键的核心功能,由路由协议实现。路由是将数据包中的数据从源头定向到目的地的方法。互联网路由的核心是边界网关协议 (BGP),也就是本文的主题。
简而言之,BGP 帮助互联网的不同部分相互通信。每个部分都有自己的一组 IP 地址,就像一个唯一的 ID。BGP 收集这些 ID 并将其存储在数据库中。当数据需要从互联网上的一个地方(自治系统)移动到另一个地方时,BGP 会检查这个数据库以找到最直接的到达方式。
现在让我们更深入地解释这一点。要完全理解 BGP 的工作原理,我们首先需要了解网络世界中自治系统 (AS) 的含义。可以将其视为互联网的一部分或区域,由服务提供商、企业(例如银行、公司)或机构(例如大学、非营利组织)管理。所谓的一级服务提供商(例如,Arelion(前 Telia)、NTT、德国电信)充当互联网的骨干,大多数公司和区域提供商都连接到它们以建立相互的网络链接。与此类骨干提供商链接的组织成为互联网不可或缺的组成部分,共同形成由数千个 AS 组成的网络。其中,某些 AS 承担骨干实体 (ISP) 的角色,而其他 AS 则作为较小的 AS 或区域连接。
每个 AS 管理其自己的唯一地址空间,其中包含该 AS 独有的一系列 IP 地址。AS 会交换其 IP 范围,这项任务主要由 BGP 执行。BGP 的主要功能是促进这种交换,与其他 AS 共享其自己的 AS 唯一地址并从它们那里接收 IP 地址信息。
如果 IP 地址信息带有其长度(子网掩码),则称为“路由”或“前缀”。当 BGP 收到此类路由时,BGP 会将它们添加到自己的数据库中,该数据库包含路由和路由来源的 AS。路由可以解释为道路,而自治系统则类似于城市。
路由器是高性能数据传输设备,它接收我们的数据,找出发送数据的最佳路径,帮助尽快到达正确的目的地。路由器利用 BGP 与其他 BGP 路由器建立连接,称为“对等”。在此过程中,它们交换存储在其数据库中的所有 IP 路由,寻求确定邻近网络建议的最佳路由。
所有者建立直接对等关系,从而尽量减少额外的 AS 跳数。如果路由器有来自几个相邻自治系统的多条具有相同前缀的路由,则只有一条最佳路由能够赢得竞争并被安装到 BGP 数据库中。如果一个邻居发生故障,第二佳路由将接管数据库中的角色。这凸显了 BGP 的稳健性。
我们提到,我们可以将 BGP 想象成一个 GPS 系统,确保所有数据包都采用最佳路径穿越互联网。如果没有 BGP 路径属性(即每条路由的特征),这个过程就不可能实现。BGP 使用这些属性对潜在路由进行评分,并使用算法来确定哪条路由最佳。让我们来看看它在选择最佳路由时考虑的一些属性。
这些属性共同帮助网络运营商做出明智的决策,借助 BGP 控制其组织的流量模式,确保高效的数据传输。这种方法还可以帮助公司节省成本。通过设置路径属性,公司只需在路由器上配置权重或本地优先级值,就可以选择更便宜的链路,而不是更昂贵的替代方案。
当上述属性系统地应用于来自 BGP 邻居的传入路由时,结果就是一个定义明确的路由策略。其工作方式是根据数值考虑多个属性,但不是一次性考虑所有属性。在路由策略中,可以根据 BGP 属性为不同的路由集分配特定值。例如,一组路由可能被分配本地优先级值 150 以表示高优先级,而另一组路由可能被指定权重值 200。这些数值作为路由算法决定数据包应采用哪条路径的标准。
如果两条或多条路由具有不同的权重值,则选择权重最高的路由,然后该过程就此停止。对于这些路由,甚至不会考虑本地优先级、AS 路径长度和其他属性。
但是,如果所有路由的权重都相同,或者未设置权重(对于思科以外的其他供应商的路由器,情况可能如此,因为权重是思科特有的属性),则路由决策将移至层次结构中的下一个属性:本地优先级。在此阶段,将选择具有最高本地优先级的路由。同样,这会停止该过程,并忽略优先级较低的属性。
因此,当路由策略分配本地优先级值 150 和权重值 200 时,并不意味着其中一个一定比另一个更好或更强。而是根据层次顺序首先检查哪个属性。权重将先于本地优先级被检查,如果仅凭权重就可以确定最佳路由,那么本地优先级甚至不会发挥作用。
在本文中,我们发现了边界网关协议 (BGP) 在协调互联网上的路由和数据包方面发挥的重要作用。当该协议首次发明时,公共网络中只有几千条路由。快进到今天,互联网上有超过 930,000 条路由。这一惊人的增长不仅标志着互联网的增长,也表明了我们全球格局的演变。它证明了 BGP 卓越的可扩展性。随着技术的发展和世界变得更加开放和互联,BGP 仍然稳固、高效和可靠。
我们利用 BGP 为客户提供各种网络服务。客户经常在拥有自己的前缀并将其引入我们的基础设施时建立对等连接。我们通过灵活且可扩展的 BGP 路由策略与他们建立 BGP 会话。当客户寻求保护其服务免受 DDoS 攻击的方法时,也可以使用 BGP 。