zoukankan      html  css  js  c++  java
  • BGP中IBGP和EBGP的区别和联系

    我们知道,在自治系统内部使用IGP路由协议;而在不同自治系统之间使用BGP路由协议(严格来讲,BGP不是路由协议)。BGP产生的原因是为了在不同自治系统(AS)之间进行路由转发,而其中又提出了EBGP和IBGP两种。EBGP用于在不同自治系统之间,但IBGP,书上说它是应用于自治系统内部,可是在自治系统内部我们是使用IGP。这就和"BGP是应用于不同自治系统之间"产生矛盾,那么IBGP存在的意义,比如说某种情况,需要使用到IBGP,它在网络中起到的作用?EBGP与IBGP之间的区别?EBGP在网络中又起什么作用?

    为什么要有IBGP,原因如下:

    1、IGP的能力限制,IGP处理路由的条目有限,而目前internet上核心路由器的路由表已经超过10万条。假如没有IBGP,那么这些路由只能采取重分发的方式直接导入到IGP中,这样做的缺点很明显:第一,IGP协议的作者并没有打算让IGP来处理如此大量的路由,IGP本身也无法处理这样大的路由数量;第二,如果非要让IGP来处理,那么根据IGP的处理原则,假如这10万路由中任何一条路由发生变化,那么运行IGP的路由器就不得不重新计算路由,更为严重的是,假如其中某一条路由出现路由抖动的情况,例如端口反复UP/DOWN,这会导致所有的IGP路由器每时每刻都不得不把10万条路由重新计算一遍,这种计算量对于绝大多数路由器来说是无法负担的。另外对于运行RIP V1的路由器来说,10万条路由的定期更新,这根本就是无法接受的事情,除去带宽占用率不谈,我想,也只有少量高端的GSR以及TSR能够有这样的性能吧。很显然,我们不可能让网络中所有的路由器都是GSR和TSR,如果真是这样,那么Cisco、juniper以及华为等厂家就要偷笑了。例如:AS100----AS200---AS300,假定AS100/200/300各有100台路由器,而AS100中有1W条路由要传递要AS300中,而AS200的路由器不需要学习AS100的路由。如果没有IBGP的话,那么这1W条路由都必须被重分发到AS200的IGP中去,这样的话,相当于AS200中所有的100台路由器都增加了1W条路由。如果利用IBGP的话,那么AS200中只有运行IBGP的路由器会学习到这1W条路由,其它运行IGP的路由器都不会学习到这1W条路由。并且由于BGP的路由控制能力大大强于IGP的路由控制能力,因此运行IBGP的路由器比运行IGP的路由器能更好的对这1W条路由做一些路由策略的处理,从而保证整个AS内部的路由器学习到的路由数目可以控制在可接受的范围之内。

    2、路由环路的问题。BGP是靠路由属性来防止路由环路的,例如AS_PATH属性,假如说没有IBGP协议,那么当所有BGP路由重分发到IGP中后,路由属性必然丢失,这就破坏了BGP的路由环路防止机制,产生了路由环路的隐患。

    那么引申一下,既然IBGP能够传送所有的路由前缀,为什么还需要IGP?

    1、IBGP之间是TCP连接,也就意味着IBGP邻居采用的是逻辑连接的方式,两个IBGP连接不一定存在实际的物理链路。所以需要有IGP来提供路由,以完成BGP路由的递归查找。

    2、BGP协议本身实际上并不发现路由,BGP将路由发现的工作全部移交给了IGP协议,它本身着重于路由的控制。因此,如果没有IGP,那么BGP也就毫无用处了。

    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邻居之间存在物理连接

    EBGP在网络中起什么作用?这个题目太大了,EBGP我认为是在不同的AS之间提供路由的传递以及路由的控制,了解了BGP属性的用法,也就了解了EBGP的作用。

    以上转自原博文链接:http://blog.sina.com.cn/s/blog_6ceed3280101ehja.html

    以下转自博文链接:http://blog.163.com/czj_99/blog/static/56896226201001084419854/

    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,根据规则,一步步推理,你就明白了。

  • 相关阅读:
    HDU 4348 To the moon(可持久化线段树)
    HDU 5875 Function 大连网络赛 线段树
    HDU 5877 2016大连网络赛 Weak Pair(树状数组,线段树,动态开点,启发式合并,可持久化线段树)
    HDU 5876 大连网络赛 Sparse Graph
    HDU 5701 中位数计数 百度之星初赛
    CodeForces 708B Recover the String
    Java实现 蓝桥杯 算法提高 套正方形(暴力)
    ASP.NET生成验证码
    ASP.NET生成验证码
    ASP.NET生成验证码
  • 原文地址:https://www.cnblogs.com/gzxbkk/p/8818716.html
Copyright © 2011-2022 走看看