馮振
摘 要 在骨干網層面互聯網數據的高速轉發主要由路由器來實現,路由器的主要作用就是路由選擇和轉發,從而實現多個網絡之間的數據傳遞。本文分析了網關協議IGP與EGP的區別,BGP路由協議的應用,以及基于BGP路由的負載均衡原理,并從實際應用中給出了應用效果。
【關鍵詞】BGP;骨干網;路由選路
當今的互聯網,在骨干網層面,主要由路由器來完成數據的高速轉發,而路由器的主要作用就是路由選擇和轉發,從而實現多個網絡之間的數據傳遞。路由器之所以能夠進行路由選擇,是因為運行了路由協議,而路由協議分為靜態路由協議和動態路由協議。
1 IGP與EGP的區別
大的ISP的網絡可能含有上千臺路由器,而小的網絡通常具有十幾臺路由器,每個ISP管理自己的內部網絡,一般稱為一個管理域或者自治域。不同的自治域之間通過EGP協議來交換路由信息,同一個自治域內部通過IGP來交換路由信息,即IGP 負責一個路由域內路由的路由協議,稱為域內路由協議(Interior Gateway Protocol,IGP),它的作用是確保在一個域內每個路由器均遵循相同的方式表示路由信息,并且遵循相同的發布和處理信息的規則。域內路由協議有:RIP、OSPF、IGRP等。EGP負責在自治系統之間或域間完成路由和可到達信息的交互,稱為域間路由協議(Exterior Gateway Protocol,EGP)。域間路由協議主要就是BGP。
2 BGP路由的應用
BGP協議特別是BGP-4,由于能處理聚合(采用CIDR無類域間路由技術)和超網(supernet)的功能,為互聯網提供可控制的無循環拓撲,在互聯網上被大量使用。BGP協議分為EBGP和IBGP,EBGP —— (External Border Gateway Protocol) 外部邊界網關協議,用于在不同的自治系統間交換路由信息。 IBGP——內部BGP協議(IBGP)的主要作用是向你的內部路由器提供更多信息,用于同一個自治域內部。IBGP路由器特性之一是不會A路由器不會把從B路由器學到的路由信息傳遞給C路由器,所以,每一臺路由器為了學習到全部的路由表,必須以全網狀結構相連,以防止路由環,而使用路由反射器可以解決這一問題。
3 基于BGP路由的負載均衡
BGP因為其開放和強大的路由收斂和聚合能力成為骨干網上最重要的路由協議,但是,因為其選路規則,也會來帶來一些負載均衡的問題,本文主要說明BGP的選路規則和其所面臨的負載均衡問題,以及通過虛擬下一跳技術解決此問題的可行性。
3.1 路由選路規則
BGP的選路主要有5條規則,按順序依次為:
(1)weight先比較管理權重(越大越優先),這個參數本地有效。雖然Weight屬性是Cisco私有的,但是很多廠商也是內置該屬性(但無法顯示及修改),這樣就保證了本地始發的路由是最優先的,因為本地始發路由的Weight為32768,從其他BGP Peer學習過來的路由的Weight為0.
(2)local-pref本地首選項(越大越優先),這個參數在本AS內傳遞。Local Preference屬性只能在IBGP Peer之間傳遞,如果在EBGP Peer之間收到的路由的路徑屬性中攜帶了Local Preference,則會觸發Notifacation報文,造成會話中斷。
(3)路由器本地始發的路徑優先。本地始發的路徑特點是next-hop為0.0.0.0,weight為32768。可以使用不同的方式比如network或redistribute等,那么這些方式之間是存在優先順序的原則:network>redistribute>aggregate,但該原則是不會作為BGP路由選路策略的。
(4)具有最短AS-path路徑(就是AS-PATH中AS最少的優先)的路由優先。但是可以配置bgp bestpath as-path ignore來忽略這一步。注意:在做聚合路由時,使用as-set后產生的AS-Path列表中的{}里的AS號長度只算一個AS號的長度;而在聯盟內的AS-Path列表中的()的AS號長度不做計算依據!不同方向的route-map對于插入的AS號的位置是不同的。
(5)比較origin屬性,具有最低origin源碼。三種不同的Origin屬性的優先順序:IGP>EGP>incomplete,Origin屬性會一直在BGP路由中攜帶。很少使用設置Origin屬性作為BGP路由選路策略。
3.2 技術原理
利用地址宣告屬性實現的負載均衡只是一種相對的均衡,沒有辦法實現對某一個獨立的IP地址做到完全的負載均衡,這種方案也沒有辦法完全利用所有的互聯電路資源,特別是會影響城域網內部的流量。
那么,既然不能實現完全的負載均衡,是因為兩臺CR的IP地址不同,那么能不能將兩臺物理設備隱藏為一臺邏輯設備,是骨干網認為該城域網在邏輯上只有一臺路由與之互聯呢。使用虛擬下一跳技術,完全可以將城域網核心由兩臺物理設備,邏輯上隱藏成一臺設備。
3.3 實現效果
某城域網于2010年起嘗試通過CIDR 地址塊均分劈半引導的方式,均衡集團回省內的流量,取得了一定得效果,部分省內客戶業務流量從集團AR2-省內CR2-省內AR2-SR/BRAS,但由于各個地市地址使用分配上與省內向集團通告的CIDR 地址段并不一致,還有就是專線、IDC、XDSL 各類客戶流量模型上存在著差異等,導致省內CR1 到AR1 與省內CR2 到AR2 鏈路之間的流量比例只有6:4這樣的使用比例,而城域網內的SR 及BRAS雙上行鏈路流量比例只有7:3,分公司擴容BRAS上行板卡時只選擇占70%比例的一側。雖然有所改善,但資源的利用率同樣得不到很好的使用。
后來對城域網又進行了一次改造,使用了虛擬下一跳技術,將地市匯聚設備由兩臺物理設備,邏輯上隱藏成一臺設備,其本質是將匯聚層設備的功能由BGP省內地址通告、BGP集團通告及流量引導,BGP省內流量引導,修正成BGP省內地址通告、BGP集團策略(med 屬性)通告及流量引導,IGP省內流量引導,利用IGP 替代BGP無法很好實現的流量負載均衡。
參考文獻
[1]馮小歐.BGP流量負載分擔規劃[J].河南廣播電視大學學報,2011(01).
[2]鄧煒,趙武,范春湘.利用BGP虛擬下一跳技術實現IP骨干網流量負載均衡[J]. 電信工程技術與標準,2009(08).
作者單位
亳州職業技術學院 安徽省亳州市 236800