目 錄
傳統的基於ATM或Frame Relay(幀中繼,以下簡稱FR)的VPN(Virtual Private Network,虛擬專用網)應用非常廣泛,它們能在不同VPN間共享運營商的網絡結構。這種VPN的不足在於:
l 依賴於專用的介質(如ATM或FR):為提供基於ATM的VPN服務,運營商必須建立覆蓋全部服務範圍的ATM網絡;為提供基於FR的VPN服務,又需要建立覆蓋全部服務範圍的FR網絡,在網絡建設上造成浪費。
l 部署複雜:尤其是向已有的VPN加入新的Site(站點)時,需要同時修改所有接入此VPN站點的邊緣節點的配置。
由於以上缺點,新的VPN替代方案應運而生,MPLS L2VPN就是其中的一種。
MPLS L2VPN提供基於MPLS(Multiprotocol Label Switching,多協議標簽交換)網絡的二層VPN服務,使運營商可以在統一的MPLS網絡上提供基於不同數據鏈路層的二層VPN,包括ATM、FR、VLAN、Ethernet、PPP等。
簡單來說,MPLS L2VPN就是在MPLS網絡上透明傳輸用戶二層數據。從用戶的角度來看,MPLS網絡是一個二層交換網絡,可以在不同節點間建立二層連接。
以ATM為例,每個用戶邊緣設備(Customer Edge,CE)配置一條ATM虛電路(Virtual Circuit,VC),通過MPLS網絡與遠端CE相連,這與通過ATM網絡實現互聯類似。
圖 1 MPLS L2VPN組網示意圖
相對於MPLS L3VPN,MPLS L2VPN具有以下優點:
l 可擴展性強:MPLS L2VPN隻建立二層連接關係,不引入和管理用戶的路由信息。這大大減輕了PE(Provider Edge,服務提供商邊緣設備)甚至整個SP(Service Provider,服務提供商)網絡的負擔,使服務提供商能支持更多的VPN和接入更多的用戶。
l 可靠性和私網路由的安全性得到保證:由於不引入用戶的路由信息,MPLS L2VPN不能獲得和處理用戶路由,保證了用戶VPN路由的安全。
l 支持多種網絡層協議:包括IP、IPX、SNA等。
在MPLS L2VPN中,CE、PE、P的概念與MPLS L3VPN一樣,原理也相似。
l CE(Customer Edge)設備:用戶網絡邊緣設備,有接口直接與SP相連。CE可以是路由器或交換機,也可以是一台主機。CE“感知”不到VPN的存在,也不需要必須支持MPLS。
l PE(Provider Edge)路由器:服務提供商邊緣路由器,是服務提供商網絡的邊緣設備,與用戶的CE直接相連。在MPLS網絡中,對VPN的所有處理都發生在PE上。
l P(Provider)路由器:服務提供商網絡中的骨幹路由器,不與CE直接相連。P設備隻需要具備基本MPLS轉發能力。
MPLS L2VPN通過標簽棧實現用戶報文在MPLS網絡中的透明傳送:
l 外層標簽(稱為Tunnel標簽)用於將報文從一個PE傳遞到另一個PE;
l 內層標簽(稱為VC標簽)用於區分不同VPN中的不同連接;
l 接收方PE根據VC標簽決定將報文轉發給哪個CE。
圖 2 是MPLS L2VPN轉發過程中報文標簽棧變化的示意圖。
圖 2 MPLS L2VPN標簽棧處理
(1)L2PDU是鏈路層報文,PDU即Protocol Data Unit,協議數據單元 |
(2)T是Tunnel標簽;V是VC標簽;T’表示轉發過程中外層標簽被替換 |
當前MPLS L2VPN還沒有形成正式的標準。IETF的PPVPN(Provider-provisioned Virtual Private Network)工作組製訂了多個框架草案,其中最主要的兩種稱為Martini草案和Kompella草案:
l draft-martini-l2circuit-trans-mpls
l draft-kompella-ppvpn-l2vpn
Martini草案定義了通過建立點到點的鏈路來實現MPLS L2VPN的方法。它以LDP(Label Distribution Protocol,標記分發協議)為信令協議來傳遞雙方的VC標簽,稱為Martini方式MPLS L2VPN。
Kompella草案則定義了在MPLS網絡上以端到端(CE到CE)的方式建立MPLS L2VPN。目前它采用擴展了的BGP(Border Gateway Protocol,邊界網關協議)為信令協議來發布二層可達信息和VC標簽,稱為Kompella方式MPLS L2VPN。
另外,可以采用靜態配置VC標簽的方式來實現MPLS L2VPN服務。CCC(Circuit Cross Connect,電路交叉連接)和SVC(Static Virtual Circuit,靜態虛擬電路)就是兩種靜態配置MPLS L2VPN的實現方式。
下麵分別介紹這幾種MPLS L2VPN的特點和實現方式。
與普通MPLS L2VPN不同,CCC采用一層標簽傳送用戶數據,因此,CCC對LSP(Label Switched Path,標簽交換路徑)的使用是獨占性的。CCC的LSP隻用於傳遞這個CCC連接的數據,不能用於其他MPLS L2VPN連接,也不能用於MPLS L3VPN或承載普通的IP報文。
這種方式的最大優點是:不需要任何標簽信令傳遞二層VPN信息,隻要能支持MPLS轉發即可,保證在任何情況下,運營商之間可以進行互連。此外,由於LSP是專用的,可以提供QoS保證。
CCC連接有兩種:本地連接和遠程連接。
l 本地連接:在兩個本地CE之間建立的連接,即兩個CE連在同一個PE上。PE的作用類似二層交換機,可以直接完成交換,不需要配置靜態LSP。
l 遠程連接:在本地CE和遠程CE之間建立的連接,即兩個CE連在不同的PE上,需要配置靜態LSP來把報文從一個PE傳遞到另一個PE。
SVC(Static Virtual Circuit,靜態虛擬電路)也是一種靜態的MPLS L2VPN,在L2VPN信息傳遞中不使用信令協議。
SVC方式與Martini方式的MPLS L2PVN非常類似,但它不使用LDP傳遞二層VC和鏈路信息,手工配置VC標簽信息即可,其實是Martini方式的一種靜態實現。
Martini方式MPLS L2VPN著重於在兩個CE之間建立VC(Virtual Circuit,虛電路)。
Martini方式采用VC-TYPE加上VC ID來標識一個VC。VC-TYPE表明VC的封裝類型:ATM、VLAN或PPP;VC ID則用於唯一標識一個VC。同一個VC-TYPE的所有VC中,其VC ID必須在整個PE中唯一。
連接兩個CE的PE通過LDP交換VC標簽,並通過VC ID綁定對應的CE。當連接兩個PE的LSP建立成功,雙方的標簽交換和綁定完成後,一個VC就建立起來了,CE之間可以通過此VC傳遞二層數據。
為了在PE之間交換VC標簽,Martini草案對LDP進行了擴展,增加了VC FEC(Forwarding Equivalence Class,轉發等價類)的FEC類型。此外,由於交換VC標簽的兩個PE可能不是直接相連的,所以LDP必須使用remote peer來建立會話(Session),並在這個會話上傳遞VC FEC和VC標簽。
在Martini方式中,由於在運營商網絡中,隻有PE設備需要保存少量的VC label與LSP的映射等信息,P設備不包含任何二層VPN信息,所以擴展性很好。此外,當需要新增加一條VC時,隻在相關的兩端PE設備上各配置一個單方向VC連接即可,不影響網絡的運行。
Martini方式適合稀疏的二層連接,例如星型連接。
與Martini方式不同,Kompella方式的MPLS L2VPN不直接對CE與CE之間的連接進行操作,而是在整個運營商網絡中劃分不同的VPN,在VPN內部對CE進行編號。要建立兩個CE之間的連接,隻需在PE上設置本地CE和遠程CE的CE ID,並指定本地CE為這個連接分配的Circuit ID(例如ATM的VPI/VCI)。
Kompella方式MPLS L2VPN以BGP擴展為信令協議來分發VC標簽。在分配標簽時,Kompella方式采用標簽塊(Label block)的方式,一次為多個連接分配標簽。
用戶可以指定一個VPN的CE的範圍(CE range),表明當前VPN上最多可連接的CE數。係統一次為這個CE分配一個標簽塊,標簽塊的大小等於CE range。這種方式允許用戶為VPN分配一些額外的標簽,留待以後使用。這樣短期來看會造成標簽資源的浪費,但是卻帶來一個很大的好處,即可以減少VPN部署和擴容時的配置工作量。
假設一個企業的VPN包括10個CE,但是考慮到企業會擴展業務,將來可能會有20個CE。這樣可以把每個CE的CE range設置為20,係統會預先為未來的10個CE分配標簽。以後VPN添加CE節點時,配置的修改僅限於與新CE直接相連的PE,其他PE不需要作任何修改。這使得VPN的擴容變得非常簡單。
類似於MPLS L3VPN,Kompella方式MPLS L2VPN也使用VPN Target來區分不同的VPN,這使得VPN組網具有極大的靈活性。