廣域網(wǎng)絡(luò)數(shù)據(jù)通信技術(shù)發(fā)展歷程
自 1978 年溫頓·瑟夫、鮑伯·卡恩、丹尼·科恩(Danny Cohen)和約翰·普斯特爾(Jon Postel)合力將 TCP 協(xié)議從分層思想的角度劃分為 IP 和 TCP 這 2 個協(xié)議并建立了著名的沙漏模型以來。
IP 路由轉(zhuǎn)發(fā)技術(shù)就被廣泛地應(yīng)用到了廣域網(wǎng)絡(luò)數(shù)據(jù)傳輸場景中。IP 技術(shù)是一種無連接的、盡力而為的通信方式,采用了 “最長匹配優(yōu)先” 算法進(jìn)行路由轉(zhuǎn)發(fā),每個 Router 都需要先解析出 IP Packet 的 dstIP 地址,并根據(jù)此信息獨(dú)立對 Packet 進(jìn)行路由決策。
上世紀(jì) 90 年代中期,IP 技術(shù)憑借實(shí)現(xiàn)簡單和成本低廉的優(yōu)勢快速發(fā)展,但由于硬件轉(zhuǎn)發(fā)芯片技術(shù)存在限制,Router 必須要提供軟件實(shí)現(xiàn)的最長匹配優(yōu)先算法,難免轉(zhuǎn)發(fā)性能低下。因此 IP 技術(shù)的轉(zhuǎn)發(fā)性能成為當(dāng)時限制網(wǎng)絡(luò)發(fā)展的瓶頸。高性能的快速路由器技術(shù)成為當(dāng)時研究的熱點(diǎn)之一。
ATM(Asynchronous Transfer Mode)技術(shù)就是在這樣的時代背景下誕生的。ATM 源于 1983 年美國貝爾研究所提出的快速分組交換以及 1984 年法國電信 CENT 提出的異步時分交換思想,它采用了固定長度為 188Bytes 的長標(biāo)簽(信元)轉(zhuǎn)發(fā)方式,并且只需要維護(hù)比路由表規(guī)模小得多的標(biāo)簽表,因此能夠提供比 IP 路由方式高得多的轉(zhuǎn)發(fā)性能。同時,ATM 還采用了面向連接和服務(wù)質(zhì)量保障的方式進(jìn)行通信。
由于 ATM 技術(shù)能夠滿足 ISP 對廣域網(wǎng)絡(luò)的可靠性和可管理性要求,因而在 ATM 技術(shù)興起的早期就被廣泛應(yīng)用。然而,由于 ATM 協(xié)議相對復(fù)雜且部署成本非常高,這也使 ATM 技術(shù)很難普及。
隨著 Internet 的爆炸式增長,經(jīng)濟(jì)性和效率性的邊界效益隨著網(wǎng)絡(luò)的規(guī)模進(jìn)一步增大而降低。如何更有效地建設(shè)更大規(guī)模的廣域網(wǎng)絡(luò)成為擺在面前的現(xiàn)實(shí)問題。此外,隨著計(jì)算機(jī)網(wǎng)絡(luò)向?qū)拵Щ?a href="http://www.asorrir.com/v/" target="_blank">智能化方向發(fā)展,網(wǎng)絡(luò)業(yè)務(wù)也呈現(xiàn)出突發(fā)特性。網(wǎng)絡(luò)通信更加強(qiáng)調(diào)效率和通用性。
ATM 以交換機(jī)為核心,通過信令技術(shù)建立長標(biāo)簽轉(zhuǎn)發(fā)路徑,強(qiáng)調(diào)網(wǎng)絡(luò)智能。而 IP 以路由器為核心,通過路由技術(shù)支持逐跳轉(zhuǎn)發(fā),強(qiáng)調(diào)終端智能。ATM 與 IP 有著各自的特色,也都有著適合自己的應(yīng)用場景。
IP 技術(shù)簡單,但性能受到限制;
ATM 技術(shù)性能高,但協(xié)議相對復(fù)雜,且 ATM 網(wǎng)絡(luò)部署成本高昂。
很自然的,在當(dāng)時的背景下,如何將 IP 和 ATM 各自的優(yōu)勢結(jié)合起來是一個熱門的研究主題,即:在保持 IP 技術(shù)簡潔性的前提下,提供 ATM 技術(shù)的高性能。
直到,在 1996 年 MPLS(Multi-Protocol Label Switching,多協(xié)議標(biāo)簽交換技術(shù))在這種背景下誕生。至此,傳統(tǒng)網(wǎng)絡(luò)中就擁有了 3 種經(jīng)典轉(zhuǎn)發(fā)實(shí)現(xiàn),它們分別是:
L2 交換轉(zhuǎn)發(fā)
L2.5 標(biāo)簽轉(zhuǎn)發(fā)
L3 路由轉(zhuǎn)發(fā)
MPLS 協(xié)議則作用于 L2.5 層,其將 L3 路由技術(shù)和 L2 交換技術(shù)相結(jié)合,充分發(fā)揮了 IP 路由的靈活性和 MAC 交換的高效性能。
MPLS 協(xié)議格式
MPLS Label Stack
MPLS Label Stack 是 MPLS 協(xié)議格式的核心,又稱之為 MPLS Header,其位于 L2 Header 和 L3 Header 之間,使得 MPLS 能夠適用于 “Multi-Protocol(多種上層 Internet 協(xié)議類型)",包括:IPv6、IPX(Internet Packet Exchange)和 CLNP(Connectionless Network Protocol)等等。
如上圖所示,MPLS Label Stack 由若干個 MPLS Label Entries 組成。這些 MPLS Label Entries 從位置上還可以分為:
Outer MPLS Label(棧頂標(biāo)簽):靠近 L2 Frame Header 的 Label Entry。
Inner MPLS Label(棧底標(biāo)簽):靠近 L3 Packet Header 的 Label Entry。
多條 Label Entries 遵循著 FIFO(先進(jìn)先出)的 Stack 特性,也就說 MPLS 設(shè)備會從 Outer Label 開始進(jìn)行處理,此時的 Stack Index 為 0。直到 Stack Index 為 1 時,指向了 Inner Label,此時 MPLS 設(shè)備再執(zhí)行一次 POP 操作,就完全剝除 MPLS Label Stack,還原了一個標(biāo)準(zhǔn)的 IP Packet。
如下面的 2 個例子,它們分別包含了 2 條和 3 條 Entries。
2 Label Entries
3 Label Entries
MPLS Label Stack 是實(shí)現(xiàn) MPLS-TE FRR(Traffic Engineering Fast ReRoute)或 SR-MPLS 的關(guān)鍵,它們可以被 SDN Controller 統(tǒng)一控制標(biāo)簽轉(zhuǎn)發(fā)的路徑。
MPLS Label Entries
上圖是一條 MPLS Label Entry 的報(bào)文各式,包括了:
0-15:特殊標(biāo)簽值。
16-1023:靜態(tài)信令協(xié)議的標(biāo)簽空間,例如:靜態(tài) LSP、靜態(tài) CR-LSP 等。
1024-1048575:動態(tài)信令協(xié)議的標(biāo)簽空間,例如:LDP、RSVP-TE、MP-BGP 等。動態(tài)信令協(xié)議的標(biāo)簽空間不是共享的,而是獨(dú)立且連續(xù)的,互不影響。
Label(20bits):用于標(biāo)識一個 FEC 或作為僅在設(shè)備本地有特殊意義的標(biāo)識,支持百萬級別的容量。Label Space 的標(biāo)準(zhǔn)定義如下:
EXP(3bits):擴(kuò)展字段,現(xiàn)常被用于 CoS(Class of Service)特性。
S(Bottom of Stack,1bit):在 MPLS Label Stack 場景中表示該 Entry 的位置。
TTL(生存時間,8bits):當(dāng) IP Packet 被封裝到 MPLS Header 之后,IP Header TTL 會被 Copy 到 MPLS Header TTL。然后,每一次執(zhí)行 MPLS LSH,MPLS Header TTL - 1。當(dāng)解封裝 IP Packet 時,再將 MPLS Header TTL Copy 到 IP Header TTL。
針對將 EXP 字段應(yīng)用于 MPLS TC(Traffic Control, 流量控制)場景,在 RFC 5462 中,將 EXP 字段被定義為了 TC 字段,用于支持 QoS and ECN 的功能。如下圖所示。
MPLS 廣域網(wǎng)絡(luò)轉(zhuǎn)發(fā)原理
MPLS 的基本組網(wǎng)元素
LSR(Label Switching Router,標(biāo)簽交換路由器):MPLS 網(wǎng)絡(luò)的 Core 設(shè)備。
LER(Label Edge Router,標(biāo)簽邊緣路由器):MPLS 網(wǎng)絡(luò)的 Network Edge 設(shè)備。可再細(xì)分為 2 類:
MPLS Ingress Node:進(jìn)入 MPLS 網(wǎng)絡(luò)的 LER,Ingress Node 會計(jì)算出 IP Packets 歸屬的 FEC,并把 FEC 對應(yīng)的 Label 封裝到 IP Packet。
MPLS Egress Node:出 MPLS 網(wǎng)絡(luò)的 LER,將 MPLS Label 剝離,還原為標(biāo)準(zhǔn)的 IP Packet 再重新回到 IP Routing 網(wǎng)絡(luò)中。
MPLS Router 的基本組成部分
MPLS Control Plane 負(fù)責(zé)管理 Routes 和 Labels 信息等。
IRP(IP Routing Protocol,IP 路由協(xié)議):生成 Routes。
RIB(Routing Information Base,路由信息表):存放 Routes。
LDP(Label Distribution Protocol,標(biāo)簽分發(fā)協(xié)議):生成 Labels。
LIB(Label Information Base,標(biāo)簽信息表):存放 Labels。
MPLS Data Plane 負(fù)責(zé) IP Packets 的 Label 封裝、Label 解封裝、Label 轉(zhuǎn)發(fā)、Routing 轉(zhuǎn)發(fā)等。
FIB(Forwarding Information Base,轉(zhuǎn)發(fā)信息表):從 RIB 獲取 Routes 來完成 IP Packet 轉(zhuǎn)發(fā)。
LFIB(Label Forwarding Information Base,標(biāo)簽轉(zhuǎn)發(fā)信息表):從 LIB 獲取 Labels 來完成 MPLS Packet 轉(zhuǎn)發(fā)。
MPLS 的基本轉(zhuǎn)發(fā)原理
傳統(tǒng)的 IP Packets 路由決策,Router 首先需要識別 IP Header,再根據(jù) dstIP 計(jì)算出歸屬的 FEC(Forwarding Equivalence Class,轉(zhuǎn)發(fā)等價(jià)類)。在傳統(tǒng)的采用最長匹配算法的 IP Routing 中,匹配到同一條 Route 的所有 IP Packets 就是一個 FEC,Router 在確定了 FEC 后即可完成最終的路由轉(zhuǎn)發(fā)。
相對于 FEC,MPLS 提出了稱為 LSH(Label Switching Hop,基于 Label 的轉(zhuǎn)發(fā))的新方法:
當(dāng) IP Packets 首次進(jìn)入 MPLS 網(wǎng)絡(luò)時,首先還是會對 Packet 進(jìn)行解包、分類、查找。然后,根據(jù) MPLS 網(wǎng)絡(luò)配置為不同的 IP Packets 分配對應(yīng)的 Label。
當(dāng) MPLS Packets 在 MPLS 網(wǎng)絡(luò)中進(jìn)行傳輸時,后面的所有路由決策都是基于 Label 和 NHLFE(Next Hop Label Forwarding Entry)來完成的。NHLFE 包含了 Label 和 Next Hop 的映射關(guān)系,以及需要對 Label 執(zhí)行的操作,包括:替換(SWAP)、刪除(POP)、添加(PUSH)。直到 IP Packets 流出 MPLS 網(wǎng)絡(luò)為止。
這樣帶來了兩個直觀的好處:
Router 不需要解析 IP Header 了,MPLS Label 的解析由硬件芯片來完成。
因?yàn)?MPLS Label 被設(shè)計(jì)為了 Integer 類型,可以達(dá)到 O(1) 的查找時間。
因此,MPLS 的 LSH 可以大大地減少路由決策的時間。
標(biāo)簽轉(zhuǎn)發(fā)表的生成流程如下圖所示:
IP 路由協(xié)議建立鄰居,交互路由信息,生成 IP 路由表。
標(biāo)簽交換協(xié)議從 IP 路由表中獲取路由信息。IP 路由表中的路由前綴匹配了 FEC。
IP 路由表中激活的最優(yōu)路由生成 IP 轉(zhuǎn)發(fā)表。
標(biāo)簽轉(zhuǎn)換協(xié)議建立鄰居,為 FEC 分配標(biāo)簽并發(fā)布給鄰居,同時獲取鄰居發(fā)布的標(biāo)簽,生成標(biāo)簽轉(zhuǎn)發(fā)表。
MPLS VPN 廣域網(wǎng)專線
上文介紹了 MPLS 協(xié)議最初的目的是為了提高 L3 Router 的轉(zhuǎn)發(fā)速度而設(shè)計(jì)的。與傳統(tǒng) IP 路由方式相比,MPLS 在數(shù)據(jù)轉(zhuǎn)發(fā)時,只需要在 Network Edge Gateway 分析 IP Header,而不用在每一跳的 L3 Router 上都分析,因此節(jié)約了大量的計(jì)算時間。
然后在現(xiàn)代網(wǎng)絡(luò)中,隨著 ASIC 和 NP 等數(shù)通芯片技術(shù)的發(fā)展,路由查找速度已經(jīng)不再是阻礙網(wǎng)絡(luò)發(fā)展的瓶頸了,這使得 MPLS 在提高轉(zhuǎn)發(fā)速度方面不再具備明顯的優(yōu)勢。不過,MPLS 憑借其支持多層標(biāo)簽、轉(zhuǎn)發(fā)平面面向連接等特性,使其在 VPN、TE(Traffic Engineering,流量工程)、QoS 等廣域網(wǎng)專線的場景中仍然得到了廣泛的應(yīng)用。
MPLS VPN,即:基于 ISP 電信運(yùn)營商 MPLS 廣域網(wǎng)絡(luò)之上構(gòu)建的 VPN,也被稱之為 MPLS 專線服務(wù),本質(zhì)是一種廣域網(wǎng) Underlay 專用線路租賃服務(wù)。運(yùn)營商把專線租給用戶,并承諾這條線路的 SLA(Service Level Agreement,服務(wù)等級協(xié)議,包括帶寬、時延、抖動、丟包率等)。常用于企業(yè)多分支和 DCI(數(shù)據(jù)中心連接)場景。通過這條 MPLS 專線,跨域廣域網(wǎng)的多個 Sites(站點(diǎn))之間,邏輯上構(gòu)建了一個企業(yè)內(nèi)網(wǎng)。
根據(jù)具體應(yīng)用場景的不同,MPLS VPN 還可以細(xì)分為 L2VPN 和 L3VPN 這兩大類型。
MPLS L2VPN
MPLS L2VPN 是一個 L2 over MPLS 網(wǎng)絡(luò),用于在多個 Sites 之間建立 L2 交換網(wǎng)絡(luò),支持實(shí)現(xiàn)多種不同的數(shù)據(jù)鏈路層,包括:ATM、FR、VLAN、Ethernet、PPP 等等。
另外,MPLS L2VPN 的技術(shù)實(shí)現(xiàn)種類有很多,例如:VLL、PWE3 和 VPLS 等。由于 MPLS L2VPN 中 PE 不參與用戶流量的 L3 路由處理,因此 PE 的橫向擴(kuò)展性要比 L3VPN 要好得多,只與 PE 能連接的 VPN 用戶數(shù)目相關(guān)。但是作為代價(jià),L2VPN 的靈活性要差一些。
值得注意的是,隨著 EVPN Control Plane 的興起和發(fā)展,基于 VPLS Control Plane 的 MPLS L2VPN 已經(jīng)逐漸被替代,所以這里只做簡單的介紹。
MPLS L3VPN
MPLS L3VPN 是本文介紹的重點(diǎn),也是更加被廣泛應(yīng)用的類型。之所以稱之為 L3VPN 是因?yàn)槠?Control Plane 基于 MP-BGP 動態(tài)路由協(xié)議來實(shí)現(xiàn),而 Data Plane 仍然是 MPLS。
MPLS L3VPN 工作原理
基本組網(wǎng)元素
在 MPLS L3VPN 的模型中,網(wǎng)絡(luò)由 ISP 的骨干網(wǎng)與用戶的各個 Sites 組成,組網(wǎng)方式靈活、可擴(kuò)展性好,并能夠方便地支持 MPLS QoS 和 MPLS TE,因此至今是一種主流方案。
經(jīng)典的 MPLS L3VPN 網(wǎng)絡(luò)架構(gòu)主要由若干個 Sites 和 3 類網(wǎng)元組成:
Site(用戶站點(diǎn)):表示一個本地的用戶網(wǎng)絡(luò)(例如:公司總部、分支機(jī)構(gòu)),一個用戶站點(diǎn)可以通過一條或多條鏈路連接到 ISP 的骨干網(wǎng)絡(luò)。
CE(Customer Edge,用戶邊緣路由器):用戶側(cè)設(shè)備,是接入 ISP 的 DC-GW(IP 路由器,或是一臺主機(jī)),與連接的一個或多個 PE 建立鄰接關(guān)系。CE 不需要必須支持 MPLS 協(xié)議棧。
PE(Provider Edge,骨干網(wǎng)邊緣路由器):接入層設(shè)備,ISP 的路由器,連接 P 和 CE,相當(dāng)于 LER(標(biāo)簽邊緣路由器)。在 MPLS 網(wǎng)絡(luò)中,對 VPN 的所有處理都發(fā)生在 PE 上。
P(Provider,骨干網(wǎng)路由器):核心層設(shè)備,ISP 的路由器,連接 PE,不連接 CE,相當(dāng)于 LSR(標(biāo)簽交換路由器)。只需要具備基本的數(shù)據(jù)面轉(zhuǎn)發(fā)能力。
MP-BGP VPN-IPV4 Routes 類型
VPN-IPV4 Routes 是一種 BGP MP 擴(kuò)展,通過擴(kuò)展了 BGP NLRI(Network Layer Reachability Information,網(wǎng)絡(luò)層可達(dá)信息)中的 VPNv4 地址族,用于支撐 MPLS L3VPN 的應(yīng)用場景,具體而言,它具有下述的 3 個核心字段。
VPN-IPv4 字段
傳統(tǒng)的 BGP-4 協(xié)議無法正確處理地址空間重疊的 VPN Routes,例如:VPN1 和 VPN2 都使用了 10.110.10.0/24 網(wǎng)段,并且各自都發(fā)布了一條 NextHop Local Routes,而 BGP-4 只能選擇保留其中一條 Route,從而丟失了去往另一個 VPN 的路由。
為了解決地址空間重疊的問題,MPLS L3VPN 實(shí)現(xiàn)了互相隔離的 VPN Instances。每個 VPN Instance 都擁有專屬的 VPN-IPv4 地址空間,而每個 VPN-IPv4 地址均由 RD(Route Distinguisher,路由區(qū)分符)和 IPv4 地址 2 大部分組成。即:在 IPv4 地址字段前面再增加了一個 8Byte 的 RD 字段,用來區(qū)分不同 VPN Instance 的 IPV4 地址。
如下圖所示,VPN-IPv4 地址共有 12 Byte,包括了 8Byte 的 RD 和 4Byte 的 IPv4 地址前綴。
RD(Route Distinguisher,路由區(qū)分符)字段
RD 的作用是添加到一個特定的 IPv4 前綴,使之成為全局唯一的 VPN-IPv4 前綴。
RD 的 Value 自身通常有 2 種組成方式:
與 ASN(自治系統(tǒng)號)關(guān)聯(lián):RD 由 ASN 和一個任意數(shù)字組成;
與 IP 地址關(guān)聯(lián):RD 是由 IP 地址和一個任意數(shù)字組成。
相對的,RD 有 3 種類型,通過 Type 字段區(qū)分:
Type == 0:2Byte Administrator,4Byte Assigned number。格式為:{16bits ASN}:{32bits Custom number},例如:100:1。
Type == 1:4Byte Administrator,2Byte Assigned number。格式為:{32bits IPv4}:{16bits Custom number},例如:172.1.1.1:1。
Type == 2:4Byte Administrator,2Byte Assigned number。格式為:32bits ASN}:{16bits Custom number},其中的 ASN 最小值為 65536,例如:65536:1。
建議為 PE 上每個 VPN Instances 都配置專門的 RD,以保證到達(dá)同一個 CE 的 Routes 都使用相同的 RD。而 RD 為 0 的 VPN-IPv4 地址,就相當(dāng)于是全局唯一的 IPv4 地址了。
ISP 是運(yùn)行獨(dú)立劃分 RD 的,但必須保證 RD 的全局唯一性,這樣即使不同的 ISP 的 VPN 使用了重疊的 IPv4 地址,PE 也可以向各 VPN 發(fā)布不同的 Routes 了。
為保證 RD 的全局唯一性,建議不要將 Administrator 字段的值設(shè)置為私有的 ASN 或私有的 IP 地址。
RT(Route Target,路由目標(biāo))字段
MP-BGP 的 RT(Route Target,路由目標(biāo))擴(kuò)展字段用于實(shí)現(xiàn) PE 的 VPN Instance 的 Route Target Filter(目標(biāo)路由過濾器)功能,可以控制 VPN Routes 的發(fā)布。
PE 上的 VPN Instance 有 2 類 RT 字段:
Export Target:Local PE 發(fā)布 VPN-IPv4 Routes 到 Remote PE 之前,為這些 Routes 設(shè)置 Export Target 屬性;
Import Target:Local PE 在接收到 Remote PE 發(fā)布的 VPN-IPv4 Route 時,檢查其 Export Target 屬性,只有當(dāng) Export Target 與 Local PE 上的 VPN Instance 的 Import Target 屬性匹配時,才會把這些 Routes 加入到相應(yīng)的 VPN VRF 中。
PE 針對每個 VPN VRF 都可以配置一些 Export Target / Import Target Policies,規(guī)定了一個 VRF 可以接收攜帶何種 RT 屬性的路由信息,向外發(fā)布路由時攜帶什么 RT 屬性。
也就是說,VPN-IPV4 Route 所攜帶的 RT 屬性決定了 VPN 的成員關(guān)系。RT 屬性定義了一條 VPN-IPv4 Routes 可以被哪些 PE 接收,或者說,定義了 PE 可以接收哪些 VPN-IPv4 Routes。
與 RD 類似,RT 也有 3 種格式:
{16bits ASN}:{32bits Custom number},例如:100:1。
{32bits IPv4}:{16bits Custom number},例如:172.1.1.1:1。
{32bits ASN}:{16bits Custom number},其中的 ASN 最小值為 65536。例如:65536:1。
PE 設(shè)備支持 VPN-IPV4 Routes 類型
PE 的 VPN Instance
在 MPLS L3VPN 中,一個 VPN 表述一個用戶(租戶),不同 VPN 之間的路由隔離通過 VPN Instance 實(shí)現(xiàn)。
PE 為每個直接相連的 CE 建立并維護(hù)專門的 VPN Instance。VPN Instance 中包含對應(yīng) Site 的 VPN 成員關(guān)系和路由規(guī)則。如果一個 Site 中的用戶同時屬于多個 VPN,則該 Site 的 VPN Instance 中將包括所有這些 VPN 的信息。為保證 VPN 數(shù)據(jù)的獨(dú)立性和安全性,PE 上每個 VPN Instance 都有相對獨(dú)立的 VRF 和 LFIB。
具體來說,VPN Instance 中的信息包括:
LFIB(Label Forwarding Information Base,標(biāo)簽轉(zhuǎn)發(fā)表);
VRF(VPN Routing & Forwarding,VPN 的路由轉(zhuǎn)發(fā)表);
與 VPN Instance 綁定的 Interface;
VPN Instance 的管理信息,包括:RD(Route Distinguisher,路由區(qū)分符)、RT(Route Target,路由目標(biāo))路由過濾策略、成員接口列表等。
PE 的 VRF
PE Virtualization 是 VRF 之于 Router,類似 VLAN 之于 Switch,Trunk 之于 Ethernet Connection,VDOM 之于 Firewall,VM 之于 Server。VRF 的本質(zhì)就是一種 Path Isolation(路徑隔離)技術(shù)。
在 MPLS L3VPN 的 PE 中,維護(hù)了一張全局的路由表(公網(wǎng)路由表)。同時,還會維護(hù)著多張 VRF 表,VRF 是一種路由隔離和信息隔離的方式,使得每個 VRF 實(shí)例相互隔離,可以將 VRF 看作是一個 vPE 設(shè)備。
這些 VRF 是和 PE 上的一個或多個 VPN Instance 相對應(yīng),用于存放這些 VPN Instance 的 VPN Routers Information。通常的,一個 VRF 中只包含一個 VPN Instance 的 Routers。
通常的,一個 VRF 中包括了以下元素:
RIB(Routing Information Base),獨(dú)立的 Routes Table。
FIB(Forwarding Info Base),獨(dú)立的 Forwarding Table。
一組歸屬于本 VRF 的 Interfaces 的集合。
一組只用于本 VRF 的路由協(xié)議。
VPN-IPV4 Routes 的交換方式
在基本的 MPLS L3VPN 組網(wǎng)中,VPN Routes 的發(fā)布主要涉及 CE 和 PE。PE 也只維護(hù)與它直接相連的 VPN Routes,不維護(hù)所有 VPN Routes。而 P 只維護(hù)骨干網(wǎng) PE 的路由,不需要了解任何 VPN Routes。因此,MPLS L3VPN 網(wǎng)絡(luò)具有良好的可擴(kuò)展性。
VPN Routes 的發(fā)布過程包括 3 部分:
本地 CE 到入口 PE。
入口 PE 到出口 PE。
出口 PE 到遠(yuǎn)端 CE。
完成這 3 部分后,Local CE 與 Remote CE 之間將建立可達(dá)路由。
Local CE 和 Ingress PE 之間的路由交換
CE 通常是一臺普通的 Router,當(dāng) CE 與直接相連的 PE 建立了 Adjacency(鄰接)關(guān)系后,CE 就把 Local Site 的 VPN Routers 發(fā)布給 PE,并從 PE 學(xué)到 Remote VPN 的 Routes。
CE 與 PE 之間交換 Routes,可以采用靜態(tài)路由、或動態(tài)路由(e.g. RIP、OSPF、BGP、IS-IS)的方式。而采用靜態(tài)路由方式的好處是可以降低因?yàn)?CE 管理不善等原因?qū)е聦歉删W(wǎng) BGP 路由產(chǎn)生了震蕩,影響了骨干網(wǎng)的穩(wěn)定性。
Ingress PE 學(xué)習(xí)了 Local CE Site 的 VPN Routes 后,PE 會為這些 VPN Routes 增加 RD 和 RT 屬性,形成標(biāo)準(zhǔn)的 VPN-IPv4 Routes。然后再發(fā)布到 Local CE 的 VPN Instance 中,也會通過 BGP 發(fā)布到其它 Egress PE。
Ingress PE 和 Egress PE 之間的路由交換
PE 只會維護(hù)與它直接相連的 VPN Routes,不會維護(hù) ISP 網(wǎng)絡(luò)中所有的 VPN Routes。
Ingress PE 通過 MP-BGP 把 VPN-IPv4 Routes 發(fā)布給 Egress PE。Egress PE 根據(jù) VPN-IPv4 Routes 的 Export Target 屬性與自己維護(hù)的 VPN Instance 的 Import Target 屬性,決定是否將該 Routes 加入到 VPN Instance 的 Route Table 中。
Egress PE 和 Remote CE 之間的路由交換
Remote CE 有多種方式可以從 Egress PE 學(xué)習(xí) VPN Routes,包括:靜態(tài)路由、RIP、OSPF、IS-IS 和 E-BGP。與 Local CE 到 Egress PE 的路由信息交換方式相同。
L3VPN 的報(bào)文轉(zhuǎn)發(fā)流程
用戶接入 MPLS L3VPN 的方式是為每個 Site 提供一個或多個 CE,再與 PE 連接。在 PE 上為這個 Site 配置 VRF,將連接 PE-CE 的物理接口、邏輯接口、甚至 L2TP/IPSec 隧道綁定到 VRF 上。
當(dāng)在 MPLS 骨干網(wǎng)上傳輸 VPN 流量時,入口 PE 作為 Ingress LER,出口 PE 作為 Egress LER,P 路由器則作為 Transit LSR。
在基本 MPLS L3VPN 應(yīng)用中(不包括跨域的情況),VPN 報(bào)文轉(zhuǎn)發(fā)采用兩層標(biāo)簽方式:
第一層(外層)標(biāo)簽:在骨干網(wǎng)內(nèi)部進(jìn)行交換,指示從 Local PE 到 Remote PE 的一條 LSP(標(biāo)簽轉(zhuǎn)發(fā)路徑)。VPN 報(bào)文利用這層標(biāo)簽,可以沿 LSP 到達(dá) Remte PE;
第二層(內(nèi)層)標(biāo)簽:在從 Remote PE 到達(dá) CE 時使用,指示報(bào)文應(yīng)被送到哪個 CE。
特殊情況下,屬于同一個 VPN 的兩個 CE 連接到同一個 PE,這種情況下只需要知道如何到達(dá)對端 CE。
以下圖為例,說明 VPN 報(bào)文的轉(zhuǎn)發(fā)過程:
Site1 發(fā)出一個目的地址為 1.1.1.2 的 IP 報(bào)文,由 CE1 將報(bào)文發(fā)送至 PE1。
PE1 根據(jù)報(bào)文到達(dá)的接口及目的地址查找 VPN Instance 中的 VRF 和 LFIB 表項(xiàng),匹配后將報(bào)文轉(zhuǎn)發(fā)出去,同時打上內(nèi)層和外層兩個標(biāo)簽。
MPLS 網(wǎng)絡(luò)利用報(bào)文的外層標(biāo)簽,將報(bào)文傳送到 PE2(報(bào)文在到達(dá) PE2 前一跳時已經(jīng)被剝離外層標(biāo)簽,僅含內(nèi)層標(biāo)簽)。
PE2 根據(jù)內(nèi)層標(biāo)簽和目的地址查找 VPN Instance 中的 VRF 和 LFIB 表項(xiàng),確定報(bào)文的出接口,將報(bào)文轉(zhuǎn)發(fā)至 CE2。
CE2 根據(jù)正常的 IP 轉(zhuǎn)發(fā)過程將報(bào)文傳送到目的地。
MPLS L3VPN 的經(jīng)典組網(wǎng)方案
單域 L3VPN 場景
單域 MP-BGP MPLS VPN 在一個 AS 內(nèi)運(yùn)行,任何 VPN 的 Routes 都是只能在一個 AS 內(nèi)按需擴(kuò)散。
基本組網(wǎng)方案
最簡單的情況下,一個 VPN 中的所有用戶形成閉合用戶群,相互之間能夠進(jìn)行流量轉(zhuǎn)發(fā),VPN 中的用戶不能與任何本 VPN 以外的用戶通信。
對于這種組網(wǎng),需要為每個 VPN Instance 分配一個 Route Target(VPN Target),作為該 VPN Routes 的 Export Target / Import Target 屬性值。并且,此 Route Target 通常是全局唯一的。
下圖中,PE 上為 VPN1 分配的 Route Target 值為 100:1,為 VPN2 分配的 Route Target 值為 200:1。VPN1 的兩個 Site 之間可以互訪,VPN2 的兩個 Site 之間也可以互訪,但 VPN1 和 VPN2 的 Site 之間不能互訪。
Hub & Spoke 組網(wǎng)方案
如果希望在 VPN 中設(shè)置中心訪問控制設(shè)備,其它用戶的互訪都通過中心訪問控制設(shè)備進(jìn)行,可以使用 Hub&Spoke 組網(wǎng)方案,從而實(shí)現(xiàn)中心設(shè)備對兩端設(shè)備之間的互訪進(jìn)行監(jiān)控和過濾等功能。
對于這種組網(wǎng),需要設(shè)置兩個 VPN Target,一個表示 Hub,另一個表示 Spoke。
各 Site 在 PE 上的 VPN Instance 的 Route Target 設(shè)置規(guī)則為:
連接 Spoke 站點(diǎn)(Site1 和 Site2)的 Spoke-PE:Export Target 為 Spoke,Import Target 為 Hub;
連接 Hub 站點(diǎn)(Site3)的 Hub-PE:Hub-PE 上需要使用兩個接口或子接口,一個用于接收 Spoke-PE 發(fā)來的路由,其 VPN Instance 的 Import Target 為 Spoke;另一個用于向 Spoke-PE 發(fā)布路由,其 VPN Instance 的 Export Target 為 Hub。
下圖中,Spoke 站點(diǎn)之間的通信通過 Hub 站點(diǎn)進(jìn)行(圖中箭頭所示為 Site2 的路由向 Site1 的發(fā)布過程):
Hub-PE 能夠接收所有 Spoke-PE 發(fā)布的 VPN-IPv4 路由;
Hub-PE 發(fā)布的 VPN-IPv4 路由能夠?yàn)樗?Spoke-PE 接收;
Hub-PE 將從 Spoke-PE 學(xué)到的路由發(fā)布給其他 Spoke-PE。因此,Spoke 站點(diǎn)之間可以通過 Hub 站點(diǎn)互訪。
任意 Spoke-PE 的 Import Target 屬性不與其它 Spoke-PE 的 Export Target 屬性相同。因此,任意兩個 Spoke-PE 之間不直接發(fā)布 VPN-IPv4 路由,Spoke 站點(diǎn)之間不能直接互訪。
Extranet 組網(wǎng)方案
如果一個 VPN 用戶希望提供部分本 VPN 的站點(diǎn)資源給非本 VPN 的用戶訪問,可以使用 Extranet 組網(wǎng)方案。
對于這種組網(wǎng),如果某個 VPN 需要訪問共享站點(diǎn),則該 VPN 的 Export Target 必須包含在共享站點(diǎn)的 VPN Instance 的 Import Target 中,而其 Import Target 必須包含在共享站點(diǎn) VPN Instance 的 Export Target 中。
下圖中,VPN1 的 Site3 能夠被 VPN1 和 VPN2 訪問:
PE3 能夠接受 PE1 和 PE2 發(fā)布的 VPN-IPv4 路由;
PE3 發(fā)布的 VPN-IPv4 路由能夠?yàn)?PE1 和 PE2 接受;
基于以上兩點(diǎn),VPN1 的 Site1 和 Site3 之間能夠互訪,VPN2 的 Site2 和 VPN1 的 Site3 之間能夠互訪。
PE3 不把從 PE1 接收的 VPN-IPv4 路由發(fā)布給 PE2,也不把從 PE2 接收的 VPN-IPv4 路由發(fā)布給 PE1(IBGP 鄰居學(xué)來的條目是不會再發(fā)送給別的 IBGP 鄰居),因此,VPN1 的 Site1 和 VPN2 的 Site2 之間不能互訪。
跨域 L3VPN 場景
如果同一個 VPN 的 2 個 Site 位于不同的 AS,意味著連接 VPN 的 PE 已經(jīng)無法簡單地建立 I-BGP 鄰居關(guān)系、或是與 RR 建立鄰居關(guān)系了。因此,需要一些手段通過建立 E-BGP 鄰居關(guān)系來傳遞 VPNv4 Routes。
為了支持不同 AS 之間的 VPNv4 Routes 交換,就需要使用跨域(Inter-AS)的 MPLS VPN 架構(gòu)了,以便可以穿過 AS 間的鏈路來發(fā)布路由前綴和標(biāo)簽信息。
MPLS 有三種不同的 LDP (Label Distribution Protocol) 部署選項(xiàng),即 Option A、B 和 C。這些選項(xiàng)定義了如何在 MPLS 網(wǎng)絡(luò)中分發(fā)標(biāo)簽和構(gòu)建標(biāo)簽交換路徑(LSP)。
Inter-Provider Backbones Option A
Option A 是一種簡單的部署選項(xiàng),每個 LSR(Label Switching Router)只分發(fā)到其相鄰的下游 LSR 的標(biāo)簽。這種方式需要在網(wǎng)絡(luò)中維護(hù)大量的標(biāo)簽交換路徑,因此不適用于大型網(wǎng)絡(luò)。
簡單的說就是每個 AS 只在自己內(nèi)部通過 MP-iBGP 宣告路由。需要手動地在跨域 VPN 的 ASBR 間通過專用的接口管理自己的 VPN Routes,也稱為 VRF-to-VRF。
Inter-Provider Backbones Option B
Option B 是一種折中的部署選項(xiàng),每個 LSR 只與其相鄰的下游 LSR 通信,但是在某些情況下會向網(wǎng)絡(luò)中的其他 LSR 分發(fā)標(biāo)簽。這種方式可以在一定程度上減少標(biāo)簽和路徑信息的數(shù)量,適用于中等規(guī)模的網(wǎng)絡(luò)。
簡單地說就是,處理在每個 AS 內(nèi)部使用 MP-iBGP 宣告路由之外,不同的 AS 之間還會通過 ASBR PE 使用 MP-eBGP 宣告彼此 AS 的路由信息。
Inter-Provider Backbones Option C
Option C 是一種復(fù)雜的部署選項(xiàng),可以實(shí)現(xiàn)在整個網(wǎng)絡(luò)中分布 Lables。每個 LSR 分別與網(wǎng)絡(luò)中所有其他 LSR 通信,以構(gòu)建完整的標(biāo)簽交換路徑。這種方式需要在網(wǎng)絡(luò)中維護(hù)大量的標(biāo)簽和路徑信息,因此不適用于大型網(wǎng)絡(luò)。
簡單的說,就是整網(wǎng)都使用 MP-eBGP 宣告路由。
-
通信技術(shù)
+關(guān)注
關(guān)注
20文章
1150瀏覽量
92988 -
交換機(jī)
+關(guān)注
關(guān)注
21文章
2719瀏覽量
101319 -
VPN
+關(guān)注
關(guān)注
4文章
297瀏覽量
30326 -
MPLS
+關(guān)注
關(guān)注
0文章
137瀏覽量
24566 -
廣域網(wǎng)
+關(guān)注
關(guān)注
1文章
251瀏覽量
22126
原文標(biāo)題:SD-WAN — MPLS 廣域網(wǎng) VPN 技術(shù)解析
文章出處:【微信號:SDNLAB,微信公眾號:SDNLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
廣域網(wǎng)優(yōu)化解決方案

城域以太網(wǎng)的VPLS技術(shù)
從T1線路遷移到光纖廣域網(wǎng)
低功耗廣域網(wǎng)最佳實(shí)現(xiàn)的十大標(biāo)準(zhǔn)
廣域網(wǎng).ppt

計(jì)算機(jī)廣域網(wǎng)
廣域網(wǎng)接口卡/WIC
廣域網(wǎng)(WAN)/互聯(lián)網(wǎng),廣域網(wǎng)(WAN)/互聯(lián)網(wǎng)的組成和作
常用廣域網(wǎng)有哪些連接技術(shù)

基于BGP MPLS的以太網(wǎng)VPN技術(shù)概述

廣域網(wǎng)的傳輸介質(zhì)_廣域網(wǎng)的拓?fù)浣Y(jié)構(gòu)
廣域網(wǎng)的特點(diǎn)是什么_廣域網(wǎng)的通信方式
MPLS VPN是什么?

評論