天天看點

【網絡幹貨】MPLS BGP VPN技術詳解

一、基本概念

Site在介紹 VPN 時經常會提到“Site”, Site(站點)的含義可以從下述幾個方面了解:

Site 是指互相之間具備 IP 連通性的一組 IP 系統,并且,這組 IP 系統的 IP 連通性不需通過營運商網絡實作。

如圖所示,左半邊的網絡中, A 市 X 公司總部網絡是一個 Site, B 市 X 公司分支機構網絡是另一個 Site。這兩個網絡各自内部的任何 IP 裝置之間不需要通過營運商網絡就可以互通。

Site 示意圖

【網絡幹貨】MPLS BGP VPN技術詳解

Site 的劃分是根據裝置的拓撲關系,而不是地理位置,盡管在大多數情況下一個 Site 中的裝置地理位置相鄰。地理位置隔離的兩組 IP 系統,如果它們使用專線互聯,不需要通過營運商網絡就可以互通,這兩組 IP 系統也組成一個 Site。

如圖所示,右半邊網絡, B 市的分支機構網絡不通過營運商網絡,而是通過專線直接與 A市的總部相連,則 A 市的總部網絡與 B 市的分支機構網絡構成了一個 Site。

一個 Site 中的裝置可以屬于多個 VPN,換言之,一個 Site 可以屬于多個 VPN。

如圖所示, X 公司位于 A 市的決策部網絡(Site A)允許與位于 B 市的研發部網絡(Site B)和位于 C 市的财務部網絡(Site C)互通。但是不允許 Site B 與 Site C 互通。這種情況下,可以建構兩個 VPN(VPN1 和 VPN2), Site A 和 Site B 屬于 VPN1, Site A 和 Site C 屬于 VPN2。這樣, Site A 就屬于多個 VPN。

圖一個 Site 屬于多個 VPN

【網絡幹貨】MPLS BGP VPN技術詳解

Site 通過 CE 連接配接到營運商網絡,一個 Site 可以包含多個 CE,但一個 CE 隻屬于一個 Site。

根據 Site 的情況,建議 CE 裝置選擇方案如下:

如果 Site 隻是一台主機,則這台主機就作為 CE 裝置;

如果 Site 是單個子網,則使用交換機作為 CE 裝置;

如果 Site 是多個子網,則使用路由器作為 CE 裝置。

對于多個連接配接到同一營運商網絡的 Site,通過制定政策,可以将它們劃分為不同的集合(set),隻有屬于相同集合的 Site 之間才能通過營運商網絡互訪,這種集合就是 VPN。

位址空間重疊

VPN 是一種私有網絡,不同的 VPN 獨立管理自己的位址範圍,也稱為位址空間(address space)。

不同 VPN 的位址空間可能會在一定範圍内重合,例如, VPN1 和 VPN2 都使用 10.110.10.0/24 網段位址,這就發生了位址空間的重疊(address spaces overlapping)。

以下兩種情況允許 VPN 使用重疊的位址空間:

1、兩個 VPN 沒有共同的 Site

2、兩個 VPN 有共同的 Site,但此 Site 中的裝置不與兩個 VPN 中使用重疊位址空間的裝置互訪

VPN 執行個體

在 BGP/MPLS IP VPN 中,不同 VPN 之間的路由隔離通過 VPN 執行個體(VPN-instance)實作。

PE 為每個直接相連的 Site 建立并維護專門的 VPN 執行個體, VPN 執行個體中包含對應 Site 的 VPN 成員關系和路由規則。具體來說, VPN 執行個體中的資訊包括:IP 路由表、标簽轉發表、與 VPN 執行個體綁定的接口以及 VPN 執行個體的管理資訊。VPN 執行個體的管理資訊包括 RD(Route Distinguisher,路由辨別符)、路由過濾政策、成員接口清單等。

VPN、 Site、 VPN 執行個體之間的關系如下:

1、VPN 是多個 Site 的組合。一個 Site 可以屬于多個 VPN。

2、每一個 Site 在 PE 上都關聯一個 VPN 執行個體。VPN 執行個體綜合了它所關聯的 Site 的 VPN 成員關

系和路由規則。多個 Site 根據 VPN 執行個體的規則組合成一個 VPN。

