EBGP与IBGP的区别:
EBGP —— (External Border Gateway Protocol) 外部边界网关协议,用于在不同的自治系统间交换路由信息。
IBGP——内部BGP协议(IBGP)的主要作用是向你的内部路由器提供更多信息。IBGP路由器必须以全网状结构相连,以防止路由环回。如果使用了路由反射器或路由联盟,那么IBGP网状结构可能遭遇收敛问题,而导致路由黑洞。
EBGP与IBGP的区别:
1、路由环路的避免措施不一样,IBGP强制规定ibgp speaker不允许把从一个IBGP邻居学习到的前缀传递给其它IBGP邻居,因此IBGP要求逻辑全连接。EBGP没有这样的要求,EBGP对路由环路的避免是通过AS_PATH属性来实现的。
2、使用的BGP属性不同,例如IBGP可以传递LOCAL_PREF(本地优先属性),而EBGP不行。
3、IBGP有同步的要求,而EBGP没有同步的要求
4、IBGP不需要IBGP邻居之间有物理连接,只需要逻辑连接即可,而EBGP下一般情况下都要求EBGP邻居之间存在物理连接。
关键提点:
BGP路由表是独立于IGP路由表的,但是这两个表之间可以进行信息的交换,也就是“再分布” 技术(Redistribution)。信息的交换有两个方向:从BGP注入IGP,以及从IGP注入BGP。前者是将AS外部的路由信息传给AS内部的 路由器,而后者是将AS内部的路由信息传到外部网络,这也是路由更新的来源。把路由信息从BGP注入IGP涉及到一个重要概念——同步 (Synchronization)。同步规则,是指当一个AS为另一个AS提供了过渡服务时,只有当本地AS内部所有的路由器都通过IGP的路由信息的 传播收到这条路由信息以后,BGP才能向外发送这条路由信息。当路由器从IBGP收到一条路由更新信息时,在转发给其他EBGP对等体转之前,路由器会对 同步性进行验证。只有IGP认识这个更新的目的时(即IGP路由表中有相应的条目),路由器才会将其通过EBGP转发;否则,路由器不会转发该更新信息。 同步规则的主要目的是为了保证AS内部的连通性,防止路由循环的黑洞。但是在实际的应用中,一般都会将同步功能禁用,而使用AS内IBGP的全网状连接结 构来保证连通性,这样即可以避免向IGP中注入大量BGP路由,加快路由器处理速度,又可以保证数据包不丢失。要安全的禁用同步,需要满足以下两个条件之 一:1,所处的AS是单口的,或者说是末端AS(Stub AS)――即是指只有一个点与外界网络连接。2,虽然所处的AS是过渡型的(指一个AS可以通过本地AS,与第三方AS建立连接的),但是在AS内部的所 有路由器都运行BGP。第2种情况是很常见的,因为AS内所有的路由器都有BGP信息,所以IGP只需要为本地AS 传送路由信息。大部分的网络设备在实现BGP时,都提供了禁用同步的开关。将IGP路由信息注入BGP,是路由更新的来源。它直接影响到因特网的路由稳定 性。
因此,怎么将从一个AS学到的路由通告给另外一个AS,要视过渡AS内部的情况而定。
规则是:1。bgp路由器会把从ebgp对端学到的路由通告给所有bgp邻居,包括ibgp邻居和ebgp邻居;
2。从ibgp邻居处学到的路由是否通告给自己ebgp对端,这就要视本AS内的egp和igp路由表是否同步而定,而是否需要同步——就要看本AS内的 “过渡”路由器之间没有有没有跑全互联ibgp,如果是全互联的ibgp,那么就不需要同步,像上面举的例子,如果只在R2、R4之间建立ibgp邻 居,R3上不与R2、R4建立ibgp邻居,这时就需要同步,而同步就要求把从R1学到的路由重分布给AS2的igp。
3。在Internet上,R1上就不只只有网段A这么一条路由了,现在的Internet的bgp路由条目已经超过10万条,如果要重分布给 igp,igp路由器只有死路一条,因为igp路由的特点就是算法复杂,耗费cpu和内存。因此才要求过渡AS要ibgp全互联。如果不全互联,就得采用 路由反射器、bgp联盟其他办法来解决,本质却是一样的。
实验图描绘:
这个例子还不大好举。其实你照着我的描述画一下图,就明白了。
图可以这么来画:
R1属于AS1,有一个直连网段A,R1的另一个接口与R2相连;
R2、R3,R4属于AS2,R2、R3、R4依次“串联”,就是R2与R3连,R3再和R4连,AS2内部跑ospf协议,R2与R1之间跑ebgp;
R5属于AS3,R5与R4相连,R5与R4之间跑ebgp;
然后你就考虑:在R2、R3、R4之间跑两两都跑ibgp和都不跑ibgp两种情况下,怎么将到网段A的路由通告到R5,根据规则,一步步推理,你就明白了。