一、介绍算法
BGP是自治系统间的路由协议。BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策。特别地,BGP交换包含所有AS path的网络可达性信息,按照配置信息执行路由策略。网络
随着近年来互联网的进步和增加,它也不得不面对一些严重的规模问题,包括:ide
-B类网络地址空间的耗尽。该问题的主要缘由之一,是缺乏适于 中型组织的中等大小的网络;C类网络,最多拥有254个主机地址,实在太少,而B类网络容许最多65534个地址,却又太大没法充分使用。性能
-互联网路由器中路由表的增加使目前的软件(和人们)没法有效管理。学习
-32位IP地址空间的耗竭。设计
很明显,前两个问题和最后一个问题可能分别在从此一两年内和三年内变得急迫。无类别域间路由(CIDR)试图解决这些问题,设计相应机制来下降路由表和对新IP网络分配需求的增加速度。它并无解决更具长期性的第三个问题,而是努力让近期问题推迟使得互联网仍能有效运做,同时着手远期的解决方案。进程
BGP-4对BGP-3作了扩展,支持路由信息的聚合及基于无类别域间路由体系(CIDR)的路由减小。本备忘录论述了BGP-4在互联网中的应用。路由
本文档的全部讨论基于以下假设:互联网是一些随意链接的自治系统的集合。也就是说,互联网能够建模成一张通常的网络图,图上节点是AS,边是每对AS间的链接。文档
自治系统的经典定义是,一组路由器在统一管理之下,在AS内使用内部网关协议和统一度量来路由数据包,而经过外部网关协议将数据包路由到其余AS。该经典定义尚在发展,一些AS在其内部使用多种内部网关协议和度量。在此,强调一下自治系统在本文档中的含义,即便它采用多种IGP和度量,它的管理区别于其余 AS,其内部路由是一致的,当路由穿越它时,它在图上视做一个节点。每一个AS由一个管理机构管理,至少在外部看来它表明着该系统的路由信息。it
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间路由信息的兼容性,是一个重大问题。
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,能够用来探测可能的矛盾。
对于外部对等体,对等体分别属于不一样的AS,但共享同一数据链路子网。这共同的子网用来在对等体之间运输BGP信息。若是BGP使用经过一个干预的AS,则将使AS path信息无效。自治系统号必须在BGP中使用,用来标明BGP发言人所在的自治系统。