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