(1)当通过IBGP公布路由的时候,根据定义,它们是在同一个AS内进行公布。结果是,AS_PATH不会发生改变。
实际上,在路由公布给EBGP对端之前,本地AS号不会附加到AS_PATH上。
因此,IBGP路由不具备EBGP路由所具有的防止环路功能。
为了防止环路,BGP不会将从一个IBGP对端学习到的路由宣告给另外一个IBGP对端。
所以这就要求IBGP对等体间全互联网状结构。
这种网状结构连接有如下好处:
首先,在AS内防止环路。
其次,保证了BGP路由上的所有路由器都知道如何将数据包转发到目的地。
所以,全互联网状结构下,同步是不需要的,我们必须关掉它。
(2)当IBGP对等关系不是全互联网状连接时会出现什么情况呢?我们通过如下拓朴来分析同步在这种情况下的重要性。
在这种情况下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必须知道该路由。
Before a route learned from an IBGP neighbor is entered into the local routing table, or advertised to an EBGP peer, the route must first be known via IGP.
这里没有运行任何IGP,所以不能从IGP知道该路由同时也就不能加入IGP路由表。
把同步关掉后,学习到的路由就能加入IGP路由表。