3、VPN 執行個體與 VPN 不是一一對應的關系, VPN 執行個體與 Site 之間存在一一對應的關系。

VPN 執行個體也稱為 VPN 路由轉發表 VRF(VPN Routing and Forwarding table)。PE 上存在多個路由轉發表,包括一個公網路由轉發表,以及一個或多個 VPN 路由轉發表。如圖所示。

VPN 執行個體示意圖

【網絡幹貨】MPLS BGP VPN技術詳解

公網路由轉發表與 VPN 執行個體存在以下不同:

 公網路由表包括所有 PE 和 P 裝置的 IPv4 路由,由骨幹網的路由協定或靜态路由産生。

 VPN 路由表包括屬于該 VPN 執行個體的所有 Site 的路由,通過 CE 與 PE 之間或者兩個 PE 之間的 VPN 路由資訊互動獲得。

 公網轉發表是根據路由管理政策從公網路由表提取出來的最小轉發資訊;而 VPN 轉發表是根據路由管理政策從對應的 VPN 路由表提取出來的最小轉發資訊。

可以看出, PE 上的各 VPN 執行個體之間互相獨立,并與公網路由轉發表互相獨立。

可以将每個 VPN 執行個體看作一台虛拟的裝置,維護獨立的位址空間并有連接配接到該裝置的接口。

RD 和 VPN-IPv4 位址

傳統 BGP 無法正确處理位址空間重疊的 VPN 的路由。假設 VPN1 和 VPN2 都使用了 10.110.10.0/24網段的位址,并各自釋出了一條去往此網段的路由。雖然本端 PE 通過不同的 VPN 執行個體可以區分位址空間重疊的 VPN 的路由,但是這些路由發往對端 PE 後,由于不同 VPN 的路由之間不進行負載分擔,是以對端 PE 将根據 BGP 選路規則隻選擇其中一條 VPN 路由,進而導緻去往另一個 VPN的路由丢失。

PE 之間使用 MP-BGP(Multiprotocol Extensions for BGP-4, BGP-4 的多協定擴充)來釋出 VPN 路由,并使用 VPN-IPv4 位址族來解決上述問題。

VPN-IPv4 位址共有 12 個位元組,包括 8 位元組的路由辨別符 RD(Route Distinguisher)和 4 位元組的 IPv4位址字首,如圖所示。

VPN-IPv4 位址結構

【網絡幹貨】MPLS BGP VPN技術詳解

RD 用于區分使用相同位址空間的 IPv4 字首,增加了 RD 的 IPv4 位址稱為 VPN-IPv4 位址(即 VPNv4位址)。PE 從 CE 接收到 IPv4 路由後,轉換為全局唯一的 VPN-IPv4 路由,并在公網上釋出。

RD 的結構使得每個服務供應商可以獨立地配置設定 RD,但為了在 CE 雙歸屬的情況下保證路由正常,必須保證 PE 上的 RD 全局唯一。如圖 5 所示, CE 以雙歸屬方式接入到 PE1 和 PE2。PE1 同時作為路由反射器 RR(Route Reflector)。

CE 雙歸屬組網示意圖

【網絡幹貨】MPLS BGP VPN技術詳解

該組網中, PE1 作為骨幹網邊界裝置釋出一條 IPv4 字首為 10.1.1.1/8 的 VPN-IPv4 路由給 PE3。同

時又作為 RR 反射 PE2 釋出的 IPv4 字首為 10.1.1.1/8 的 VPN-IPv4 路由給 PE3。

如果該 VPN 在 PE1 和 PE2 上的 RD 一樣,由于目的位址相同, PE3 隻保留一條到 10.1.1.1/8的 VPN-IPv4 路由,其路徑為:PE3—>PE1->CE。

當 PE1 與 CE 之間的直連鍊路出現故障時, PE3 删除到 10.1.1.1/8 的 VPN-IPv4 路由,無法正确轉發到該目的位址的 VPN 資料。而實際上 PE3 應該有一條到 10.1.1.1/8 的路由,其路徑為:PE3—>PE2->CE。

如果該 VPN 在 PE1 和 PE2 上的 RD 不同,則 PE3 從 PE1 接收的到 10.1.1.1/8 兩條 VPN-IPv4路由的目的位址不同,是以 PE3 上保留兩條到 10.1.1.1/8 的 VPN-IPv4 路由。當 PE1 與 CE 之間的任何一條鍊路出現故障時, PE3 将删除其中對應的一條,仍保留另一條,使得到 10.1.1.1/8的資料能正确轉發。

