BGP为什么要同步?细说同步规则

BGP是为TCP/IP互联网设计的外部网关协议,用于多个自治域之间。

它既不是基于纯粹的链路状态算法,也不是基于纯粹的距离向量算法。

它的主要功能是与其他自治域的BGP交换网络可达信息。

各个自治域可以运行不同的内部网关协议。

BGP更新信息包括网络号/自治域路径的成对信息。

自治域路径包括到达某个特定网络须经过的自治域串,这些更新信息通过TCP传送出去,以保证传输的可靠性。

一条从IBGP邻居学习到的路由在进入IGP(show ip route)路由表或通告给一个BGP对端之前,通过IGP必须知道该路由。

为什么需要同步?为什么不需要同步?

(1)当通过IBGP公布路由的时候,根据定义,它们是在同一个AS内进行公布。结果是,AS_PATH不会发生改变。

实际上,在路由公布给EBGP对端之前,本地AS号不会附加到AS_PATH上。

因此,IBGP路由不具备EBGP路由所具有的防止环路功能。

为了防止环路,BGP不会将从一个IBGP对端学习到的路由宣告给另外一个IBGP对端。

所以这就要求IBGP对等体间全互联网状结构。

这种网状结构连接有如下好处:

首先,在AS内防止环路。

其次,保证了BGP路由上的所有路由器都知道如何将数据包转发到目的地。

所以,全互联网状结构下,同步是不需要的,我们必须关掉它。

(2)当IBGP对等关系不是全互联网状连接时会出现什么情况呢?我们通过如下拓朴来分析同步在这种情况下的重要性。

BGP为什么要同步?细说同步规则

    在这种情况下Shanghai和Beijing,Chengdu和Beijing之间已经配置了IBGP对等会话。

你可以看到Shanghai和Beijing正在交换它们本地网络,同时Chengdu和Beijing也在交换。

但Shanghai和Chengdu却无法学习到彼此的网络。

    通过全网状IBGP对等连接获得完全可达性。此时虽然在Shanghai和Chengdu之间没有直接的数据链路,但是这它们是对等的。

在Shanghai和Chengdu之间BGP使用的TCP连接要通过Beijing,但逻辑上这它们之间的连接是一个点到点的会话连接。

这一点非常重要,因为要建立TCP会话,Shanghai和Chengdu必须要知道将它们连接在一起的数据链路地址。

    非全互联网状结构,图1所示Shanghai和Chengdu不能学习到彼此的网络通告。

这和BGP同步与非同步没有任何关系,它是BGP防环的内在机制。在全互联网状结构中Shanghai和Chengdu能相互学习到彼此的通告,并将其加入BGP表,但不会加入IGP表,因为同步被启用。

同步要求从IBGP学习到的路由在进入IGP路由表之前,通过IGP必须知道该路由。

这里没有运行任何IGP,所以不能从IGP知道该路由同时也就不能加入IGP路由表。

把同步关掉后,学习到的路由就能加入IGP路由表。

BGP为什么要同步?细说同步规则

上一篇:大型数据中心内部路由选择:为何选择BGP而不是OSPF


下一篇:BGP协议(二)