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

評(píng)論