计算机网络(25)——BGP协议简介

自治系统间的路由选择:BGP 协议

边界网关协议(Boarder Gateway Protocol, BGP版本 4 是当今互联网中域间路由选择协议事实上的标准,BGP 协议是将 Internet 粘合为一个整体的关键。BGP 为每个自治系统(AS) 提供了进行以下工作的手段:
(1)eBGP:从邻居 AS 获取子网可达性信息。
(2)iBGP:向所有 AS 内部路由器传播子网可达性信息。
(3)基于可达性信息与策略,确定到达其他网络的“好”路径(不一定是费用最小,可能需要考虑其他策略)。

BGP 基础

BGP 协议的工作过程都是通过在路由器之间交换 BGP 报文来完成的,路由器对通过使用 179 端口的半永久 TCP 连接(连接建立后可能长时间不拆除)来交换路由选择信息,沿着该连接发送所有 BGP 报文的 TCP 连接称为 BGP 会话(BGP session),跨越两个 AS 的 BGP 会话称为外部 BGP(eBGP)会话,在同一个 AS 中的两台路由器之间的 BGP 会话称为内部 BGP(iBGP)会话

在这里插入图片描述

通过 BGP 会话通告去往不同目的前缀(prefix)的可达性信息,每个前缀表示一个子网或者一个子网的集合(CIDR路由聚合)。例如,假设有 4 个子网与 AS2 相连:138.16.64/24138.16.65/24138.16.66/24138.16.67/24,则 AS2 能为这 4 个子网聚合这些前缀,并使用 BGP 向 AS1 通告单一前缀 138.16.64/22。举另一个例子,假定这 4 个子网中的前 3 个在 AS2 中,第四个子网在 AS3 中,由于路由器采用最长前缀匹配原则来转发数据报,所以 AS3 向 AS1 通告前缀 138.16.67/24,而 AS2 仍然向 AS1 通告聚合的前缀 138.16.64/22

下面简单介绍一下如何通过的 BGP 会话来分发前缀可达性信息
① 在网关路由器 3a 和 1c 之间使用 eBGP 会话,AS3 向 AS1 发送经 AS3 可达的前缀列表,AS1 向 AS3 发送经 AS1 可达的前缀列表。类似地,AS1 和 AS2 通过它们的网关路由器 1b 和 2a 交换其可达性信息。
② 在任何 AS 中的网关路由器接收到 eBGP 学习到的前缀后,该网关路由器使用它的 iBGP 会话来向该 AS 中的其他路由器发布这些前缀。因此,在 AS1 中的所有路由器(包括网关路由器 1b)将得知 AS3 的前缀。在 AS1 中的网关路由器 1b 能(也可能不)向 AS2 重新通告 AS3 的前缀。
③ 当任意一台路由器得知一个新前缀时,它为该前缀在其转发表中创建一个项。

路径属性和 BGP 路由

在 BGP 中,一个自治系统由其全局唯一的自治系统号(Autonomous System Number, ASN所标识。

在 BGP 协议通过 BGP 会话通告目的前缀的可达性信息时,它在前缀中包括一些 BGP 属性。用 BGP 术语来说,带有属性的前缀被称为一条路由。两个较为重要的属性是 AS-PATHNEXT-HOP

  • AS-PATH。该属性包含了前缀的通告已经经过的那些 AS,即去往该目的前缀时需要经过的 AS 的列表,也称为通路向量,这使接受者能够了解去往目的网络的通路信息。因此 BGP 协议有时也称为“路径向量”协议。当一个前缀传送到一个 AS 时,该 AS 将它的 ASN 增加到该前缀的 AS-PATH 中。路由器使用该 AS-PATH 属性来检测和防止循环通告;特别是如果一台路由器看到它的AS 被包括在该路径列表中,它将拒绝该通告。
  • NEXT-HOP。指开始 AS-PATH 的路由器接口地址。该属性的重要性体现在,当某 AS 中的路由器知道到相同前缀 x x x 具有两条不同的路由时,这两条路由具有相同的 AS-PATH,但具有不同的 NEXT-HOP 值对应于不同的链路,使用 NEXT-HOP 值和 AS 内部路由选择算法,路由器能够确定到每条对等链路的路径的费用,然后使用热土豆路由选择来决定适当的接口。

在这里插入图片描述

BGP 路由选择

路由器可能知道到达任何一条前缀的多条路由,在这种情况下路由器必须在可能的路由中选择一条放入转发表中,BGP 选择路由时采用一些消除规则。BGP 顺序地调用下列消除规则,直到留下一条路由:

  • 路由被指派一个本地偏好值属性。一条路由的本地偏好可能由该路由器设置或可能由在相同 AS 中的另一台路由器学习到。具有最高本地偏好值的路由将被选择。
  • 在余下的路由中,具有最短 AS-PATH 的路由将被选择(AS 跳数而不是路由器跳数)。
  • 在余下的路由中,具有最近 NEXT-HOP 路由器的路由将被选择,即热土豆路由。
  • 附加规则。

最后,从几个角度解释一下为什么采用不同的 AS 内与 AS 间路由协议?

  • 策略在 AS 之间,策略问题起主导作用,一个给定 AS 产生的流量也许不能穿过另一个特定的 AS,这可能非常重要,因此这不是一个简单的路由选择算法可以解决的问题;而在 AS 之内,一切都是在相同的管理控制名义下进行的,因此策略问题在 AS 内部选择路由中起着微不足道的作用
  • 规模。扩展性是 AS 间路由选择的一个关键问题。而在一个 AS 内,可扩展性不是关注的焦点,因为如果单个管理域变得太大时,总是能将其分成两个 AS(如 OSPF层次划分)。
  • 性能。由于 AS 间路由选择是面向策略的,因此所用路由的性能通常是次要关心的问题(即一条费用更高但能满足某些策略要求的路由也许被采用了),我们的确看到了在 AS 之间,甚至没有与路由相关的费用概念(除了 AS 跳计数外)。然而在 AS 内部这种对策略的关心就不重要了,可以使路由选择更多地关注于一条路由实现的性能级别方面。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值