馮小歐(鄭州旅游職業(yè)學(xué)院 信息中心,河南 鄭州 450001)
BGP流量負(fù)載分擔(dān)規(guī)劃
馮小歐(鄭州旅游職業(yè)學(xué)院 信息中心,河南 鄭州 450001)
如何優(yōu)化地利用網(wǎng)絡(luò)帶寬資源,是流量負(fù)載分擔(dān)的關(guān)注重點。BGP(Border%Gateway%Protocol,邊界網(wǎng)關(guān)協(xié)議)選擇單條最優(yōu)路徑的這一特征往往會出現(xiàn)流量負(fù)載不均衡的流量模型,BGP流量負(fù)載均衡可從兩個角度出發(fā)解決這個問題:通過BGP強大的策略控制流量的負(fù)載均衡,通過多路徑選路實現(xiàn)負(fù)載分擔(dān)。本文主要從這兩個角度來展開分析BGP在流量負(fù)載分擔(dān)方面的技術(shù)應(yīng)用。
BGP;負(fù)載均衡;多跳;多路徑
在實際網(wǎng)絡(luò)中進(jìn)行負(fù)載均衡需要綜合考慮鏈路和設(shè)備節(jié)點的負(fù)載情況,在滿足業(yè)務(wù)的實際需求前提下,可以通過BGP的策略工具對流量進(jìn)行均衡的規(guī)劃和調(diào)整。對于一個AS來說,流量的方向分為入境和出境兩個方向,這種區(qū)分對應(yīng)到實際的網(wǎng)絡(luò)有不同的規(guī)劃,所以我們在此通過不同的場景進(jìn)行介紹。
圖1 多宿主到不同的上游的負(fù)載均衡
我們先分析一下圖1的場景,AS100希望流量能夠在AS200和AS300間進(jìn)行負(fù)載均衡,也就是說根據(jù)業(yè)務(wù)分別映射到Link1和Link2上。
在規(guī)劃中我們有如下思路:
AS100可以在RA和RB上通過策略只向各自的對等體通告部分路由前綴,這樣可以達(dá)到不同的業(yè)務(wù)對應(yīng)不同的AS承載。如172.168.1.0/25通過RA通告給RC,172.168.1.128/25通過RB通告給RD。這種規(guī)劃能夠滿足流量分擔(dān)的效果,但是一旦出現(xiàn)鏈路或節(jié)點的失效,就會導(dǎo)致部分流量無法切換,業(yè)務(wù)中斷。
通過步驟1我們可以看到簡單地通過路由過濾無法很好地實現(xiàn)需求。我們可以通過對不同的前綴進(jìn)行策略區(qū)分。接著步驟1的思路,AS100希望172.168.1.0/25優(yōu)先通過AS200進(jìn)入,希望172.168.128.0/128通告的AS-PATH加一個ASNumber,如:1000%100。RB上通過策略將172.168.1.0/25通告給RD的AS-PATH加一個AS-Number,如:2000%100。
RE上關(guān)于172.168.1.0/25的前綴從RC通告過來的ASPATH是:200%100,通過RD通告過來的AS-PATH是:300%2000%100,因此優(yōu)選走AS200。關(guān)于172.168.128.0/25同理會優(yōu)選AS300。該規(guī)劃可以在滿足需求的同時解決路由備份的問題。但是我們考慮下面一個場景,當(dāng)RC合RD建立BGP連接,RD上關(guān)于172.168.1.0/25的前綴從RC通告過來的AS-PATH是100%200,從RB上通告過來的AS-PATH是2000100,也就是說RD上關(guān)于172.168.1.0/25無法很好地進(jìn)行路由選路控制。
團(tuán)體屬性是進(jìn)行本地路由控制的重要屬性,但是團(tuán)體屬性需要BGP對等雙方有屬性處理的共識。在步驟2的基礎(chǔ)上,RB在通告172.168.1.0/25時,可以將團(tuán)體屬性值修改為100:120,在RD上將團(tuán)體屬性的前綴預(yù)定義Local-preference為120,這樣對于RD來說,在收到RC和RB的前綴AS-PATH相同長度的情況下,RB通告的前綴Local-preference高,優(yōu)選RB。
分析完圖1所示的場景,我們可以繼續(xù)看看多宿主相同上游的場景,如圖2:
圖2 多宿主相同AS的負(fù)載均衡
對于相同的上游AS,我們更多地需要考慮上游AS內(nèi)部的選路,對于跨過上游AS的遠(yuǎn)端AS的選路我們很難控制,因此本文討論的重點就在本地和上游AS的選路策略部署。先分析需求,本地AS希望172.168.1.0/25通過RB進(jìn)入,172.168.128.0/ 25通過RC進(jìn)入。存在下述三種方式:
借鑒上文中多宿主不同AS的做法,將172.168.128.0/25通告給RB時,將AS-PATH設(shè)置為1000%100,將172.168.1.0/25通告給RC時,將AS-PATH設(shè)置為2000%100。由于RB和RC之間是IBGP鄰居,因此對于RB來說,172.168.1.0/25從RA學(xué)習(xí)到的AS-PATH是100,從RC上學(xué)習(xí)到的AS-PATH是2000%100,優(yōu)選RA的路由。對于172.168.128.0/24來說,從RA學(xué)習(xí)的路由ASPATH為1000%100,從RC學(xué)習(xí)的路由AS-PATH為100,優(yōu)選RC。這滿足了需求。
同樣,在AS間協(xié)商進(jìn)行策略部署的前提下,可以在RA上對不同的業(yè)務(wù)前綴進(jìn)行屬性賦值的區(qū)分,在RB/RC對不同的屬性設(shè)置不同的本地優(yōu)先級進(jìn)行業(yè)務(wù)的分擔(dān)均衡。
還是針對圖2,對于AS200進(jìn)行入方向的流量負(fù)載分擔(dān)部署,最直接的方法就是通過修改MED值的方法,使得RA通過MED值直接進(jìn)行路由的優(yōu)選。
我們還是先分析圖1的場景,AS100希望出方向的業(yè)務(wù)流量能夠在RA和RB間進(jìn)行合理的負(fù)載均衡:可以通過在RA和RB上進(jìn)行入境路由前綴過濾,通過前綴在不同的出口路由器的通告分擔(dān)來實現(xiàn)業(yè)務(wù)流量出方向的負(fù)載均衡。
入境的過濾適用于對端AS的業(yè)務(wù)負(fù)載分擔(dān),但是對于遠(yuǎn)端Internet的業(yè)務(wù),無法通過入境路由前綴過濾的方法實現(xiàn),否則會出現(xiàn)單點故障導(dǎo)致業(yè)務(wù)中斷的情況。對于Internet業(yè)務(wù)就需要進(jìn)行入境路由前綴策略控制,例如通過添加AS-PATH或者對特定前綴設(shè)置不同的本地優(yōu)先級等。
對于單點故障導(dǎo)致業(yè)務(wù)中斷的考慮還可以通過出口路由器發(fā)布缺省路由的方式作為路徑的備份,一旦出現(xiàn)某個出口路由器故障,路徑可以通過缺省路由切換至其他出口路由器,起到備份的效果。
同樣可以和上游AS協(xié)商,通過通告來的前綴攜帶不同的團(tuán)體屬性進(jìn)行相應(yīng)的策略控制。
對于圖2的場景,單出口路由器上進(jìn)行負(fù)載分擔(dān)可以借助路由策略的方法更為靈活:針對不同對等體進(jìn)行入境路由前綴過濾,使業(yè)務(wù)自然分擔(dān)到不同的出口鏈路上。同時配置缺省路由指向?qū)Φ润w,防止單點故障業(yè)務(wù)中斷。
通過針對特定前綴設(shè)置多種屬性,如Local-preference、Origin、MED等,在本地進(jìn)行路由優(yōu)選。
AS內(nèi)部的負(fù)載均衡相對容易部署,通過策略對業(yè)務(wù)進(jìn)行區(qū)分,對不同的業(yè)務(wù)使用不同的BGP屬性進(jìn)行控制。如圖3,RB和RC同時向RA通告172.168.1.0/25和172.168.128.0/ 25,RA希望172.168.1.0/25業(yè)務(wù)從RB走,172.168.128.0/128從RC走。
滿足這種需求,可以直接在RA上對業(yè)務(wù)進(jìn)行區(qū)分,對RB通告的172.168.1.0/25的Local%preference設(shè)置為120,本地優(yōu)選結(jié)果能夠滿足需求。
圖3 AS內(nèi)部負(fù)載均衡
上文介紹的是多宿主情況下的負(fù)載均衡規(guī)劃思路,本章節(jié)需要關(guān)注的是通過等價路由在路由器之間進(jìn)行負(fù)載分擔(dān)的部署方式。
圖4的場景是兩臺路由器之間通過環(huán)回建立在EBGP鄰接,我們知道對于EBGP鄰接超過1跳建立鄰接需要通過命令peer%x.x.x.x%ebgp-max-hop
圖4 多鏈路多跳EBGP對等體負(fù)載負(fù)擔(dān)
圖5的場景和圖4類似,區(qū)別在于兩個出口路由器通過鏈路接口地址建立了多個EBGP會話,每一個會話對應(yīng)于特定的鏈路。
圖5 多鏈路多EBGP對等體負(fù)載分擔(dān)
RA和RB通過兩條鏈路的物理接口地址建立兩個單挑EBGP鄰接關(guān)系,以RA舉例,從兩個EBGP會話均收到關(guān)于172.168.1.0/24的路由信息,在其他屬性都相同的前提下,兩個EBGP對等體通告的路由形成等價。
比較上述兩種負(fù)載分擔(dān)方式,第一種方式,建立了一個EBGP會話,會話直接綁定在兩個出口路由器的環(huán)回地址,通過直連路由迭代下一跳的方式在鏈路間實現(xiàn)負(fù)載分擔(dān)。這種方式EBGP會話屬于多跳會話,需要兩個AS間進(jìn)行環(huán)回地址的路由部署,適用性有一定的限制。第二種方式,需要建立多個會話,對資源有一定的消耗,同時對于EBGP等價路由的配置,是針對本設(shè)備所以BGP對等體適用,無法區(qū)分對等體,因此,缺少一定的靈活性。
AS內(nèi)部的負(fù)載分擔(dān)規(guī)劃同樣可以采用下一跳迭代的方式在同一個IBGP會話間進(jìn)行多鏈路的負(fù)載分擔(dān)。對于多IBGP對等體通告的路由在迭代屬性相同的前提下能夠形成負(fù)載分擔(dān)。對于圖6中的場景,RB和RC向RA通告172.168.1.0/ 24的路由前綴,在ORIGIN,LOCAL-PREFERENCE以及ASPATH路徑屬性均相同的前提下能夠形成負(fù)載分擔(dān)。
圖6 AS內(nèi)部負(fù)載分擔(dān)
多鏈路的負(fù)載分擔(dān)還是可以通過下一跳迭代到等價IGP路由或者默認(rèn)路由來實現(xiàn),例如圖7所示場景:
圖7 IGP路由的下一跳迭代
RD和RA建立IBGP鄰接關(guān)系,RD向RA通告路由172.168.1.0/24,RA上關(guān)于172.168.1.0/24的路由下一跳是RD的環(huán)回口地址,在RA上針對RD環(huán)回口地址有兩條等價的IGP路由:RA-RB-RD和RA-RC-RD,通過下一跳迭代,在RA上針對172.168.1.0/24的BGP路由也形成等價。
ORIGIN,LOCAL-PREFERENCE,MED以及AS-PATH路徑屬性均相同是形成負(fù)載分擔(dān)的前提,在此前提下還要遵循一定的原則進(jìn)行負(fù)載分擔(dān)規(guī)劃。以圖8舉例。
RB/RC均與RA通過廣播網(wǎng)絡(luò)建立單挑EBGP對等體,RA向RB/RC通告路由前綴172.168.1.0/24,RB和RC同時向RD通告,RE上收到RB和RC的路由不會形成負(fù)載分擔(dān),為什么?
缺省情況下,邊界路由器向IBGP對等體通告EBGP路由時,不會修改下一跳,因此RB和RC向RE通告的路由下一跳均為RA的接口地址,在RE上由于下一跳相同,因此不會形成負(fù)載分擔(dān)。
可解決的辦法是:
在RB和RC上針對IBGP對等體通過配置修改為:peer%x.x. x.x%next-hop-local,將下一跳修改為本地地址,這樣RE上收到的路由下一跳不同,可以形成負(fù)載分擔(dān)。
同樣利用圖8舉例,RD是RR,RB和RE是其RR%Client,同時RB和RE間建立IBGP鄰接關(guān)系,RB通告路由172.168.1.0/24,RD反射至RE.RR在反射路由時缺省不會修改下一跳,因此在RE上關(guān)于172.168.1.0/24的路由下一跳均為RB的環(huán)回地址,可以利用前文的路由迭代,將RE-RB和RE-RD-RB的IGP路由Metric設(shè)置相同,此時能否形成負(fù)載分擔(dān)?此時無法形成負(fù)載分擔(dān)。在圖8中,可以將RC/RD均配置為RR,RB/RE為RR%Client,RC和RD反射RB的路由172.168.1.0/24至RE,這樣RE可以在兩個反射路由間形成負(fù)載分擔(dān)。
圖8 負(fù)載分擔(dān)規(guī)劃原則
負(fù)載均衡和負(fù)載分擔(dān)均是BGP通過策略控制達(dá)到流量在網(wǎng)絡(luò)中不同節(jié)點、不同鏈路間的平衡,起到合理利用網(wǎng)絡(luò)資源的效果。本文介紹的是對具體網(wǎng)絡(luò)負(fù)載均衡或分擔(dān)的需求進(jìn)行規(guī)劃的思路,實際中滿足需求的手段多種多樣,需要根據(jù)實際情況作相應(yīng)的規(guī)劃調(diào)整,因此在實際的網(wǎng)絡(luò)規(guī)劃時不要拘泥于本文提及的方法,更多的是思路上的借鑒。同時,負(fù)載均衡和分擔(dān)往往需要經(jīng)過多次嘗試才能盡可能接近均衡的,過于精確的均衡往往會帶來策略上的復(fù)雜度,同時在考慮均衡的同時還要兼顧路徑的備份。
[1]黃博.BGP設(shè)計與實現(xiàn)[J].北京:人民郵電出版社,2008.
[2]陶駿.基于BGP協(xié)議的網(wǎng)絡(luò)故障分析[J].計算機(jī)系統(tǒng)應(yīng)用,2008,(07).
[3]周耀勝.網(wǎng)絡(luò)流量分析技術(shù)的應(yīng)用及方案比較[J].現(xiàn)代電信科技,2009,(07).
[4]鄧煒,趙武,范春湘.利用BGP虛擬下一跳技術(shù)實現(xiàn)IP骨干網(wǎng)流量負(fù)載均衡[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2009,(08).
TP317
A
1671-2862(2011)01-0110-03
2011-01-06
馮小歐,女,鄭州旅游職業(yè)學(xué)校教師。