BGP路由協議特性和存在的問題
隨著網絡的不斷發展,用戶越來越多,對網絡運營商來說也是一個不小的壓力。那么為了提供一個穩定的網絡環境,很多運營商都會使用BGP路由協議來進行網絡路由的管理。下面我們就來分析一下這個協議的特點。
BGP路由協議特性
◆BGP是一種外部路由協議,與OSPF、RIP等內部路由協議不同,其著眼點不在于發現和計算路由,而在于控制路由的傳播和選擇最好的路由。
◆過在BGP路由中攜帶AS路徑信息,可以徹底解決路由循環問題。
◆用TCP作為其傳輸層協議,提高了協議的可靠性。
BGP-4支持無類域間路由CIDR。這是較BGP-3的一個重要改進。CIDR以一種全新的方法看待IP 地址,不再區分A類網、B類網及C類網。例如一個非法的C類網絡地址192.213.0.0(255.255.0.0)采用CIDR表示法192.213.0.0/16 就成為一個合法的超級網絡,其中“/16"表示子網掩碼由從地址左端開始的16 比特構成。CIDR的引入簡化了路由聚合(Routes Aggregation),路由聚合實際上是合并幾個不同路由的過程,這樣從通告幾條路由變為通告一條路由,減小了路由表規模。
路由更新時,BGP路由協議只發送更新的路由,大大減少了BGP傳播路由所占用的帶寬,適用于在Internet上傳播大量的路由信息。
出于管理和安全方面的考慮,每個自治系統都希望能夠對進出自治系統的路由進行控制,BGP-4提供了豐富的路由策略,能夠對路由實現靈活的過濾和選擇,并且易于擴展以支持網絡新的發展。
目前BGP路由協議的擴展性面臨的問題
(1)I-BGP的Full-Mesh問題
BGP路由協議分為I-BGP和E-BGP兩個部分。I-BGP用于自治域內的路由器之間,E-BGP用于自治域間的路由器之間。為了防止產生環回路由,BGP協議要求一個路由器通過I-BGP學到的路由,不再向其他I-BGP鄰居廣播,所以一個自治域內所有參加I-BGP協議的路由器都要與其他路由器建立會話,從而保證路由信息能夠正確地廣播到每一個路由器。依照這個原則,一個自治域內總的I-BGP會話數為N×(N-1)/2 (N為運行I-BGP的路由器數),當N不斷增大時,這個數字會大得驚人:如100臺路由器,則會話數為4950.這對網絡設備而言是個非常大的負擔,而且還將使網絡的管理與配置變得異常復雜。而骨干網通常由大量的運行I-BGP的路由器組成,因此,這個問題是否能夠解決,直接影響到網絡規模的大小。
(2)更改路由策略時路由振蕩的問題
BGP路由協議屬于增量更新的路由協議,當有新的路由要發布時,路由器會向鄰居發送Update信息,而如果要刪除某條路由時,就會發送Withdraw信息。BGP路由的Flap的定義是:當一條路由在被收回(Withdraw)后,又被廣播(Update)出來,視為一次Flap.由于任何一條路由的收回和更新都會導致一臺路由器整個路由表重新計算,因此當Flap的情況比較多時,對路由器設備的負載將產生巨大的壓力。根據筆者在實際工作中的經驗,一般情況下,一臺高端路由器在計算BGP路由的時候,CPU的負載基本上在80%~90%左右,有時甚至達到100%,占用了幾乎所有的CPU資源。雖然目前大部分的高端路由器都將路由計算的模塊與轉發模塊分布在不同的硬件上,來減少主CPU忙導致的路由器性能下降的問題,但是路由表的頻繁變化和更新,對整個設備的運行還是有一定的影響的,而且這樣的計算會隨著路由的收回或廣播,繼續向自治域內部擴展,使內部的路由器產生同樣的問題。
(3)其他需要考慮的問題
除了上面的兩個問題會導致對路由器資源過量消耗之外,還有其他的一些因素,如路由的數目、BGP路由協議的路由表的大小和路由計算的方式等,同樣也會影響路由器的性能。
另外,網絡越大,路由條目越多,配置和管理的工作也就越復雜,這就需要在網絡設計的時候盡量簡化配置,降低管理人員的工作強度,避免人為原因造成故障。