為什么要有IBGP,原因如下: 1、IGP的能力限制,IGP處理路由的條目有限,而目前internet上核心路由器的路由表已經(jīng)超過10萬條。假如沒有IBGP,那么這些路由只能采取重分發(fā)的方式直接導(dǎo)入到IGP中,這樣做的缺點(diǎn)很明顯:第一,IGP協(xié)議的作者并沒有打算讓IGP來處理如此大量的路由,IGP本身也無法處理這樣大的路由數(shù)量;第二,如果非要讓IGP來處理,那么根據(jù)IGP的處理原則,假如這10萬路由中任何一條路由發(fā)生變化,那么運(yùn)行IGP的路由器就不得不重新計(jì)算路由,更為嚴(yán)重的是,假如其中某一條路由出現(xiàn)路由抖動(dòng)的情況,例如端口反復(fù)UP/DOWN,這會導(dǎo)致所有的IGP路由器每時(shí)每刻都不得不把10萬條路由重新計(jì)算一遍,這種計(jì)算量對于絕大多數(shù)路由器來說是無法負(fù)擔(dān)的。另外對于運(yù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中去,這樣的話,相當(dāng)于AS200中所有的100臺路由器都增加了1W條路由。如果利用IBGP的話,那么AS200中只有運(yùn)行IBGP的路由器會學(xué)習(xí)到這1W條路由,其它運(yùn)行IGP的路由器都不會學(xué)習(xí)到這1W條路由。并且由于BGP的路由控制能力大大強(qiáng)于IGP的路由控制能力,因此運(yùn)行IBGP的路由器比運(yùn)行IGP的路由器能更好的對這1W條路由做一些路由策略的處理,從而保證整個(gè)AS內(nèi)部的路由器學(xué)習(xí)到的路由數(shù)目可以控制在可接受的范圍之內(nèi)。 2、路由環(huán)路的問題。BGP是靠路由屬性來防止路由環(huán)路的,例如AS_PATH屬性,假如說沒有IBGP協(xié)議,那么當(dāng)所有BGP路由重分發(fā)到IGP中后,路由屬性必然丟失,這就破壞了BGP的路由環(huán)路防止機(jī)制,產(chǎn)生了路由環(huán)路的隱患。 那么引申一下,既然IBGP能夠傳送所有的路由前綴,為什么還需要IGP? 1、IBGP之間是TCP連接,也就意味著IBGP鄰居采用的是邏輯連接的方式,兩個(gè)IBGP連接不一定存在實(shí)際的物理鏈路。所以需要有IGP來提供路由,以完成BGP路由的遞歸查找。 2、BGP協(xié)議本身實(shí)際上并不發(fā)現(xiàn)路由,BGP將路由發(fā)現(xiàn)的工作全部移交給了IGP協(xié)議,它本身著重于路由的控制。因此,如果沒有IGP,那么BGP也就毫無用處了。 EBGP與IBGP的區(qū)別: 1、路由環(huán)路的避免措施不一樣,IBGP強(qiáng)制規(guī)定ibgp speaker不允許把從一個(gè)ibgp鄰居學(xué)習(xí)到的前綴傳 |
|