VPN TargetBGP/MPLS IP VPN 使用 32 位的 BGP 擴充團體屬性-VPN Target(也稱為 Route Target)來控制VPN 路由資訊的釋出。

每個 VPN 執行個體關聯一個或多個 VPN Target 屬性。有兩類 VPN Target 屬性:

1、Export Target:本地 PE 從直接相連 Site 學到 IPv4 路由後, 轉換為 VPN-IPv4 路由,并為這些路由設定 Export Target 屬性。Export Target 屬性作為 BGP 的擴充團體屬性随路由釋出。

2、Import Target:PE 收到其它 PE 釋出的 VPN-IPv4 路由時,檢查其 Export Target 屬性。當此屬性與 PE 上某個 VPN 執行個體的 Import Target 比對時, PE 就把路由加入到該 VPN 執行個體中。

在 BGP/MPLS IP VPN 網絡中,通過 VPN Target 屬性來控制 VPN 路由資訊在各 Site 之間的釋出和接收。VPN Export Target 和 Import Target 的設定互相獨立,并且都可以設定多個值,能夠實作靈活的 VPN 通路控制,進而實作多種 VPN 組網方案。

例如:某 VPN 執行個體的 Import Target 包含 100:1, 200:1 和 300:1,當收到的路由資訊的 Export Target為 100:1、 200:1、 300:1 中的任意值時,都可以被注入到該 VPN 執行個體中。

二、基本原理從如下幾部分介紹 BGP/MPLS IP VPN 的基本原理:

 私網标簽配置設定

 私網路由交叉

 公網隧道疊代

 私網路由的選擇規則

 BGP/MPLS IP VPN 的路由釋出

 BGP/MPLS IP VPN 的封包轉發

私網标簽配置設定

在 BGP/MPLS IP VPN 中, PE 通過 MP-BGP 釋出私網路由給骨幹網的其他相關的 PE 前,需要為私網路由配置設定 MPLS 标簽(私網标簽)。當使用者資料包在骨幹網傳輸時,攜帶私網标簽。

PE 上配置設定私網标簽的方法有如下兩種:

 基于路由的MPLS标簽配置設定:預設情況下,裝置為VPN路由表的每一條路由配置設定一個标簽(one label per route)。這種方式的缺點是:當路由數量比較多時,裝置入标簽映射表 ILM(Incoming Label Map)需要維護的表項也會增多,進而提高了對裝置容量的要求。

 基于 VPN 執行個體的 MPLS 标簽配置設定:為整個 VPN 執行個體配置設定一個标簽,該 VPN 執行個體裡的所有路由都共享一個标簽。使用這種配置設定方法的好處是節約了标簽。

說明:

MP-BGP 為私網路由配置設定标簽的前提是 PE 上使能 MPLS 功能。

私網路由交叉

兩台 PE 之間通過 MP-BGP 傳播的路由是 VPNv4 路由。當接收到 VPNv4 路由, PE 先進行如下處理:

 檢查其下一跳是否可達。如果下一跳不可達,該路由被丢棄。

 對于 RR 發送過來的 VPNv4 路由,如果收到的路由中 cluster_list 包含自己的 cluster_id,則丢棄這條路由。

 進行 BGP 的路由政策過濾,如果不通過,則丢棄該路由。

之後, PE 把沒有丢棄的路由與本地的各個 VPN 執行個體的 Import Target 屬性比對。VPNv4 路由與本地 VPN 執行個體的 Import VPN-Target 進行比對的過程稱為私網路由交叉。

PE 上有種特殊的路由,即來自本地 CE 的屬于不同 VPN 的路由。對于這種路由,如果其下一跳直接可達或可疊代成功, PE 也将其與本地的其他 VPN 執行個體的 Import Target 屬性比對,該過程稱為本地交叉。

例如:CE1 所在的 Site 屬于 VPN1, CE2 所在的 Site 屬于 VPN2,且 CE1 和 CE2 同時接入 PE1。當 PE1 收到來自 CE1 的 VPN1 的路由時,也會與 VPN2 對應的 VPN 執行個體的 Import Target屬性比對。

