摘 要:隨著信息化企業(yè)的不斷推進(jìn),省級數(shù)據(jù)中心的規(guī)模越來越大,使用以往的二層和三層技術(shù)進(jìn)行組網(wǎng)便暴露出了一些問題。本文在分析這些問題的基礎(chǔ)上,介紹了二層多路徑技術(shù),并對FabricPath的運(yùn)行模式和配置進(jìn)行了闡述。
關(guān)鍵詞:二層多路徑;FabricPath;TRILL;STP
隨著大量業(yè)務(wù)集中部署、大型ERP項(xiàng)目開展和信息化企業(yè)不斷的深入,目前省級公司的數(shù)據(jù)中心規(guī)模也越來越大,選擇何種技術(shù)才能建成高效、穩(wěn)定、經(jīng)濟(jì)的數(shù)據(jù)中心網(wǎng)絡(luò),成為擺在信息化工作者面前的重要課題。
本文首先分析了目前數(shù)據(jù)中心通過二層和三層技術(shù)組網(wǎng)存在的問題,然后以TRILL協(xié)議為例闡述了二層多路徑技術(shù)的基本原理,最后介紹了思科二層多路徑技術(shù)(FabricPath)運(yùn)行模式和基本配置。
1 目前數(shù)據(jù)中心組網(wǎng)技術(shù)存在的問題
當(dāng)前大部分的數(shù)據(jù)中心網(wǎng)絡(luò)都是按照標(biāo)準(zhǔn)的層次化理念建設(shè)的,分為接入層、匯聚層和核心層。接入層和匯聚層之間為二層鏈路,三層網(wǎng)關(guān)設(shè)在匯聚或核心,這種模式因?yàn)椴渴鸷唵巍⒔尤雽釉O(shè)備不需要復(fù)雜的配置、大部分的網(wǎng)絡(luò)策略只要在匯聚層集中部署就能分發(fā)到全網(wǎng)等優(yōu)點(diǎn),在過去很長一段時(shí)間被大規(guī)模采用[1]。但是隨著數(shù)據(jù)中心規(guī)模越來越大,甚至數(shù)據(jù)中心機(jī)房位于多個不同地點(diǎn)時(shí),這種部署方式就暴露出了許多問題,歸納起來主要有以下幾點(diǎn)。
1.1 生成樹協(xié)議(STP)帶來的問題
目前信息中心所有二層鏈路上都運(yùn)行STP,當(dāng)任意兩點(diǎn)間有一條以上路徑可達(dá)時(shí),STP會阻塞掉多余的路徑,以保證兩點(diǎn)間只有一條路徑可達(dá),從而防止環(huán)路的產(chǎn)生,如圖1所示。
如果兩臺網(wǎng)絡(luò)設(shè)備之間只有一條鏈路可行,其余的萬兆交換機(jī)端口全被阻塞,不僅投資的浪費(fèi)極大,也無法支持業(yè)務(wù)的快速擴(kuò)展;其次,STP收斂速度較慢,當(dāng)某條鏈路出現(xiàn)問題時(shí)一般需要30至50秒才能完成網(wǎng)絡(luò)收斂,即時(shí)使用快速STP(RSTP)也需要數(shù)秒鐘時(shí)間,多數(shù)實(shí)時(shí)業(yè)務(wù)承受不了這么長時(shí)間的網(wǎng)絡(luò)中斷;再次,當(dāng)交叉鏈路數(shù)量增加時(shí),要規(guī)劃哪條鏈路該保留哪條鏈路該阻斷會變得非常復(fù)雜。
1.2 三層網(wǎng)關(guān)帶來的問題
當(dāng)數(shù)據(jù)中心規(guī)模過大,或者數(shù)據(jù)中心機(jī)房位于多個不同地點(diǎn)時(shí)通常也可以通過設(shè)置三層網(wǎng)關(guān)來互聯(lián)。在匯聚交換機(jī)或者核心交換機(jī)設(shè)置IP網(wǎng)關(guān),通過三層路由將所有交換機(jī)連接起來,如圖2所示。
三層互連方式是目前連接廣域數(shù)據(jù)中心的主流方式,但是首先這種方法和二層網(wǎng)絡(luò)相比,會導(dǎo)致數(shù)據(jù)中心之間數(shù)據(jù)交換能力下降;其次,如果采用動態(tài)路由協(xié)議,動態(tài)協(xié)議的行為往往難以預(yù)測,為了保證網(wǎng)絡(luò)行為的可控性,每臺交換機(jī)的路由策略都要經(jīng)過仔細(xì)琢磨,這個工作量過于龐大,但如果采用靜態(tài)路由,一旦后期需要改動某個地址段的范圍,可能需要改寫一大段接入換機(jī)的路由表,相關(guān)訪問控制策略變動也極不方便;最后在今后的虛擬化環(huán)境中,二層網(wǎng)絡(luò)才是虛擬機(jī)遷移的基礎(chǔ),虛擬化的最大特點(diǎn)是可以將業(yè)務(wù)動態(tài)部署到數(shù)據(jù)中心的任何計(jì)算資源上,如果這些計(jì)算資源(也就是服務(wù)器)被過多的三層網(wǎng)關(guān)隔離開來,也就失去了虛擬化的優(yōu)勢。
綜上所述,數(shù)據(jù)中心未來的發(fā)展方向是自動化、虛擬化,而相關(guān)特性的實(shí)現(xiàn)離不開一個高靈活性、高效能、廣泛部署的二層網(wǎng)絡(luò)環(huán)境,但是因二層網(wǎng)絡(luò)的轉(zhuǎn)發(fā)機(jī)制較簡單,無法實(shí)現(xiàn)多路徑和最優(yōu)路徑,尤其是STP協(xié)議帶來的收斂慢和需要阻塞鏈路的問題,使現(xiàn)有的二層技術(shù)又不適應(yīng)數(shù)據(jù)中心大規(guī)模發(fā)展的需要[2]。因此,二層多路徑技術(shù)就隨之產(chǎn)生了。
2 二層多路徑技術(shù)原理
目前致力于實(shí)現(xiàn)二層多路徑的標(biāo)準(zhǔn)化組織主要有IETF和IEEE,兩家的標(biāo)準(zhǔn)分別為TRILL(Transparent Interonnection of Lots of Links,多鏈接透明互聯(lián)協(xié)議)和SPB(Shortest Path Bridging,IEEE 802.1aq,最短路徑橋接協(xié)議)。二者的目標(biāo)都是簡化網(wǎng)絡(luò)拓?fù)洌跀?shù)據(jù)中心網(wǎng)絡(luò)的邊緣和核心之間形成網(wǎng)狀網(wǎng),都采用了IS-IS作為路由協(xié)議,兩個標(biāo)準(zhǔn)都運(yùn)行在2層上,實(shí)現(xiàn)方式大同小異。
本文將以TRILL為例,簡單介紹二層多路徑技術(shù)原理[3]。
2.1 單播數(shù)據(jù)幀的轉(zhuǎn)發(fā)原理
本文將運(yùn)行TRILL協(xié)議的交換機(jī)稱之為RB,即具有路由轉(zhuǎn)發(fā)特性的二層交換設(shè)備。RB通過運(yùn)行自己的鏈路狀態(tài)協(xié)議(通過IS-IS擴(kuò)展的)認(rèn)知整個網(wǎng)絡(luò)的拓?fù)洌⑹褂米疃搪窂綐渌惴ㄉ蓮脑揜B到達(dá)網(wǎng)絡(luò)里的各個RB的路由轉(zhuǎn)發(fā)表,RB又通過ESADI(End Station Address Distribution Information,終端地址交互協(xié)議)交互學(xué)習(xí)各自的Mac地址。
這樣RB就知道了終端Mac究竟屬于哪個RB,RB接收到普通以太網(wǎng)數(shù)據(jù)幀時(shí)(這里專指802.1)查找Mac表,若該Mac源發(fā)自某RB,就將數(shù)據(jù)幀轉(zhuǎn)換成TRILL數(shù)據(jù)幀在網(wǎng)絡(luò)里轉(zhuǎn)發(fā),TRILL數(shù)據(jù)幀包含有源RB和目的RB的信息,而RB又有到達(dá)各個RB的路由信息,這樣RB可以對TRILL數(shù)據(jù)幀進(jìn)行轉(zhuǎn)發(fā),當(dāng)一臺RB接收到一個TRILL數(shù)據(jù)幀時(shí),該數(shù)據(jù)幀的目的RB為其自身,則解封裝TRILL報(bào)頭,獲得最初進(jìn)入trill campus的以太網(wǎng)數(shù)據(jù)幀,再進(jìn)行轉(zhuǎn)發(fā)。
這也就是說TRILL作為二層轉(zhuǎn)發(fā)技術(shù),通過引入三層路由的鏈路狀態(tài)發(fā)現(xiàn)協(xié)議將此前的二層交換機(jī)設(shè)備升級成了具備路由能力的交換機(jī)設(shè)備。
2.2 廣播和多播數(shù)據(jù)幀轉(zhuǎn)發(fā)原理
此類報(bào)文的處理正是二層鏈路協(xié)議的核心和重點(diǎn),不合理或存在漏洞的二層鏈路協(xié)議會造成二層環(huán)路,純802.1二層網(wǎng)絡(luò)一旦出現(xiàn)環(huán)路將造成廣播報(bào)文的激增,整網(wǎng)將處于癱患狀態(tài),直到環(huán)路解除為止。
TRILL協(xié)議首先針對二層環(huán)路沒有TTL的問題進(jìn)行了改進(jìn),在TRILL報(bào)文頭中引入了TTL字段,這樣TRILL報(bào)文在網(wǎng)絡(luò)中即使發(fā)生了環(huán)路問題也不至于造成嚴(yán)重的后果。
另外TRILL協(xié)議對多播及廣播報(bào)文的轉(zhuǎn)發(fā)設(shè)計(jì)了分發(fā)樹(distribution tree)的多播轉(zhuǎn)發(fā)行為,它的分發(fā)樹類似于STP的生成樹,也有一個類似于根橋的root bridge,與STP的生成樹算法不同的是TRILL的分發(fā)樹是從ISIS的網(wǎng)絡(luò)拓?fù)渲杏?jì)算產(chǎn)生的,并為每一個VLAN生成一棵分發(fā)樹,在發(fā)生VLAN變化或接口變化時(shí),這種分發(fā)樹的過程不需要額外的配置,完全是由RB自動完成的。當(dāng)一臺邊緣RB收到一個某VLAN的廣播幀或多播幀時(shí),RB除了向自己的其它普通vlan口分發(fā)該數(shù)據(jù)幀外,還要封裝該數(shù)據(jù)幀為TRILL數(shù)據(jù)幀,目的RB為該VLAN分發(fā)樹的根橋,通過根橋?qū)⒃摂?shù)據(jù)幀擴(kuò)散的與該VLAN相關(guān)的其它所有RB設(shè)備上。
3 FabricPath技術(shù)
思科公司在TRILL的制定過程中參與較深,并與2010年6月發(fā)布了FabricPath技術(shù)。雖然FabricPath是思科的私有解決方案,但可以看作一個“增強(qiáng)版的TRILL”,是TRILL的基本功能加上“基于會話的MAC地址學(xué)習(xí)”、“Vpc+”和“多重拓?fù)洹钡裙δ艿暮霞M瑫r(shí),思科發(fā)布了支持FabricPath的Nexus 7000板卡,并且承諾現(xiàn)有架構(gòu)與TRILL標(biāo)準(zhǔn)兼容,當(dāng)TRILL正式標(biāo)準(zhǔn)化之后,只需要升級現(xiàn)有設(shè)備的軟件,就能夠與標(biāo)準(zhǔn)的TRILL交換機(jī)互聯(lián)互通。
3.1 FabricPath的技術(shù)目標(biāo)
總體上說,F(xiàn)abricPath技術(shù)目標(biāo)是在保證二層網(wǎng)絡(luò)環(huán)境的前提下,修復(fù)現(xiàn)有二層網(wǎng)絡(luò)的缺陷,主要實(shí)現(xiàn)有以下功能:
· 實(shí)現(xiàn)兩點(diǎn)間多條路徑同時(shí)轉(zhuǎn)發(fā)流量EMCP(Equal Cost Multi Pathing);
·自動發(fā)現(xiàn),操作簡單,類似IP網(wǎng)絡(luò)的平滑擴(kuò)展;
·高可用性,實(shí)現(xiàn)快速收斂,防止廣播風(fēng)暴;
·保持原有二層網(wǎng)絡(luò)配置的簡潔性;
·帶寬的高擴(kuò)展性,克服STP需要阻塞鏈路端口的弊端。
3.2 FabricPath技術(shù)的工作模式
如圖3所示,數(shù)據(jù)幀在進(jìn)入FabricPath網(wǎng)絡(luò)時(shí),會被打上新幀頭,在FabricPath網(wǎng)絡(luò)內(nèi)根據(jù)幀頭里的switch ID進(jìn)行轉(zhuǎn)發(fā),離開Fabric Path網(wǎng)絡(luò)時(shí),脫去幀頭,進(jìn)入傳統(tǒng)的以太網(wǎng)交換環(huán)境。要加入FabricPath網(wǎng)絡(luò),只需在交換機(jī)對應(yīng)端口上啟用FabricPath模式即可,所有的地址分配和路由策略都自動生成,無需繁瑣的配置。
FabricPath幀結(jié)構(gòu)中定義了一個數(shù)據(jù)幀的最長生存周期(TTL)字段,每當(dāng)數(shù)據(jù)幀經(jīng)過一臺交換設(shè)備TTL就減一,直到TTL為零時(shí),這個幀將被丟棄。TTL保證了數(shù)據(jù)幀不會在成環(huán)的鏈路中被無限次轉(zhuǎn)發(fā),從而使得二層環(huán)境不再需要運(yùn)行STP協(xié)議,不再有鏈路被Block,這是實(shí)現(xiàn)兩點(diǎn)之間多路徑轉(zhuǎn)發(fā)的基礎(chǔ)。
圖4是一個典型的FabricPath組網(wǎng),匯聚設(shè)備同接入設(shè)備之間為FabricPath網(wǎng)絡(luò),F(xiàn)abricPath網(wǎng)絡(luò)內(nèi)沒有運(yùn)行STP,多條鏈路都能夠轉(zhuǎn)發(fā)數(shù)據(jù)。基于IS-IS的特性,F(xiàn)abricPath網(wǎng)絡(luò)設(shè)備的switch ID可以動態(tài)修改,而不影響流量轉(zhuǎn)發(fā),當(dāng)數(shù)據(jù)中心規(guī)模不斷擴(kuò)張時(shí),可以利用FabricPath平滑地?cái)U(kuò)展其匯聚層,并在接入設(shè)備間實(shí)現(xiàn)最多16條二層多路徑。
接入設(shè)備作為網(wǎng)關(guān)連接了傳統(tǒng)以太網(wǎng)絡(luò)同F(xiàn)abricPath網(wǎng)絡(luò),F(xiàn)abricPath網(wǎng)關(guān)上可以進(jìn)行“基于會話的MAC地址學(xué)習(xí)”,只有那些目的地址為本地設(shè)備的數(shù)據(jù)幀的源地址會被放入網(wǎng)關(guān)的MAC地址表,其他數(shù)據(jù)幀的源地址以及廣播幀的源地址都不會被學(xué)習(xí),這就保證了邊緣網(wǎng)關(guān)設(shè)備的MAC地址表里只保存與本地有會話關(guān)系的MAC地址,這個舉措能夠大大縮小虛擬化數(shù)據(jù)中心內(nèi)接入設(shè)備的MAC地址表體積。
3.3 FabricPath的配置
FabricPath的配置較為簡單,不需要手工進(jìn)行IS-IS的 配置,只需輸入“feature-set”關(guān)鍵字就會自動將FabricPath需要的多個Service同時(shí)打開(例如L2 IS-IS,LLDP等)。下面是一個進(jìn)行FabricPath配置的簡單示例。
N7K(config)# feature-set fabricpath
N7K(config)# vlan 10-19
N7K(config-vlan)# mode fabricpath
N7K(config)# interface port-channel 1
N7K(config-if)# switchport mode fabricpath
4 結(jié)論
當(dāng)前數(shù)據(jù)中心的規(guī)模越來越大,對于虛擬化、自動化的特性需求越來越強(qiáng)烈,傳統(tǒng)的二層、三層技術(shù)不再能滿足其全部需求。在網(wǎng)絡(luò)領(lǐng)域,二層多路徑技術(shù)是一個顯著的進(jìn)步,正如筆者所介紹的,F(xiàn)abricPath簡化了網(wǎng)絡(luò)設(shè)計(jì),提高了網(wǎng)絡(luò)可擴(kuò)展性和彈性。FabricPath網(wǎng)絡(luò)不再需要運(yùn)行生成樹協(xié)議(STP),沒有鏈路被阻斷,大大增加了網(wǎng)絡(luò)傳輸帶寬,很好地支持了服務(wù)器之間迅猛增加的橫向流量。同時(shí),F(xiàn)abricPath能夠?qū)崿F(xiàn)類似三層的路由功能,支持二層網(wǎng)絡(luò)的平滑擴(kuò)展。
但是同時(shí)也要看到,目前二層多路徑技術(shù)的標(biāo)準(zhǔn)還不統(tǒng)一,市場上支持該技術(shù)的設(shè)備較少(只有思科的N7000板卡)且價(jià)格較為昂貴,在部署實(shí)施時(shí)需要綜合考慮今后該技術(shù)的兼容性和發(fā)展趨勢。
[參考文獻(xiàn)]
[1]李斌.撥云見日 FabricPath從交換到路由[J].彎曲評論網(wǎng),2011.3.21.
[2]李智鵬.交換機(jī)新生[J].計(jì)算機(jī)世界,2011年第15期.
[3](美)Joe Touch.Transparent Interconnection of Lots of Links (TRILL):Problem and Applicability Statement.RFC 5556.2009.5.