EBGP与IBGP



EBGP —— (External Border Gateway Protocol) 外部边界网关协议,用于在不同的自治系统间交换路由信息。


IBGP——内部BGP协议(IBGP)的主要作用是向你的内部路由器提供更多信息。IBGP路由器必须以全网状结构相连,以防止路由环回。如果使用了路由反射器或路由联盟,那么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联盟其他办法来解决,本质却是一样的。

你可能感兴趣的:(网络)