說明:

為了能夠将封包正确轉發出去, BGP 裝置必須先找到一個直接可達的位址,通過這個位址到達路由表中訓示的下一跳。在上述過程中,去往直接可達位址的路由被稱為依賴路由, BGP 路由依賴于這些路由指導封包轉發。根據下一跳位址找到依賴路由的過程就是路由疊代。

公網隧道疊代

為了将私網流量通過公網傳遞到另一端,需要有一條公網隧道承載這個私網流量。是以私網路由交叉完成後,需要根據目的 IPv4 字首進行路由疊代,查找合适的隧道(本地交叉的路由除外);

隻有隧道疊代成功,該路由才被放入對應的 VPN 執行個體路由表。将路由疊代到相應的隧道的過程叫做隧道疊代。

隧道疊代成功後,保留該隧道的辨別符(Tunnel ID),供後續轉發封包時使用。Tunnel ID 用于唯一辨別一條隧道。VPN 封包轉發時根據 Tunnel ID 查找對應的隧道,然後從隧道上發送出去。

私網路由的選擇規則經過路由交叉和隧道疊代的路由并不是全部被放入 VPN 執行個體路由表。從本地 CE 收到的路由和本地交叉路由也不是全部被放入 VPN 執行個體路由表。

對于到同一目的位址的多條路由,如果不進行路由的負載分擔,按如下規則選擇其中的一條:

 同時存在直接從CE收到的路由和交叉成功後的同一目的位址路由,則優選從 CE收到的路由。

 同時存在本地交叉路由和從其他 PE 接收并交叉成功後的同一目的位址路由,則優選本地交叉路由。

對于到同一目的位址的多條路由,如果進行路由的負載分擔,則:

 優先選擇從本地CE收到的路由。隻有一條從本地CE收到的路由而有多條交叉路由的情況下,也隻選擇從本地 CE 收到的路由。

 隻在從本地 CE 收到的路由之間分擔或隻在交叉路由之間分擔,不會在本地 CE 收到的路由和交叉路由之間分擔。

 負載分擔的 AS_PATH 屬性必須完全相同。

BGP/MPLS IP VPN 的路由釋出

基本 BGP/MPLS IP VPN 組網中, VPN 路由資訊的釋出涉及 CE 和 PE, P 裝置隻維護骨幹網的路由,不需要了解任何 VPN 路由資訊。PE 裝置一般維護所有 VPN 路由。

VPN 路由資訊的釋出過程包括三部分:本地 CE 到入口 PE、入口 PE 到出口 PE、出口 PE 到遠端CE。完成這三部分後,本地 CE 與遠端 CE 之間建立可達路由, VPN 路由資訊能夠在骨幹網上釋出。

下面分别對這三部分進行介紹。

1、本地 CE 到入口 PE 的路由資訊交換

CE 與直接相連的 PE 建立鄰居或對等體關系後,把本站點的 IPv4 路由釋出給 PE。CE 與 PE之間可以使用靜态路由、 RIP、 OSPF、 IS-IS 或 BGP。無論使用哪種路由協定, CE 釋出給 PE的都是标準的 IPv4 路由。

2、入口 PE 到出口 PE 的路由資訊交換

 PE 從 CE 學到 VPN 路由資訊後,存放到 VPN 執行個體中。同時,為這些标準 IPv4 路由增加 RD,形成 VPN-IPv4 路由。

 入口 PE 通過 MP-BGP 的 Update 封包把 VPN-IPv4 路由釋出給出口 PE。Update 封包中攜帶 Export VPN Target 屬性及 MPLS 标簽。

 出口 PE 收到 VPN-IPv4 路由後,在下一跳可達的情況下進行路由交叉、隧道疊代和路由優選,決定是否将該路由加入到 VPN 執行個體的路由表。被加入到 VPN 路由表的路由,本地 PE 為其保留如下資訊以供後續轉發封包時使用:MP-BGP Update 消息中攜帶的 MPLS 标簽值 和 Tunnel ID

3、出口 PE 到遠端 CE 的路由資訊交換

遠端 CE 有多種方式可以從出口 PE 學習 VPN 路由,包括靜态路由、 RIP、 OSPF、 IS-IS 和BGP,與本地 CE 到入口 PE 的路由資訊交換相同。此處不再贅述。值得注意的是,出口 PE釋出給遠端 CE 的路由是普通 IPv4 路由。

