EBGP/IBGP/IGP有何區(qū)別?
我們知道,在自治系統(tǒng)內(nèi)部使用IGP路由協(xié)議;而在不同自治系統(tǒng)之間使用BGP路由協(xié)議(嚴格來講,BGP不是路由協(xié)議)。BGP產(chǎn)生的原因是為了在不同自治系統(tǒng)(AS)之間進行路由轉(zhuǎn)發(fā),而其中又提出了EBGP和IBGP兩種。EBGP用于在不同自治系統(tǒng)之間,但IBGP,書上說它是應(yīng)用于自治系統(tǒng)內(nèi)部,可是在自治系統(tǒng)內(nèi)部我們是使用IGP。這就和"BGP是應(yīng)用于不同自治系統(tǒng)之間"產(chǎn)生矛盾,那么IBGP存在的意義,比如說某種情況,需要使用到IBGP,它在網(wǎng)絡(luò)中起到的作用?EBGP與IBGP之間的區(qū)別?EBGP在網(wǎng)絡(luò)中又起什么作用?
為什么要有IBGP,原因如下:
1、IGP的能力限制,IGP處理路由的條目有限,而目前internet上核心路由器的路由表已經(jīng)超過10萬條。假如沒有IBGP,那么這些路由只能采取重分發(fā)的方式直接導(dǎo)入到IGP中,這樣做的缺點很明顯:第一,IGP協(xié)議的作者并沒有打算讓IGP來處理如此大量的路由,IGP本身也無法處理這樣大的路由數(shù)量;第二,如果非要讓IGP來處理,那么根據(jù)IGP的處理原則,假如這10萬路由中任何一條路由發(fā)生變化,那么運行IGP的路由器就不得不重新計算路由,更為嚴重的是,假如其中某一條路由出現(xiàn)路由抖動的情況,例如端口反復(fù)UP/DOWN,這會導(dǎo)致所有的IGP路由器每時每刻都不得不把10萬條路由重新計算一遍,這種計算量對于絕大多數(shù)路由器來說是無法負擔(dān)的。另外對于運行RIP V1的路由器來說,10萬條路由的定期更新,這根本就是無法接受的事情,除去帶寬占用率不談,我想,也只有少量高端的GSR以及TSR能夠有這樣的性能吧。很顯然,我們不可能讓網(wǎng)絡(luò)中所有的路由器都是GSR和TSR,如果真是這樣,那么Cisco、juniper以及華為等廠家就要偷笑了。例如:AS100----AS200---AS300,假定AS100/200/300各有100臺路由器,而AS100中有1W條路由要傳遞要AS300中,而AS200的路由器不需要學(xué)習(xí)AS100的路由。如果沒有IBGP的話,那么這1W條路由都必須被重分發(fā)到AS200的IGP中去,這樣的話,相當于AS200中所有的100臺路由器都增加了1W條路由。如果利用IBGP的話,那么AS200中只有運行IBGP的路由器會學(xué)習(xí)到這1W條路由,其它運行IGP的路由器都不會學(xué)習(xí)到這1W條路由。并且由于BGP的路由控制能力大大強于IGP的路由控制能力,因此運行IBGP的路由器比運行IGP的路由器能更好的對這1W條路由做一些路由策略的處理,從而保證整個AS內(nèi)部的路由器學(xué)習(xí)到的路由數(shù)目可以控制在可接受的范圍之內(nèi)。
2、路由環(huán)路的問題。BGP是靠路由屬性來防止路由環(huán)路的,例如AS_PATH屬性,假如說沒有IBGP協(xié)議,那么當所有BGP路由重分發(fā)到IGP中后,路由屬性必然丟失,這就破壞了BGP的路由環(huán)路防止機制,產(chǎn)生了路由環(huán)路的隱患。
那么引申一下,既然IBGP能夠傳送所有的路由前綴,為什么還需要IGP?
1、IBGP之間是TCP連接,也就意味著IBGP鄰居采用的是邏輯連接的方式,兩個IBGP連接不一定存在實際的物理鏈路。所以需要有IGP來提供路由,以完成BGP路由的遞歸查找。
2、BGP協(xié)議本身實際上并不發(fā)現(xiàn)路由,BGP將路由發(fā)現(xiàn)的工作全部移交給了IGP協(xié)議,它本身著重于路由的控制。因此,如果沒有IGP,那么BGP也就毫無用處了。
EBGP與IBGP的區(qū)別:
1、路由環(huán)路的避免措施不一樣,IBGP強制規(guī)定ibgp speaker不允許把從一個ibgp鄰居學(xué)習(xí)到的前綴傳遞給其它ibgp鄰居,因此IBGP要求邏輯全連接。EBGP沒有這樣的要求,EBGP對路由環(huán)路的避免是通過AS_PATH屬性來實現(xiàn)的。
2、使用的BGP屬性不同,例如IBGP可以傳遞LOCAL_PREF(本地優(yōu)先屬性),而EBGP不行。
3、IBGP有同步的要求,而EBGP沒有同步的要求
4、IBGP不需要IBGP鄰居之間有物理連接,只需要邏輯連接即可,而EBGP下一般情況下都要求EBGP鄰居之間存在物理連接。
EBGP在網(wǎng)絡(luò)中起什么作用?這個題目太大了,EBGP我認為是在不同的AS之間提供路由的傳遞以及路由的控制,了解了BGP屬性的用法,也就了解了EBGP的作用。
原博文鏈接:http://blog.sina.com.cn/s/blog_6ceed3280101ehja.html