边界网关协议 (BGP)2025年03月17日 | 阅读 9 分钟 它是一个域间路由协议,使用路径向量路由。它是一种网关协议,用于在互联网上的自治系统之间交换路由信息。 正如我们所知,边界网关协议在不同的自治系统上工作,所以我们应该了解 BGP 的历史、自治系统的类型等等。 BGP 历史第一个网络是 ARPANET,由国防部开发,高级研究项目局设计。在 ARPANET 中,只有一个网络,由单一管理员处理。所有路由器都属于单一网络,路由通过 GGP(网关到网关路由协议)进行。GGP 是所有路由协议中的第一个协议。GGP 协议未使用自治系统编号。 当互联网进入市场后,GGP 开始出现问题。由于互联网骨干网变得很大,导致路由表也很大,这带来了维护问题。为了解决这个问题,ARPANET 被划分为多个域,称为自治系统。每个自治系统都可以单独处理,并且每个系统都有自己的路由策略,自治系统包含小型路由数据库。当实现自治系统概念时,出现了第一个路由协议 RIP,它运行在单个自治系统上。为了连接一个自治系统与另一个自治系统,开发了 EGP(外部网关协议)。EGP 协议于 1984 年推出,定义在 RFC 904 中。EGP 协议使用了五年,但它存在一些缺陷,因此在 1989 年开发了新的协议,称为边界网关协议 (BGP),定义在 RFC 1105 中。 BGP 有许多版本,例如
BGP 自治系统![]() 自治系统是属于单一通用管理域的网络集合。或者我们可以说,它是属于单一管理域的路由器集合。例如,一个组织可以包含多个不同位置的路由器,但单一自治系统编号将识别它们。在同一自治系统或同一组织内,我们通常使用 IGP(内部网关协议),如 RIP、IGRP、EIGRP、OSPF。如果我们想在两个自治系统之间进行通信,在这种情况下,我们使用 EGP(外部网关协议)。在互联网上运行或用于连接两个不同自治系统编号的协议称为 BGP(边界网关协议)。BGP 是唯一在互联网骨干网上运行或用于在两个不同自治系统编号之间交换路由的协议。互联网服务提供商使用 BGP 协议来控制所有路由信息。 BGP 特性以下是 BGP 协议的特性
它是一种标准协议,可以在任何 Windows 设备上运行。
它是一种外部网关协议,用于在两个或多个自治系统编号之间交换路由信息。
它专门为域间路由而设计,其中 AS 域间路由意味着在两个或多个自治系统编号之间交换路由信息。
它是唯一运行在互联网骨干网上的协议。
它是一种无类别协议。
与 IGP 一样,BGP 也支持增量更新和触发更新。
BGP 是一种路径向量协议。路径向量是发送路由及路由信息的一种方法。
它通过手动配置发送更新来配置邻居关系。假设有两个路由器 R1 和 R2。那么,R1 必须发送一个配置命令,说明你是我的邻居。另一方面,R2 也必须向 R1 发送一个配置命令,说明 R1 是 R2 的邻居。如果两个配置命令匹配,那么这两个路由器之间就会建立邻居关系。
它是一种应用层协议,并使用 TCP 协议来保证可靠性。
它具有权重属性、起源等许多属性。BGP 支持非常丰富的属性,这些属性会影响路径操纵过程。
如果信息来自外部自治系统,则使用 20 的管理距离。如果信息来自同一自治系统,则使用 200 的管理距离。 BGP 的环路防止机制![]() 有可能在你连接到互联网时,你可能将路由 10.0.0.0 广告给某个自治系统,然后它又被广告给另一个自治系统。那么,同样的路由又会传回来的可能性。这会造成环路。但是,在 BGP 中,有一个规则是,当路由器看到自己的 AS 编号时,例如,如上图所示,网络 180.10.0.0/16 源自 AS 100,当它发送到 AS 200 时,它将携带其路径信息,即 180.10.0.0/16 和 AS 100。当 AS 200 发送到 AS 300 时,AS 200 将发送其路径信息 180.10.0.0/16,AS 路径为 100,然后是 200,这意味着该路由源自 AS 100,然后到达 200,最后到达 300。当 AS 300 发送到 AS 500 时,它将发送网络信息 180.10.0.0/16,AS 路径为 100、200,然后是 300。如果 AS 500 发送到 AS 100,并且 AS 100 在更新中看到自己的自治编号,它将不接受。这样,BGP 就防止了环路的产生。 自治系统类型自治系统类型如下
![]() 这是一个系统,它只有一个自治系统与其他自治系统之间的连接。数据流量不能通过 stub 自治系统。Stub AS 可以是源或汇。如果我们有一个自治系统,即 AS1,那么它将与其他自治系统 AS2 有单个连接。AS1 可以充当源或汇。如果它充当源,那么数据从 AS1 移动到 AS2。如果 AS1 充当汇,意味着来自 AS2 的数据将在 AS1 中被消耗,但数据不会从 AS1 前往。
![]() 这是一个自治系统,它可以有多个与其他自治系统的连接,但它仍然可以是数据流量的源或汇。没有瞬态数据流量,这意味着数据可以穿过一个自治系统。
![]() 瞬态自治系统是一个多宿主自治系统,但它也提供瞬态流量。 路径属性BGP 根据路径的属性选择最佳路由。 正如我们所知,边界网关路由协议使用路径向量路由,它包含显示路径信息的路由表。路径属性提供路径信息。显示或存储路径信息的属性称为路径属性。这个属性列表有助于接收路由器在应用任何策略时做出更好的决策。让我们看看不同类型的属性。路径属性广泛分为两类 ![]() 1. 众所周知属性(Well-known attribute):这是每个 BGP 路由器都应该识别的属性。 众所周知属性进一步分为两类
2. 可选属性(Optional attribute):这是一个不一定被每个 BGP 路由器识别的属性。简而言之,我们可以说它不是强制属性。 可选属性进一步分为两类
BGP 邻居BGP 邻居关系类似于 OSPF 邻居关系,但有几处不同。BGP 通过 TCP 连接并在端口号 179 上建立邻居关系,然后交换 BGP 更新。它们在建立邻居关系后交换更新。在 BGP 中,邻居关系是手动配置的。BGP 邻居也称为 BGP 对等体或 BGP 发言者。 有两种类型的邻居关系
![]()
![]() BGP 表BGP 表有三种类型
为了验证,使用以下命令 以上命令对于验证邻居关系是否正常非常有用。
BGP 会话当我们谈论 BGP 时,意味着自治系统之间的通信。让我们考虑两个自治系统,每个系统有五个节点。 BGP 会话分为两类 1. 内部 BGP 会话 内部 BGP 会话用于在自治系统内部的路由器之间交换信息。简而言之,我们可以说路由信息在同一自治系统的路由器之间交换。 2. 外部 BGP 会话 外部 BGP 会话是不同自治系统的节点或路由器之间相互通信的会话。 数据包类型BGP 中存在四种不同类型的数据包
BGP 数据包格式现在我们将看到数据包在其中传输的格式。以下是 BGP 数据包格式中的字段 ![]()
下一个主题Go-Back-N ARQ |
我们请求您订阅我们的新闻通讯以获取最新更新。