下面以圖 (PE-CE 之間使用 BGP,公網隧道為 LSP)為例,說明将 CE2 的一條路由發送到 CE1的過程。

【網絡幹貨】MPLS BGP VPN技術詳解

1. 在 CE2 的 BGP IPv4 單點傳播位址族下引入 IGP 路由。

2. CE2 将該路由随 EBGP 的 Update 消息一起釋出給 Egress PE。Egress PE 從連接配接 CE2 的接口收到 Update 消息,把該路由轉化為 VPN IPv4 路由,加入對應的 VPN 執行個體路由表。

3. Egress PE 為該路由配置設定 MPLS 标簽,并将标簽和 VPN IPv4 路由資訊加入 MP-IBGP 的 Update消息中的 NLRI 字段中, Export-RT 屬性加入 MP-BGP Update 消息的擴充團體屬性字段中,将 Update 消息發送給 Ingress PE。

4. Ingress PE 對該路由進行路由交叉。交叉成功則根據路由目的 IPv4 位址進行隧道疊代,查找合适的隧道。如果疊代成功,則保留該隧道的 Tunnel ID 和标簽,并将路由加入該 VPN 執行個體路由表。

5. Ingress PE 把該路由通過 BGP Update 消息釋出給 CE1。此時路由是普通 IPv4 路由。

6. CE1 收到該路由後,把該路由加入 BGP 路由表。通過在 IGP 中引入 BGP 路由的方法可使CE1 把該路由加入 IGP 路由表。

上面過程隻是将 CE2 的路由釋出給 CE1。要實作 CE1 與 CE2 的互通,還需要将 CE1 的路由釋出給 CE2,其過程與上面的步驟類似,此處不再贅述。

BGP/MPLS IP VPN 的封包轉發

在基本 BGP/MPLS IP VPN 應用中(不包括跨域的情況), VPN 封包轉發采用兩層标簽方式:

 第一層(公網)标簽在骨幹網内部進行交換,訓示從 PE 到對端 PE 的一條 LSP。VPN 封包利用這層标簽,可以沿 LSP 到達對端 PE;

 第二層(私網)标簽在從對端 PE 到達 CE 時使用,訓示封包應被送到哪個 Site,或者更具體一些,到達哪一個 CE。這樣,對端 PE 根據内層标簽可以找到轉發封包的接口。

特殊情況下,屬于同一個 VPN 的兩個 Site 連接配接到同一個 PE,這種情況下隻需要知道如何到達對端CE。

以圖為例說明 BGP/MPLS IP VPN 封包的轉發過程。圖 2 是 CE1 發送封包給 CE2 的過程。其中,I-L 表示内層标簽, O-L 表示外層标簽。

圖VPN 封包轉發過程

【網絡幹貨】MPLS BGP VPN技術詳解

1. CE1 發送一個 VPN 封包。

2. Ingress PE 從綁定了 VPN 執行個體的接口上接收 VPN 資料包後進行如下操作:

 先根據綁定的 VPN 執行個體的 RD 查找對應 VPN 的轉發表。

 比對目的 IPv4 字首,查找對應的 Tunnel ID。

 将封包打上對應的标簽(I-L),根據 Tunnel-ID 找到隧道。

 将封包從隧道發送出去。此例的隧道是 LSP,則打上公網(外層)MPLS 标簽頭(O-L1)。

接着,該封包攜帶兩層 MPLS 标簽穿越骨幹網。骨幹網的每台 P 裝置都對該封包進行外層标簽交換。

3. Egress PE 收到該攜帶兩層标簽的封包,交給 MPLS 協定處理。MPLS 協定将去掉外層标簽(此例最後的外層标簽是 O-L2,但如果應用了倒數第二跳彈出,則此标簽會在到達 Egress PE之前的一跳彈出, Egress PE 隻能收到帶有内層标簽的封包)。

4. 此時 Egress PE 就可以看見内層标簽,發現該标簽處于棧底,将内層标簽剝離。

5. Egress PE 将封包從對應出接口發送給 CE2。此時封包是個純 IP 封包。

