MPLS應(yīng)用在一些大型的行業(yè)企業(yè)(如政府軍工),這些企業(yè)在自建內(nèi)部網(wǎng)絡(luò)時(shí),會(huì)使用MPLS技術(shù)搭建各個(gè)地方的互聯(lián)核心網(wǎng)。此時(shí)可以將各地的數(shù)據(jù)中心站點(diǎn)復(fù)用MPLS核心網(wǎng)進(jìn)行跨地域連接,降低企業(yè)成本才是關(guān)鍵。在自建的MPLS核心網(wǎng)中,需要在各個(gè)站點(diǎn)的PE設(shè)備間搭建VPLS隧道用于傳輸Ethernet報(bào)文。如果是租用運(yùn)營(yíng)商的VPLS隧道則不需要考慮這么多,那時(shí)PE是由運(yùn)營(yíng)商提供的,對(duì)用戶(hù)來(lái)說(shuō)組網(wǎng)部署和前面的光纖直連沒(méi)有區(qū)別。
VLL
如果是只有兩個(gè)站點(diǎn)互聯(lián)的情況,可以使用VLL(Virtual Leased Line)。VLL是一種點(diǎn)到點(diǎn)的虛擬邏輯鏈路技術(shù),數(shù)據(jù)報(bào)文從隧道入口入,只能從定義好的另外一端出口出,不存在多個(gè)隧道終點(diǎn)一說(shuō)。數(shù)據(jù)平面沒(méi)啥可說(shuō)的,A點(diǎn)收到的二層報(bào)文進(jìn)隧道直接封裝上MPLS報(bào)頭發(fā)給B點(diǎn)就OK了,整個(gè)過(guò)程框架可參考前面的MPLS轉(zhuǎn)發(fā)圖?刂破矫嬗捎谒淼蓝际屈c(diǎn)到點(diǎn)連接方式,不需要復(fù)雜尋址,只要在數(shù)據(jù)流量傳輸時(shí),給VPN分配外層封裝的對(duì)應(yīng)Label即可。分配方式有以下四種:
CCC(Circuit Cross Connect):全網(wǎng)靜態(tài)為VPN分配一個(gè)Label,包括所有路徑的PE和P設(shè)備都需要手工配置。此Draft已經(jīng)處于Dead狀態(tài),目前基本也沒(méi)人用了。
SVC(Static Virtual Circuit):只在PE上靜態(tài)配置私網(wǎng)VPN的Label,公網(wǎng)標(biāo)簽不管。有用的但也不多,靜態(tài)配置這種方式對(duì)故障處理總是心有余而力不足的。
Martini:RFC4762,使用LDP協(xié)議在PE間建立連接,為VPN動(dòng)態(tài)分配Label,省事好用。
Kompella:RFC4761,使用BGP協(xié)議在PE間建立連接,使用BGP VPNv4擴(kuò)展字段攜帶VPN對(duì)應(yīng)Label信息進(jìn)行傳遞,這個(gè)實(shí)現(xiàn)起來(lái)比Martini復(fù)雜一點(diǎn)點(diǎn),用得也就少了一些些。
后面兩種Martini和Kompella方式在MPLS L3 VPN和VPLS里面也都有應(yīng)用,都是作為控制協(xié)議來(lái)為VPN分配和傳遞Label用的。
VPLS
當(dāng)存在多個(gè)站點(diǎn)時(shí),A站點(diǎn)收到的二層報(bào)文就有個(gè)選B還是選C進(jìn)行轉(zhuǎn)發(fā)的問(wèn)題。于是有了VPLS(Virtual Private Lan Service)。VPLS是支持點(diǎn)到多點(diǎn)的虛擬鏈路技術(shù),從隧道入口進(jìn)入后,可以根據(jù)VPLS MAC地址表從多個(gè)隧道出口中去選擇正確的出口,或者廣播給所有出口?刂破矫孢是通過(guò)Martini和Kompella兩種方式分配與傳遞VPN對(duì)應(yīng)的Label。數(shù)據(jù)平面則要多維護(hù)一張VPN的MAC對(duì)應(yīng)VC(Virtual Circuit)轉(zhuǎn)發(fā)表,既前面提到的VPLS MAC地址表,本地接口收到的報(bào)文,MAC地址學(xué)習(xí)方式還是和傳統(tǒng)Ethernet一樣;只有當(dāng)報(bào)文從遠(yuǎn)端PE過(guò)來(lái)時(shí),記錄的源MAC需對(duì)應(yīng)遠(yuǎn)端PE的VC ID。
由于VPLS透?jìng)鞯氖嵌䦟覧thernet報(bào)文,就涉及到VLAN標(biāo)識(shí)處理的問(wèn)題。VPLS可以配合QinQ技術(shù),將用戶(hù)側(cè)發(fā)來(lái)的帶VLAN標(biāo)簽報(bào)文打上外層VLAN標(biāo)簽,以擴(kuò)展VLAN數(shù)量規(guī)模。當(dāng)然現(xiàn)在的交換機(jī)一般都是最大支持4k的VLAN,大部分場(chǎng)景都是夠用的了,還沒(méi)有聽(tīng)說(shuō)誰(shuí)家的數(shù)據(jù)中心VLAN部署超過(guò)4k。但云計(jì)算服務(wù)器節(jié)點(diǎn)數(shù)量規(guī)模成倍增加以后就不好說(shuō)了,留出冗余總是好的。
為了防止廣播風(fēng)暴,VPLS做了水平分割特性,PE設(shè)備從遠(yuǎn)端PE收到的廣播/未知單播報(bào)文只能發(fā)給本地的CE,不能轉(zhuǎn)發(fā)給其他PE。還有其他的分層PE和Hub-Spoke等技術(shù)在數(shù)據(jù)中心多站點(diǎn)互聯(lián)環(huán)境中一時(shí)還應(yīng)用不上。
VPLS技術(shù)已經(jīng)很完善了,喜歡細(xì)節(jié)的同學(xué)可以去查下RFC相關(guān)文檔。這里再說(shuō)下其在數(shù)據(jù)中心多站點(diǎn)互聯(lián)應(yīng)用中的不足之處。數(shù)據(jù)中心要求的是全冗余,無(wú)單點(diǎn)故障點(diǎn)或單點(diǎn)故障鏈路,而VPLS在雙PE冗余方面沒(méi)有專(zhuān)門(mén)的定義,因此造成技術(shù)上的使用不便,一是會(huì)形成如下圖所示的跨站點(diǎn)二層環(huán)路,二是本端CE無(wú)法感知對(duì)端CE-PE間鏈路狀態(tài)情況,故障時(shí)導(dǎo)致流量黑洞問(wèn)題。
解決上述問(wèn)題有以下兩個(gè)思路:
和在其他地方使用時(shí)一樣,浪費(fèi)帶寬與收斂速度慢,另外就是要讓STP跨站點(diǎn)組網(wǎng),會(huì)導(dǎo)致一個(gè)站點(diǎn)出現(xiàn)問(wèn)題,其他站點(diǎn)全部受影響。此方案的好處就是公共標(biāo)準(zhǔn)大家都能做,而且不存在互通問(wèn)題。
其次是使用控制平面多虛一技術(shù),如VSS/IRF和vPC,使多個(gè)物理節(jié)點(diǎn)變?yōu)槲ㄒ坏倪壿嫻?jié)點(diǎn)將整個(gè)拓?fù)溆森h(huán)狀變?yōu)殒湢,以避免環(huán)路。同時(shí)通過(guò)鏈路檢測(cè)監(jiān)控聯(lián)動(dòng)路徑切換動(dòng)作以避免流量黑洞問(wèn)題,如Cisco的EEM。這些小技術(shù)組合起來(lái)可以解決上述問(wèn)題,但缺點(diǎn)是都是私有技術(shù),沒(méi)有統(tǒng)一標(biāo)準(zhǔn),無(wú)法支持不同廠商產(chǎn)品混合組網(wǎng)。
另外可以一提的是Cisco的私有技術(shù)A-VPLS(Advanced VPLS),此技術(shù)配合其VSS,可以將多條VPLS的PW(Pseudo Wire,可理解等同于VC)虛擬化為一條邏輯的Fat PW,達(dá)到多PW路徑負(fù)載分擔(dān)的效果,和鏈路聚合很類(lèi)似。
此技術(shù)由于需要往MPLS報(bào)頭中添加一個(gè)Flow Label的標(biāo)簽字段,用于處理多PW的流量路徑Hash,因此別的廠家設(shè)備肯定無(wú)法識(shí)別,只能在全Cisco設(shè)備環(huán)境下部署。其他廠商也有開(kāi)發(fā)出類(lèi)似的技術(shù),對(duì)多PW進(jìn)行流量負(fù)載分擔(dān),但也都是私有的小特性,無(wú)法互通組網(wǎng)。