EBGP/IBGP/IGP有何區別?

原博文鏈接:http://blog.sina.com.cn/s/blog_6ceed3280101ehja.html

EBGP、IBGP、IGP這3種協議分別在什麼情況下使用?起什麼作用?3者之間有何區別與聯繫?本文將爲您詳細解釋。

AD:

我們知道,在自治系統內部使用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的作用。


發佈了14 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章