這樣,封包就成功地從 CE1 傳到 CE2 了。CE2 按照普通的 IP 轉發過程将封包傳送到目的地。

三、基本組網

Intranet VPN最簡單的情況下,一個 VPN 中的所有使用者形成閉合使用者群,互相之間能夠進行流量轉發, VPN 中的使用者不能與任何本 VPN 以外的使用者通信。這種組網方式的 VPN 叫做 Intranet VPN,其站點通常是屬于同一個組織。

對于這種組網,需要為每個 VPN 配置設定一個 VPN Target,作為該 VPN 的 Export Target 和 Import Target,并且,此 VPN Target 不能被其他 VPN 使用。

【網絡幹貨】MPLS BGP VPN技術詳解

在圖 中, PE 上為 VPN1 配置設定的 VPN Target 值為 100:1,為 VPN2 配置設定的 VPN Target 值為 200:1。VPN1 的兩個 Site 之間可以互訪, VPN2 的兩個 Site 之間也可以互訪,但 VPN1 和 VPN2 的 Site 之間不能互訪。

Extranet VPN如果一個 VPN 使用者希望通路其他 VPN 中的某些站點,可以使用 Extranet 組網方案。

對于這種組網,如果某個 VPN 需要通路共享站點,則該 VPN 的 Export Target 必須包含在共享站點的VPN執行個體的Import Target中,而其Import Target必須包含在共享站點VPN執行個體的Export Target中。

【網絡幹貨】MPLS BGP VPN技術詳解

在圖中, VPN1 的 Site3 能夠被 VPN1 和 VPN2 通路:

 PE3 能夠接收 PE1 和 PE2 釋出的 VPN-IPv4 路由;

 PE3 釋出的 VPN-IPv4 路由能夠被 PE1 和 PE2 接收;

基于以上兩點, VPN1 的 Site1 和 Site3 之間能夠互訪, VPN2 的 Site2 和 VPN1 的 Site3 之間能夠互訪;

PE3不把從 PE1接收的 VPN-IPv4路由釋出給 PE2,也不把從PE2接收的 VPN-IPv4路由釋出給PE1,是以, VPN1 的 Site1 和 VPN2 的 Site2 之間不能互訪。

Hub and Spoke如果希望在 VPN 中設定中心通路控制裝置,其它使用者的互訪都通過中心通路控制裝置進行,可以使用 Hub and Spoke 組網方案。其中,中心通路控制裝置所在站點稱為 Hub 站點,其他使用者站點稱為 Spoke 站點。Hub 站點側接入 VPN 骨幹網的裝置叫 Hub-CE;Spoke 站點側接入 VPN 骨幹網的裝置叫 Spoke-CE。VPN 骨幹網側接入 Hub 站點的裝置叫 Hub-PE,接入 Spoke 站點的裝置叫Spoke-PE。

Spoke 站點需要把路由釋出給 Hub 站點,再通過 Hub 站點釋出給其他 Spoke 站點。Spoke 站點之間不直接釋出路由。Hub 站點對 Spoke 站點之間的通訊進行集中控制。

對于這種組網情況,需要設定兩個 VPN Target,一個表示“Hub”,另一個表示“Spoke”。如圖所示。

【網絡幹貨】MPLS BGP VPN技術詳解

各 Site 在 PE 上的 VPN 執行個體的 VPN Target 設定規則為:

 Spoke-PE:Export Target 為“Spoke”, Import Target 為“Hub”。任意 Spoke-PE 的 Import Route Target 屬性不與其它 Spoke-PE 的 Export Route Target 屬性相同;

 Hub-PE:Hub-PE 上需要使用兩個接口或子接口。

    一個用于接收 Spoke-PE 發來的路由,其 VPN 執行個體的 Import Target 為“Spoke”;

      另一個用于向 Spoke-PE 釋出路由,其 VPN 執行個體的 Export Target 為“Hub”。

