1;制約BGP擴展性的幾個問題
BGP是目前應用在因特網(wǎng)上的IP網(wǎng)絡互聯(lián)協(xié)議,為運營商之間的互聯(lián)提供了穩(wěn)定而安全的路由協(xié)議,具有豐富的路由控制機制 。;為了更好地控制路由策略,當前大部分的運營商均將BGP部署到骨干路由器 。隨著網(wǎng)絡的不斷擴展、路由器數(shù)目的增多以及路由信息條目的激增,解決BGP的擴展性問題變得越來越重要 。
目前BGP的擴展性面臨如下幾個問題 。
(1)I-BGP的Full-Mesh問題
BGP路由協(xié)議分為I-BGP和E-BGP兩個部分 。I-BGP用于自治域內(nèi)的路由器之間,E-BGP用于自治域間的路由器之間 。為了防止產(chǎn)生環(huán)回路由,BGP協(xié)議要求一個路由器通過I-BGP學到的路由,不再向其他I-BGP鄰居廣播,所以一個自治域內(nèi)所有參加I-BGP協(xié)議的路由器都要與其他路由器建立會話,從而保證路由信息能夠正確地廣播到每一個路由器 。依照這個原則,一個自治域內(nèi)總的I-BGP會話數(shù)為N×(N-1)/2;(N為運行I-BGP的路由器數(shù)),當N不斷增大時,這個數(shù)字會大得驚人:如100臺路由器,則會話數(shù)為4950 。這對網(wǎng)絡設備而言是個非常大的負擔,而且還將使網(wǎng)絡的治理與配置變得異常復雜 。而骨干網(wǎng)通常由大量的運行I-BGP的路由器組成,因此,這個問題是否能夠解決,直接影響到網(wǎng)絡規(guī)模的大小 。
(2)更改路由策略時路由振蕩的問題
BGP屬于增量更新的路由協(xié)議,當有新的路由要發(fā)布時,路由器會向鄰居發(fā)送Update信息,而假如要刪除某條路由時,就會發(fā)送Withdraw信息 。BGP路由的Flap的定義是:當一條路由在被收回(Withdraw)后,又被廣播(Update)出來,視為一次Flap 。由于任何一條路由的收回和更新都會導致一臺路由器整個路由表重新計算,因此當Flap的情況比較多時,對路由器設備的負載將產(chǎn)生巨大的壓力 。根據(jù)筆者在實際工作中的經(jīng)驗,一般情況下,一臺高端路由器在計算BGP路由的時候,CPU的負載基本上在80%~90%左右,有時甚至達到100%,占用了幾乎所有的CPU資源 。雖然目前大部分的高端路由器都將路由計算的模塊與轉(zhuǎn)發(fā)模塊分布在不同的硬件上,來減少主CPU忙導致的路由器性能下降的問題,但是路由表的頻繁變化和更新,對整個設備的運行還是有一定的影響的,而且這樣的計算會隨著路由的收回或廣播,繼續(xù)向自治域內(nèi)部擴展,使內(nèi)部的路由器產(chǎn)生同樣的問題 。
(3)其他需要考慮的問題
除了上面的兩個問題會導致對路由器資源過量消耗之外,還有其他的一些因素,如路由的數(shù)目、BGP路由表的大小和路由計算的方式等,同樣也會影響路由器的性能 。
另外,網(wǎng)絡越大,路由條目越多,配置和治理的工作也就越復雜,這就需要在網(wǎng)絡設計的時候盡量簡化配置,降低治理人員的工作強度,避免人為原因造成故障 。
2;如何解決制約BGP擴展性的問題
針對以上問題,介紹一些相關的解決方法 。
(1)解決I-BGP會話數(shù)瓶頸的方法
上面提到的I-BGP的會話數(shù)過多的問題,可以采取兩種辦法來解決:
1)聯(lián)盟的方法(Confederations)
聯(lián)盟的工作原理是:將原來一個自治域的網(wǎng)絡分成多個子自治域,通過Confederations;id將原AS號配置到每個路由器上 。這樣有兩個好處:一是可以保留原有的I-BGP屬性,包括Local;Preference、MED和NEXT_HOP;二是能在Confederations的功能中自動實現(xiàn),無需治理員在網(wǎng)絡的出口處配置過濾內(nèi)部AS號信息的操作 。
2)路由反射器(Route-Reflector)
采用路由反射器是目前應用最廣泛的方法,較之前面聯(lián)盟的方法,具有更好的擴展性 。路由反射器的工作原理是:將一個自治域內(nèi)的路由器分成幾個Cluster,每個Cluster由Reflector和Client組成 。Reflector之間形成Full;Mesh,運行常規(guī)的I-BGP;Client只與Reflector運行I-BGP,對于Client來說,Reflector只是普通的鄰居而已,Reflector則扮演了路由集散地的角色,將從其他Reflector學到的I-BGP路由轉(zhuǎn)發(fā)給Client,同時,將從Client學到的I-BGP路由轉(zhuǎn)發(fā)給Cluster內(nèi)的其他Clients和Cluster外的其他Reflector,再借由Reflectors廣播到其所在的Cluster 。在實際的網(wǎng)絡中,為了提高冗余度,通常一個Client與多個Reflector建立鄰居關系,而且不局限于Client所在Cluster的Reflector 。
推薦閱讀
- BGP鄰居協(xié)商過程
- 在可擴展的網(wǎng)絡中實施BGP
- BGP路由的優(yōu)化
- BGP常見問題
- BGP協(xié)議建立連接及使用ISDN備份衛(wèi)星鏈路
- BGP:邊界網(wǎng)關協(xié)議概述
- BGP 邊緣網(wǎng)關協(xié)議簡介
- OSPF協(xié)議與其它路由協(xié)議的比較--使用情況不同
- RoutingProtocols路由選擇協(xié)議
- 路由器BGP協(xié)議配置命令
