边界网关协议 BGP简介(1)( 五 )


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 BGPBGPBGP ;BGP
---------------------------------------------;----------
IGPIGP; ;;
 ;------------ ; -----------
<-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),可以用来探测可能的矛盾 。

推荐阅读