在圖中, Spoke 站點之間的通信通過 Hub 站點進行(圖中箭頭所示為 Site2 的路由向 Site1 的釋出過程):

 Hub-PE 能夠接收所有 Spoke-PE 釋出的 VPN-IPv4 路由;

 Hub-PE 釋出的 VPN-IPv4 路由能夠為所有 Spoke-PE 接收;

 Hub-PE 将從 Spoke-PE 學到的路由釋出給 Hub-CE,并将從 Hub-CE 學到的路由釋出給所有Spoke-PE。是以, Spoke 站點之間可以通過 Hub 站點互訪;

 任意 Spoke-PE 的 Import Target 屬性不與其它 Spoke-PE 的 Export Target 屬性相同。是以,任意兩個 Spoke-PE 之間不直接釋出 VPN-IPv4 路由, Spoke 站點之間不能直接互訪。

四、VPN FRR

産生背景

在網絡高速發展的今天,營運商網絡發生故障時的端到端業務收斂時間已經成為承載網的重要名額。

MPLS TE FRR(Fast Reroute)是最常用的快速倒換技術之一,它的基本思路是在兩個 PE 裝置之間建立端到端的 TE 隧道,并且為需要保護的主用 LSP(标簽交換路徑)事先建立好備用 LSP,當裝置檢測到主用 LSP 不可用時(節點故障或者鍊路故障),将流量倒換到備用 LSP 上,進而實作業務的快速倒換。

從 MPLS TE FRR 技術的原理看,對于作為 TE 隧道起始點和終結點的兩個 PE 裝置之間的鍊路故障和節點故障, MPLS TE FRR 能夠實作快速的業務倒換。但是這種技術不能解決作為隧道起始點和終結點的 PE 裝置的故障,一旦 PE 節點發生故障,隻能通過端到端的路由收斂、 LSP 收斂來恢複業務,其業務收斂時間與 MPLS VPN 内部路由的數量、承載網的跳數密切相關, VPN 私網路由數量越大,收斂時間越長,導緻大量的流量丢失。

VPN FRR 利用基于 VPN 的私網路由快速切換技術,通過預先在遠端 PE 中設定指向主用 PE 和備用 PE 的主備用轉發項,并結合 PE 故障快速探測,旨在解決 CE 雙歸 PE 的 MPLS VPN 網絡中,PE 節點故障導緻的端到端業務收斂時間長的問題。同時對于 VPN FRR 技術,其收斂時間隻取決于遠端 PE 故障的檢測并修改對應隧道狀态的時間,由此解決了私網路由數目越多, PE 節點故障恢複時間越長的問題。

實作原理

圖 VPN FRR 典型組網圖

【網絡幹貨】MPLS BGP VPN技術詳解

如圖,假設正常情況下 CE1 通路 CE2 的路徑為 Link A,當 PE2 發生故障後, CE1 通路 CE2 的路徑收斂為 Link B。

 按照傳統的 BGP/MPLS VPN 技術, PE2 和 PE3 都會向 PE1 釋出指向 CE2 的路由,并配置設定私網标簽, PE1 優選一個 MBGP 鄰居發送的 VPNv4 路由,在這個例子中,優選的是 PE2 釋出的路由,并且隻把 PE2 釋出的路由資訊(包括轉發字首、内層标簽、選中的 LSP 隧道)填寫在轉發引擎使用的轉發項中,指導轉發。

 當 PE2 節點故障時, PE1 感覺到 PE2 的故障(BGP 鄰居 Down 或者外層 LSP 隧道不可用),重新優選 PE3 釋出的路由,并重新下發轉發項,完成業務的端到端收斂。在 PE1 重新優選PE3 釋出的路由,下發到轉發項之前,由于轉發項指向的外層 LSP 隧道的終點是 PE2,而 PE2節點故障,是以,在一段時間内, CE1 是無法通路 CE2 的,端到端業務中斷。

 VPN FRR 技術對傳統技術進行了改進:支援 PE1 裝置将最優的 PE2 釋出的路由資訊和次優的 PE3 釋出的路由資訊都填寫在轉發項中,其中最優的路由用于指導業務流量轉發,而次優路由用于作為備份路由。

 當 PE2 節點故障時, PE1 感覺到 PE1 與 PE2 之間的外層隧道不可用,便将 LSP 隧道狀态表中的對應标志設定為不可用并下發到轉發引擎中,轉發引擎命中一個轉發項之後,檢查該轉發項對應的 LSP 隧道狀态,如果為不可用,則使用本轉發項中攜帶的次優路由的轉發資訊進行轉發。這樣,封包就會被打上 PE3 配置設定的内層标簽,沿着 PE1 與 PE3 之間的外層 LSP 隧道交換到 PE3,再轉發給 CE2,進而恢複 CE1 到 CE2 的業務,實作 PE2 節點故障情況下的端到端業務的快速收斂。

