二層VPN
| 二層VPN | |
|---|---|
| 中文名 | 二層虛擬專用網絡 |
| 英文名 | Layer 2 VPN (L2VPN) |
| 技術類型 | 網絡通信技術 / 虛擬專用網 |
| 核心功能 | 跨公共網絡透明傳輸二層數據幀 |
| 主要服務類型 | VPWS(點到點)、VPLS(多點到多點) |
| 主要信令協議 | LDP、BGP |
| 標準化機構 | IETF |
| 基礎RFC | RFC 4664(框架)、RFC 4665(需求) |
二層VPN(全稱:Layer 2 Virtual Private Network,縮寫L2VPN)是一種在公共網絡基礎設施上提供數據鏈路層(OSI第二層)虛擬專用連接的網絡技術,其核心特徵是服務提供商網絡對客戶的三層路由信息完全透明,僅負責在客戶站點之間透明傳輸二層數據幀[1][2]。二層VPN最早由IETF於2006年在RFC 4664中正式定義框架,同期發布的RFC 4665規定了服務需求,此後逐步形成了以VPWS(Virtual Private Wire Service)和VPLS(Virtual Private LAN Service)為代表的技術體系[3][4]。二層VPN不參與客戶的路由計算和三層協議處理,客戶可以獨立運行IP、IPX、SNA等任何網絡層協議,服務提供商對客戶網絡的路由結構和IP地址空間完全不可見[2][5]。
定義與基本原理
二層VPN是指在服務提供商骨幹網上向客戶提供的二層VPN服務,VPN業務在網絡的數據鏈路層(OSI第二層)上進行連接和轉發[1][6]。與三層VPN不同,二層VPN對客戶網絡的路由信息完全透明,服務提供商邊緣設備(PE)不參與客戶的路由協議交互,也不維護客戶的路由表,僅根據二層信息(如MAC地址、VC標籤等)進行報文轉發。從客戶視角看,通過二層VPN連接的多個站點就像通過直連的二層鏈路或交換網絡相連,其路由協議和三層架構可以直接跨VPN運行,無需任何修改[2][5]。
二層VPN的基本原理可以概括為「透傳」或「仿真」[1][7]。服務提供商在其骨幹網上為客戶站點之間建立邏輯的二層連接通道。當客戶CE設備發出二層數據幀時,接入的PE設備將其封裝(encapsulation)並通過骨幹網上的偽線(Pseudowire, PW)或隧道傳送到遠端PE,遠端PE解封裝後還原為原始的二層幀再交給目標CE。整個過程中,服務提供商骨幹網扮演了一個「二層交換機」的角色[8][6]。該模型被稱為「邊緣到邊緣」的偽線仿真,最初由IETF PWE3工作組定義,後被L2VPN工作組採納為基本傳輸機制[9][1]。
主要服務類型
IETF L2VPN工作組將二層VPN劃分為多種服務類型,以滿足不同的連接需求[1][9][10]。
虛擬專線服務(VPWS)
虛擬專線服務(Virtual Private Wire Service, VPWS)提供兩個用戶站點之間的**點到點(Point-to-Point)**二層連接,又稱虛擬專線(Virtual Leased Line, VLL)[1][4]。VPWS在服務提供商骨幹網上為兩個CE設備建立一條偽線,使得兩個站點之間在二層上直連,如同一條專線。VPWS支持多種接入鏈路類型,包括Ethernet、VLAN、Frame Relay、ATM、PPP等,是目前部署最廣泛的L2VPN服務之一[9][4]。
VPWS採用對等模型,通常在兩個PE之間通過信令協議(如Targeted LDP)建立PW。PW建立後,PE將來自源CE的AC接口的二層幀封裝並發送到PW上,遠端PE解封裝後恢復原始幀並交給目標CE[4][11]。
虛擬專用局域網服務(VPLS)
虛擬專用局域網服務(Virtual Private LAN Service, VPLS)提供多個用戶站點之間的**多點到多點(Multipoint-to-Multipoint)**二層連接,仿真一個以太網交換局域網的行為[1][12][8]。VPLS使分布在廣域範圍內的多個用戶站點在數據鏈路層上整合為一個邏輯上的局域網,站點之間可以像在同一個二層交換網絡中那樣進行通信,支持廣播、未知單播和組播(BUM)流量的轉發。
VPLS的核心組件是在每台PE上為每個VPLS實例維護一個虛擬交換實例(Virtual Switching Instance, VSI),負責執行以太網橋接功能,包括MAC地址學習、MAC地址表維護、二層轉發決策以及水平分割以避免環路[7][12]。PE之間建立全連接的PW網格,形成仿真局域網。VPLS的信令協議主要有兩種:基於LDP的信令和基於BGP的自動發現與信令,後者提供了更好的擴展性和自動化能力[13][11]。
IP Only L2VPN
IP Only L2VPN是一種針對IP流量優化的二層VPN服務,在VPWS或VPLS的基礎上解封裝二層幀頭,僅透傳IP數據包,以降低協議開銷。它不同於三層VPN,因為PE與CE之間不運行路由協議,CE之間通過仿真二層服務直接連接[9]。
虛擬專用組播服務(VPMS)
虛擬專用組播服務(Virtual Private Multicast Service, VPMS)提供點到多點的二層連接服務,主要用於組播業務的高效傳輸。VPMS利用偽線的點對多點特性,實現組播流量的複製和分發,適用於IPTV、視頻會議等場景[9]。
體系架構
二層VPN的網絡體系架構由以下幾類設備組成[6][2][14]:
- **用戶邊緣設備(CE)**:位於客戶網絡邊緣的設備(路由器、交換機或主機),直接連接至服務提供商的PE設備。CE不參與VPN信令,也不需要支持MPLS等隧道技術,它只發送和接收標準的二層幀,完全不感知VPN的存在[2][6]。
- **服務商邊緣設備(PE)**:服務提供商網絡的邊緣路由器,是L2VPN的核心設備。PE負責與CE對接,維護接入電路(AC),並與遠端PE建立偽線。PE執行二層幀的封裝和解封裝,並根據VC標籤(PW標籤)或MAC地址表進行轉發決策[2]。在VPLS中,PE還需要維護每個VPLS實例的VSI,執行以太網橋接和MAC地址學習[7][6]。
- **服務商核心設備(P)**:服務提供商骨幹網內部的路由器,不直接連接CE。P設備僅根據外層隧道標籤進行MPLS標籤轉發,不感知任何VPN信息,也不維護VSI或PW狀態。P設備的存在使得L2VPN具有良好的擴展性,因為VPN狀態僅限在PE上維護[6]。
- **接入電路(AC)**:連接CE與PE的物理或邏輯鏈路。AC可以是以太網端口、VLAN子接口、PPP鏈路、ATM PVC或幀中繼DLCI等。AC的類型決定了客戶接入L2VPN的鏈路層技術[6]。
- **偽線(PW)**:兩個PE之間建立的虛擬雙向連接,用於承載一個客戶VPN的流量。PW由一對相反方向的單向MPLS VC標籤(即私網標籤)標識。PW本質上是對特定鏈路層服務(如Ethernet、ATM、FR)在分組交換網絡(PSN)上的仿真,其封裝方式由PW類型(PW Type)字段標識[6][1]。一條物理隧道(如MPLS LSP、GRE隧道)上可以承載多條PW,分別屬於不同客戶的L2VPN實例[7]。
- **公網隧道(Tunnel)**:兩個PE之間穿越服務提供商骨幹網的連接通道,用於承載一條或多條PW。隧道可以是MPLS LSP、MPLS TE隧道、GRE隧道等。隧道在骨幹網P設備之間提供基本的連通性,而PW則承載具體的VPN業務[6][7]。
核心組件與工作機制
偽線(Pseudowire, PW)
偽線是L2VPN最基本的數據傳輸單元,是在分組交換網絡上仿真點到點二層鏈路的技術。每條PW由一對單向MPLS VC標籤(私網標籤)構成,在源PE上為入方向的客戶幀封裝內層標籤,由目標PE根據該標籤識別所屬VSI或AC。PW的封裝格式由PW Type確定,PW Type標識了所仿真的鏈路層類型(如Ethernet(0x0005)、Ethernet Tagged Mode(0x0004)、ATM等)。PW的建立由信令協議(如Targeted LDP或BGP)完成,信令消息中攜帶PW ID、PW Type、MTU、標籤等信息[1][4]。
虛擬交換實例(VSI)
VSI是VPLS的核心組件,運行在PE上,為每個VPLS實例維護獨立的以太網橋接功能。VSI維護如下狀態[7]:
- MAC地址表:記錄源MAC地址與出接口(AC或PW)的映射關係。PE通過學習入向幀的源MAC地址來動態建立該表,用於後續二層轉發決策。
- 廣播域:定義哪些AC和PW屬於同一個VPLS實例,廣播、未知單播和組播幀會被複製到同一廣播域的所有其他端口。
- 水平分割規則:從PW上接收的幀不再向其他PW轉發,這是VPLS用於避免環路的關鍵機制。由於PE之間建立了全連接的PW網格,水平分割結合全連接拓撲可以替代生成樹協議(STP)來消除環路[7][12]。
標籤轉發機制
1. **入口PE處理**:PE從AC接口收到客戶CE發來的二層幀,根據AC所屬的VSI或VPN實例確定目標遠端PE和對應的PW。 2. **壓入兩層標籤**:入口PE向原始二層幀壓入兩層MPLS標籤。內層(私網標籤或PW標籤)由信令協議(LDP或BGP)分發,用於標識該幀所屬的PW和VSI;外層(隧道標籤或公網標籤)由骨幹網路由協議(LDP、RSVP-TE或BGP)分發,用於指引數據包穿越骨幹網到達目標PE[7]。 3. **骨幹網轉發**:P路由器僅根據外層標籤進行轉發,不檢查內層標籤的內容。P設備按MPLS標籤交換路徑(LSP)將攜帶兩層標籤的MPLS報文逐跳轉發至目標PE。 4. **出口PE處理**:目標PE接收到報文後彈出外層標籤,根據內層PW標籤確定目標VSI或AC,還原原始二層幀後轉發給目標CE。在VPLS場景中,PE還會在轉發的同時進行MAC地址學習,動態維護MAC地址表[7]。
控制平面信令
L2VPN的控制平面負責PE的自動發現(Auto-discovery)和PW的建立、維護與拆除,主要依賴以下兩種信令協議[1][1]:
- **Targeted LDP(tLDP)**:用於VPWS以及早期VPLS部署中的PW信令。tLDP擴展了LDP協議,引入了PW ID FEC(Forwarding Equivalence Class)和PW Status TLV等新元素,在PE之間協商和交換VC標籤。tLDP要求預先手工配置PE之間的對等關係,適用於站點數量相對固定的場景[11][4]。
- **BGP(MP-BGP)**:用於VPLS的自動發現和信令。BGP方式通過擴展BGP NLRI(Network Layer Reachability Information)來攜帶VPLS成員信息和標籤。BGP提供了更好的可擴展性,支持自動成員發現(無需手工配置PE對等體)和複雜的策略控制,是目前現代網絡(尤其是大型VPLS部署)的首選方案[13][11]。EVPN方案完全基於BGP,已逐步取代傳統VPLS成為新一代多點到點L2VPN的標準[15]。
應用場景
二層VPN因其對客戶路由的透明性和對多種二層協議的支持而被廣泛應用於以下場景[5][14]:
- **數據中心互聯(DCI)**:將分布在不同地理位置的數據中心在二層上連接起來,使各數據中心之間的服務器和虛擬機可以像在同一個廣播域內那樣通信,支持虛擬機在線遷移(vMotion)等跨數據中心功能。L2VPN在此場景下可以透明地擴展VLAN,保持二層連通性[5]。
- **企業VLAN擴展**:將企業總部和分支機構之間的VLAN在廣域網上進行擴展,實現跨地域的端到端二層連接。這對於需要共享廣播域的應用(如某些遺留系統、集群軟件)尤為適用。
- **傳統系統互聯**:連接採用非IP協議(如SNA、IPX、DECnet)的傳統系統。由於L2VPN不依賴於三層路由,可以直接透傳這些協議的數據幀,保持與遺留設備的兼容性[2]。
- **運營商以太網服務**:服務提供商以L2VPN為基礎向企業客戶提供以太網專線(E-Line,基於VPWS)和以太網局域網(E-LAN,基於VPLS)等城域以太網服務,符合MEF(Metro Ethernet Forum)定義的服務模型[12][8]。
- **多租戶數據中心**:雲服務提供商利用L2VPN在同一物理網絡基礎設施上為不同租戶提供隔離的二層網絡,每個租戶獨立運行自己的路由和IP地址空間,租戶之間相互不可見[5]。
- **5G承載網與移動回傳**:在5G網絡中,L2VPN常用於N2/N3/N4接口的傳輸隔離和FlexE切片,利用VPWS或VPLS承載CU分離場景下的F1接口和Xn接口流量,實現低時延和高可靠傳輸。
與三層VPN的比較
二層VPN與三層VPN是MPLS VPN技術的兩大分支,二者在多個關鍵維度上存在本質區別[5][2][4]。
- **客戶路由可見性**:L2VPN對客戶路由完全不可見,客戶保留路由控制權,可以自由使用任何IP地址空間和路由協議;L3VPN要求PE學習客戶路由(通過靜態路由、OSPF、BGP等),客戶地址空間不能與服務提供商或其它客戶重疊(需通過RD解決)[2][5]。
- **協議支持**:L2VPN支持任何網絡層協議(IP、IPX、SNA等),以及非IP的遺留協議;L3VPN主要支持IP協議[2]。
- **PE負載**:L2VPN的PE不維護客戶路由,僅負責二層轉發,負載相對較輕;L3VPN的PE需要為每個VPN維護VRF路由表,當VPN數量較多或路由條目密集時對PE的控制平面和內存要求較高[2][5]。
- **廣播/組播**:L2VPN在VPLS模式下原生支持廣播和組播,可以透傳二層廣播域;L3VPN僅支持IP組播,不處理二層廣播[2]。
- **靈活性**:L2VPN對客戶提供的連接更為透明,客戶可以獨立設計和運營其上層的三層網絡;L3VPN的服務提供商承擔了更多路由功能,客戶的網絡設計受限於服務提供商的路由策略[5]。
選擇L2VPN還是L3VPN通常取決於具體需求。如果客戶希望保留完全的路由控制權、需要透傳非IP協議或需要擴展VLAN,L2VPN是更合適的選擇;如果客戶希望將路由管理交給服務提供商、降低自身運維複雜度,或需要在大規模分支網絡中實現可擴展的IP互聯,L3VPN通常更優。在實踐中,許多大型企業採用混合部署策略:分支機構之間使用L3VPN進行IP路由互聯,數據中心之間使用L2VPN進行二層VLAN擴展[5]。
演進與技術趨勢
EVPN(Ethernet VPN)
以太網VPN(Ethernet VPN, EVPN)是L2VPN領域最重要的演進方向之一。EVPN是一種基於BGP控制平面的下一代多點到點L2VPN解決方案,採用MP-BGP來分發MAC地址可達性信息和以太網段信息,替代傳統VPLS中依賴數據平面學習MAC的方式。RFC 7432(BGP MPLS-Based Ethernet VPN)定義了EVPN的核心機制[15][16]。
EVPN的關鍵特性包括:
- **BGP控制平面MAC學習**:PE之間通過BGP路由通告MAC地址,實現快速收斂,避免了傳統VPLS數據平面MAC洪泛帶來的收斂慢和廣播風暴風險。
- **多歸屬(Multi-homing)**:支持一個CE同時連接多個PE(All-Active或Single-Active模式),提供高可靠性和負載分擔能力。
- **靈活的封裝**:可承載於MPLS或VXLAN等隧道之上,成為數據中心網絡Overlay方案的基礎[15]。
- **集成控制**:EVPN能夠同時分發MAC地址和IP路由信息,為後續的L2/L3統一控制平面奠定基礎。
PBB-EVPN
PBB-EVPN(Provider Backbone Bridging Ethernet VPN)是在EVPN基礎上融合IEEE 802.1ah PBB(MAC-in-MAC封裝)技術的一種解決方案,定義於RFC 7623。它將客戶MAC地址隱藏在骨幹MAC地址之後,大幅減少了PE控制平面維護的MAC地址表條目數量。PBB-EVPN在運營商骨幹網絡中提供了更高的可擴展性和更快的收斂性能[16][17]。
L2VPN over SRv6
隨着SRv6(Segment Routing over IPv6)技術的成熟,L2VPN也開始向SRv6承載演進。L2VPN over SRv6採用IPv6擴展頭(如SRH)和特定的封裝格式(如Ethernet over IPv6封裝)實現二層業務在SRv6網絡上的透傳,簡化了控制平面並提升了與IPv6網絡的兼容性。
與SDN/NFV的融合
在SDN/NFV環境下,L2VPN的控制平面可以與SDN控制器集成,通過南向接口(如OpenFlow、NETCONF)實現L2VPN的自動化部署和策略編排,提高了網絡運維效率。同時,vPE(虛擬PE)等NFV技術的引入,使得L2VPN功能可以部署在通用服務器上,實現了靈活的業務編排和資源彈性伸縮。
優點與局限性
二層VPN的主要優點包括對客戶網絡的完全透明,客戶可以自由使用任何網絡層協議和IP地址空間,在VPLS模式下原生支持廣播、未知單播和組播流量。相比三層VPN,L2VPN的PE不維護客戶路由,減輕了服務提供商邊緣設備的控制平面負擔,使服務提供商能夠支持更多的VPN和接入更多的用戶[2]。L2VPN尤其適合數據中心互聯、VLAN擴展、傳統系統互聯等需要二層連通性的場景。同時,客戶保留完全的路由控制權,網絡設計不受服務提供商策略的限制[5]。
其局限性主要體現在以下幾個方面。首先,VPLS採用全連接PW拓撲,當網絡站點數量較多時,每個PE需要與其他所有PE建立PW,導致信令開銷較大,擴展性受限。其次,L2VPN(特別是VPLS)對廣播、未知單播和組播流量進行全網複製和泛洪,可能造成骨幹網帶寬的浪費和廣播風暴的風險。再者,L2VPN的環路避免依賴全連接拓撲和水平分割機制,缺乏生成樹協議那種動態的拓撲計算能力。此外,由於PE不參與三層路由,L2VPN無法直接提供基於IP的服務質量(QoS)策略或流量工程,需要依賴底層隧道的QoS能力。最後,L2VPN對服務提供商的運維能力有一定要求,需要專業人員熟悉PW信令和MAC地址管理,這在故障排查時可能增加定位難度。
參考文獻
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 RFC 4664: Framework for Layer 2 Virtual Private Networks (L2VPNs)
- ↑ 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 2.14 MPLS L2VPN簡介
- ↑ RFC 4665: Service Requirements for Layer 2 Provider-Provisioned Virtual Private Networks
- ↑ 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 L2VPN技術詳解1:VPWS在MPLS網絡中的實現與應用
- ↑ 5.00 5.01 5.02 5.03 5.04 5.05 5.06 5.07 5.08 5.09 5.10 引用錯誤:無效的
<ref>標籤,未定義名稱為:12的參考文獻內容文字。 - ↑ 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 引用錯誤:無效的
<ref>標籤,未定義名稱為:16的參考文獻內容文字。 - ↑ 7.00 7.01 7.02 7.03 7.04 7.05 7.06 7.07 7.08 7.09 引用錯誤:無效的
<ref>標籤,未定義名稱為:13的參考文獻內容文字。 - ↑ 8.0 8.1 8.2 引用錯誤:無效的
<ref>標籤,未定義名稱為:15的參考文獻內容文字。 - ↑ 9.0 9.1 9.2 9.3 9.4 引用錯誤:無效的
<ref>標籤,未定義名稱為:10的參考文獻內容文字。 - ↑ 引用錯誤:無效的
<ref>標籤,未定義名稱為:7的參考文獻內容文字。 - ↑ 11.0 11.1 11.2 11.3 引用錯誤:無效的
<ref>標籤,未定義名稱為:4的參考文獻內容文字。 - ↑ 12.0 12.1 12.2 12.3 引用錯誤:無效的
<ref>標籤,未定義名稱為:14的參考文獻內容文字。 - ↑ 13.0 13.1 引用錯誤:無效的
<ref>標籤,未定義名稱為:9的參考文獻內容文字。 - ↑ 14.0 14.1 引用錯誤:無效的
<ref>標籤,未定義名稱為:5的參考文獻內容文字。 - ↑ 15.0 15.1 15.2 引用錯誤:無效的
<ref>標籤,未定義名稱為:11的參考文獻內容文字。 - ↑ 16.0 16.1 引用錯誤:無效的
<ref>標籤,未定義名稱為:17的參考文獻內容文字。 - ↑ 引用錯誤:無效的
<ref>標籤,未定義名稱為:18的參考文獻內容文字。