扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
1. 介绍
BGP是自治系统间的路由协议。BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策(要点见RFC 1104[2])。特别地,BGP交换包含全部AS path的网络可达性信息,按照配置信息执行路由策略。
随着近年来互联网的进步和增长,它也不得不面对一些严重的规模问题,包括:
-B类网络地址空间的耗尽。该问题的主要原因之一,是缺少适于中型组织的中等大小的网络;C类网络,最多拥有254个主机地址,实在太少,而B类网络允许最多65534个地址,却又太大无法充分使用。
-互联网路由器中路由表的增长使目前的软件(和人们)无法有效管理。
-32位IP地址空间的耗竭。
很明显,前两个问题和最后一个问题可能分别在今后一两年内和三年内变得急迫。无类别域间路由(CIDR)试图解决这些问题,设计相应机制来降低路由表和对新IP网络分配需求的增长速度。它并没有解决更具长期性的第三个问题,而是努力让近期问题推迟使得互联网仍能有效运作,同时着手远期的解决方案。
BGP-4对BGP-3做了扩展,支持路由信息的聚合及基于无类别域间路由体系(CIDR)[3]的路由减少。本备忘录论述了BGP-4在互联网中的应用。
本文档的所有讨论基于如下假设:互联网是一些随意连接的自治系统的集合。也就是说,互联网可以建模成一张一般的网络图,图上节点是AS,边是每对AS间的连接。
自治系统的经典定义是,一组路由器在统一管理之下,在AS内使用内部网关协议和统一度量来路由数据包,而通过外部网关协议将数据包路由到其他AS。该经典定义尚在发展,一些AS在其内部使用多种内部网关协议和度量。在此,强调一下自治系统在本文档中的含义,即使它采用多种IGP和度量,它的管理区别于其他 AS,其内部路由是一致的,当路由穿越它时,它在图上视作一个节点。
每个AS由一个管理机构管理,至少在外部看来它代表着该系统的路由信息。
2. BGP拓扑模型
当我们说一个在两个AS之间的连接时,意味着两件事:
物理连接:两个AS之间存在一条共享的数据链路子网,并且在该子网上,每个AS至少有一台自己的边界网关路由器。因此,每个AS的边界网关路由器可以转发数据包到其他AS的边界网关路由器,无需借助于AS内到AS间的路由。
BGP连接:在各个AS的BGP发言人之间有一个BGP会话进程,通过会话沟通路由,经过声明的AS到达某目标网络。
本文档中,我们对构成BGP连接的BGP发言人加以额外限制:他们必须是自己直接共享数据链路子网。因此,相邻AS间的BGP会话无需AS内或AS间的路由。超出本文范围的案例可能与该限制不符。
因此,在每个连接中,每个AS拥有一个以上的BGP发言人和边界网关路由器,这些BGP发言人和边界网关路由器分布在共享数据链路子网上。注意到, BGP发言人不一定是边界网关路由器,反之亦然。一条连接上一个AS的BGP发言人声明的路径可以被同一个共享子网上其他AS的边界网关路由器使用,也就是非直接的邻居是允许的。
一个AS内的流量,要么是源于该AS,要么是终于该AS(也就是说,IP数据包的源IP或目的IP在该AS内)。符合以上描述的流量称为"本地流量",否则称为"过渡流量"。BGP使用的主要目的是控制过渡流量。
按照某AS如何处理过渡流量,AS可以分为以下几类:
末端AS:只连接到一个其他AS。自然地,末端AS只运输本地流量。
多宿主AS:连接到超过一个的其他AS,但不运输过渡流量。
过渡AS:连接到超过一个的其他AS,可以运输本地和过渡流量。
一个完整的AS path提供了有效和简捷的方式来避免路由回路、消除伴随距离向量算法的"计数到无穷"问题,因此,BGP没有对AS之间的连接拓扑加以任何限制。
3. 互联网中的BGP
3.1 拓扑学考虑
互联网拓扑可以视作过渡AS、多宿主AS和末端AS的任意互连。为了尽可能减少对目前互联网结构的影响,末端和多宿主AS不一定要使用BGP。这些AS 可以运行其他的协议(比如,EGP)来与过渡AS交换网络可达性信息。使用BGP的过渡AS将对这些信息做标记,以表明其学习自BGP以外的方法。BGP 不一定运行于末端或多宿主AS,这就不会对源于或终于末端AS或多宿主AS的数据包的AS间路由质量产生负面影响。
然而,仍然建议在末端和多宿主AS上使用BGP。在这些情况下,BGP相比其他目前使用的协议(比如EGP),可以提供更优的带宽和性能。另外,这将减少默认路由的使用,为多宿主AS的AS间路由提供更好选择。
3.2 BGP的整体特性
整体水平上,BGP用来在多个自治系统间传递路由信息。其信息流如下图示:
+-----------+ +------------+
BGP | BGP | BGP | BGP | BGP
-------------------+ +--------------------------+ +----------
| IGP | | IGP |
+------------+ +-----------+
<-AS A--> <--AS B->
这张图表说明,在AS间只用BGP传输信息,而在AS内BGP和IGP均可以传输信息。确保AS内BGP和IGP间路由信息的兼容性,是一个重大问题,最后将在附录A中详细讨论。
3.3 BGP邻居关系
互联网视作随意连接的AS的集合。通过BGP直接连接的路由器就是BGP发言人。BGP发言人可以在同一AS内,也可以在不同AS内。每个AS的BGP 发言人互相通信,遵照每个AS建立的策略,交换网络可达性信息。对某BGP发言人,如果与其他BGP发言人通信而且那个BGP发言人在不同的AS,则那个其他 BGP发言人称为外部对等体,而如果在相同的AS内,则称为内部对等体。
在一个AS内可以有许多BGP发言人并被认为是需要的。通常,如果一个 AS与其他AS有多个连接,则需要多个BGP发言人。所有BGP发言人代表着相同AS,对外保持统一形象。这就要求他们之间保持一致的路由信息。这些路由器可以通过BGP或其他方法互相通信。在同一AS内的所有BGP发言人的策略约束必须一致。一些技术,如使用带标记的IGP(参见A.2.2),可以用来探测可能的矛盾。
对于外部对等体,对等体分别属于不同的AS,但共享同一数据链路子网。这共同的子网用来在对等体之间运输BGP信息。如果BGP使用通过一个干预的AS,则将使AS path信息无效。自治系统号必须在BGP中使用,用来标明BGP发言人所在的自治系统。
4. 路由聚合的需要
当路由信息由各部分聚合时,一致的BGP-4实现需要对其声明。例如,一个在自治系统边界的BGP发言人必须能产生某目标IP集合的聚合路由(在BGP -4 术语中该目标IP集合称为网络层可达性信息,NLRI),在它基础上进行管理(包括路由器自身代表的地址),即使当这些地址不是同时全部可达的。
当聚合的NLRI产生时,一致实现应能给予声明。
当NLRI解聚合时,一致实现应能给予声明。
当出现重叠路由时,一致实现应能支持如下选项:
-安装聚合和详细的路由
-只安装详细路由
-安装聚合路由
-均不安装
一定的路由策略可能依赖于NLRI(比如,"研究"与"商业")。因此,一个运行路由聚合的BGP发言人,可能的情况下,应该能认知聚合NLRI时路由策略的潜在实现。
5. BGP的策略生成
BGP通过各种路由参数选择和约束,实现策略。策略并不直接编入协议。而是,策略通过BGP的配置信息来实现。
BGP实现策略的途径有,影响从多条路径中的选择,控制路由信息的下步传递。策略由AS的管理者决定。
路由策略与政治、安全或经济考虑有关。
例如,如果一个AS不愿意将流量运输到其他AS,它可以制定策略来禁止。如下是一些能够改变BGP使用的路由策略的例子:
1. 一个多宿主AS可以拒绝成为其他AS的过渡AS。(它只告知那些目标网络在自己AS内部的路由。)
2. 一个多宿主AS可以指定成为几个相邻AS的过渡AS,也就是说,一部分而不是全部AS,可以把该多宿主AS作为过渡AS。(它只把它的路由信息告知被允许的AS。)
3. 一个AS向外运输流量时,可以决定是否偏爱特定的AS。
BGP应用可以控制许多性能相关的标准:
1. 一个AS可以最少化过渡AS的数目。(AS path越短,越可能被采用。)
2. 过渡AS的权重。如果一个AS决定,两个以上的AS path可以用来到达目标网络,那么,AS可以使用多种方法来决定采纳哪个候选AS path。一个AS的权重值由以下几个因素决定:径向距离,链路速度,容量,拥塞的趋势,和运行质量。这些性能值可以由BGP以外的方法决定。
3. 优先考虑内部路由,而不是外部路由。
为了一个AS的统一性,那些产自策略和/或正常路由选择过程的等值路径,必须以一致的方式解决。
BGP的基础,是这样一个规则:一个AS只把自己使用的路由通知给相邻的AS。该规则反映了目前互联网常用的"一跳接一跳"的路由方式。
6. BGP的路径选择
BGP 发言人的一项主要任务,是评价诸条从自身出发到那些用网络前缀表达的目的地的路径,从中选出最优,应用合适的策略约束,然后将它通知给所有的BGP邻居。关键问题是如何评价和比较这些不同的路径。传统的距离向量协议(比如RIP)中,每条路径只有一个度量。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。