VPN FRR 技術面向内層标簽的快速倒換,在外層隧道的選擇方面,可以是 LDP LSP 或 RSVP TE,轉發引擎在封包轉發的時候感覺到外層隧道的狀态為不可用就可以進行快速的基于内層标簽的倒換。

五、VPN GR

概述

VPN GR(Graceful Restart)是 GR 技術在 VPN 場景中的應用。VPN GR 實作在承載 VPN 業務的裝置發生主備倒換時 VPN 流量不中斷。

實作 VPN GR 的目的: 減少主備倒換時路由震蕩對全網的影響;

 減少丢包,基本可以達到 VPN 流量丢包率為 0%;

 減少對重要 VPN 業務的影響;

 減少 PE 或 CE 單點故障,提高 VPN 環境整網的可靠性。

實作前提倒換裝置及與之相連的裝置都必須具備 GR 能力,在一段時間内儲存所有 VPN 路由的轉發資訊,保持 VPN 流量不中斷。即:

 支援 IGP GR、 BGP GR

 支援 LDP GR,如果骨幹網使用 TE 隧道,則需要支援 RSVP GR

實作過程在一般的 BGP/MPLS VPN 環境中,發生主備倒換的裝置可能是 PE, CE 或 P。

1、PE 發生主備倒換

PE 處理流程同普通 IGP GR、 LDP GR、 BGP GR 處理過程中 GR Restarter 的處理流程一樣與此 PE 相連的 CE 在感覺到 PE 重新開機後,進行與普通 IGP GR 或 BGP GR 中的 GR Helper 相同的流程處理,在一段時間内儲存所有 IPv4 路由資訊。

與此 PE 相連的 P 在感覺到 PE 重新開機後,進行與普通 IGP GR、LDP GR 或 BGP GR 中 GR Helper相同的流程處理,在一段時間内儲存所有公網 IPv4 路由資訊。

與此 PE 相連的其它 PE(包括作為 ASBR 的 PE)和反射 VPNv4 路由的 RR(Route Reflector)在感覺到此 PE 重新開機後,處理流程與 BGP GR 處理過程中的 GR Helper 的處理流程一緻,在一段時間内儲存所有公網 IPv4 路由資訊和 VPNv4 路由資訊。

2、P 發生主備倒換P 處理流程同普通 IGP GR、 LDP GR 或 BGP GR 處理過程中 GR Restarter 的處理流程一樣。

與此 P 相連的 P 或 PE 在感覺到該 P 裝置重新開機後,處理流程同普通 IGP GR、 LDP GR 或 BGPGR 處理過程中 GR Helper 的處理流程一緻,在一段時間内儲存所有公網 IPv4 路由資訊。

3、CE 裝置發生主備倒換CE 裝置處理流程同普通 IGP GR 或 BGP GR 處理過程中 GR Restarter 的處理流程一樣。

與此 CE 裝置相連的 PE 裝置在感覺到 CE 裝置重新開機後,處理流程同普通 IGP GR 或 BGP GR處理過程中 GR Helper 的處理流程一緻,在一段時間内儲存所有私網 IPv4 路由資訊。

六、VPN NSR

在網絡高速發展的今天,三網合一的需求日益迫切,營運商對 IP 網絡的可靠性要求不斷提高, VPN NSR(Non-Stop Routing,不間斷路由)作為高可靠性的解決方案應運而生。

NSR 是系統控制平面發生故障,且存在備用控制平面的場景下,鄰居控制平面不感覺的一種技術,不僅局限于路由信令的鄰居關系不中斷,也包括 MPLS 信令協定,以及其他為滿足業務需求而提供支撐的協定。

VPN NSR 作為可靠性的解決方案,其根本目的都是為了保證使用者業務在裝置故障的時候不受影響或者影響最小。

VPN NSR 在本端主備倒換後不僅實作轉發平面業務不中斷,而且 VPN 路由釋出不中斷,做到斷點續傳。在這個過程中,鄰居關系不會受到影響,對端完全不會感覺本端裝置發生倒換,為 VPN 業務不中斷提供了高可靠性的解決方案。