MPLS Virtual Private Network

由於審覈不能出現微屁恩的簡稱,本文以全稱代之

傳統Virtual Private Network

1.產生

剛開始,爲了實現兩個站點之間跨越公網通信,並保護私網的安全,人們通常採用專線來實現私網的連接,由於專線的缺點,也隨着複用技術的出現,一些新的共享帶寬技術逐漸代替了專線。

          新的共享帶寬的技術有幀中繼、X.25等,這些技術其實是一種邏輯的隔離技術,就好像在兩個站點之間跨越公共網絡建立了專用的隧道,站點通過隧道實現通信。這些技術提高了帶寬利用率,價格相對於專線比較便宜,構成了早起Virtual Private Network網絡的主要技術。

          Virtual Private Network網絡的特點:可以使用公共網絡環境實現私網的連接;不同私網之間的網絡互相不可見。

2.網絡結構

CE:用戶邊緣設備;直接與運營商網絡相連,通常情況下CE感知不到Virtual Private Network的存在,也就不需要支持MPLS。

PE:服務提供商邊緣設備,是運營商的邊緣設備,與CE直接相連。在MPLS網絡中,對Virtual Private Network的所有處理都發生在PE上。

P:服務提供商的骨幹設備,不與CE直接相連,P設備只需要具備基本的MPLS轉發能力就行,不維護Virtual Private Network信息。

3.Virtual Private Network模型

3.1.Overlay Virtual Private Network:

既可以在CE設備上建立隧道,也可以在PE設備上建立隧道

       在CE與CE之間建立隧道,並直接傳遞路由信息,路由協議數據總是在客戶設備之間交換,運營商對客戶網絡一無所知。不同的客戶地址空間可以重疊,安全性非常好;本質是一種靜態Virtual Private Network,無法適應實時網絡變化,當有新增站點時,需要手工建立新增站點與所有站點的連接,配置繁瑣。

       在PE上爲每個Virtual Private Network建立相應的隧道,路由信息在PE與PE之間傳遞,公網中的P設備不知道私網的路由信息。Virtual Private Network的建立和維護由運營商完成,安全性較好;不同的Virtual Private Network用戶不共享相同的地址空間。

特點:客戶路由協議總是在客戶設備之間交換,而運營商對客戶網結構一無所知。

典型的協議:二層——幀中繼;三層——GRE與IPSec;應用層——SSL Virtual Private Network。

3.2.Peer-to-Peer Virtual Private Network

如圖所示,所有Virtual Private Network用戶的CE設備都連接到同一臺PE上,PE與不同的CE之間運行不同的路由協議(或相同協議的不同進程)。由始發PE將路由發送到公網上,在接收端的PE上將路由過濾後再發送給相應的CE設備。

Peer-to-Peer是在CE與PE之間交換私網路由信息,然後由PE將私網路由泄露到公網上,所以必須通過嚴格的路由過濾和選擇機制來控制私網路由的傳播。

特點:在CE設備與PE設備之間交換私網信息,由PE設備將私網信息在運營商網絡中傳播,實現了Virtual Private Network部署及路由發佈的動態性。

上圖爲共享PE的接入方式,也可以採用專用PE的接入方式。運營商爲爲每一個Virtual Private Network單獨準備一臺PE設備,PE和CE之間可以運行任意的路由協議,與其他Virtual Private Network無關。

特點:無需配置ACL,配置複雜度降低;但是代價過於昂貴,而且沒有解決Virtual Private Network客戶地址重疊問題。


MPLS Virtual Private Network

1.產生

兩個客戶的Virtual Private Network存在相同的地址空間,傳統Virtual Private Network網絡結構中的設備無法區分客戶重疊路由信息。而MPLS Virtual Private Network解決了傳統Virtual Private Network技術的固有缺陷——地址空間重疊問題

2.地址重疊問題

主要問題都是與路由相關的特性,我們再考慮BGP擁有的諸多優點,對此產生思路:公共網絡上的Virtual Private Network路由數量龐大,BGP是唯一支持大量路由的協議;BGP可以附加在路由後面的任何信息,並作爲可選屬性傳遞給其他鄰居。

2.1解決:

(1)本地路由衝突問題上,可以通過在同一臺PE設備上爲不同的Virtual Private Network建立單獨的路由,這樣衝突的路由就被隔離開來。 

(2)在路由傳遞過程中,爲不同的Virtual Private Network路由添加不同的標識,以示區別;這些標識作爲BGP屬性進行傳遞。

(3)由於IP報文不可更改,可以在IP報頭前加一些信息。由始發路由器打上標記,接收路由器在收到這些標記的數據包時,根據標記轉發給正確的Virtual Private Network。

<1>本地路由衝突

專用方式:

專用PE設備分工明確,每個PE設備只保存自己的Virtual Private Network路由,P設備只保存公網路由。因此解決共享PE設備上地址空間重疊的思路是:將專用PE設備與P設備的功能在同一臺PE設備上完成並實現Virtual Private Network路由的隔離。

共享方式:

在共享PE設備上使用VRF技術將重疊的路由隔離:每個Virtual Private Network的路由放入自己對應的Virtual Private Network Routing Table中,就像是專用PE一樣,這個Routing Table 就稱爲VRF,即Virtual Private Network路由轉發表。每個VRF都對應一個Virtual Private Network instance,Virtual Private Network用戶對應的接口綁定到Virtual Private Network instance中。PE設備在維護多個Virtual Private Network Routing Table時,同時還維護一個公網的路由表。

<2>網絡傳遞中區分衝突路由

將Virtual Private Network路由路由發佈到全局路由表之前,使用一個全局唯一的標識和路由綁定,以區分衝突的私網路由,這個標識稱爲RD值(Route Distinguisher),由8字節組成,配置時同一個PE設備上分配給每個Virtual Private Network的RD必須唯一。RD用於區分使用相同前綴的IPV4地址,增加了RD值的IPV4地址稱爲Virtual Private Networkv4地址。

運營商採用BGP協議作爲承載Virtual Private Network路由的協議,並將BGP協議進行了擴展,稱爲MP-BGP。PE從CE接收到客戶的的IPv4私網路由後,將客戶私網路由添加各種標識信息後變爲Virtual Private Networkv4路由放入MP-BGP的Virtual Private Networkv4路由表中,並通過MP-BGP協議在公網上傳遞。

<3>路由的引入問題

如圖所示:分部1和分部2中存在1.1/32和2.1/32的私網地址,公司希望實現各分部只能與總部通信,分部之間不能相互通信;分部1使用Virtual Private Network RD值爲1:1,分部2的Virtual Private Network RD值爲2:2。但是使用RD解決路由引入問題時,會出現問題,總部的RD值設置爲多少呢?RD值在本地上是唯一的,並且只能配置一個,設置爲多少都不太合適。

解決:

RT屬性用於將路由正確引入Virtual Private Network,有兩類Virtual Private Network target屬性,import target和export target,分別用於路由的導出與導入;RT封裝在BGP的擴展Community屬性中,在路由傳遞中作爲可選屬性進行傳遞;Export target:本端的路由在導出VRF,轉變爲Virtual Private Networkv4路由時,標記該屬性,Import target:對端收到路由時,檢查其Export Target屬性,當此屬性與PE上某個Virtual Private Network實例的Import target匹配時,PE就把他加入到該Virtual Private Network實例中。

分配給分部1的export target爲1:1,import target爲3:3;分部2的export target爲2:2,import target爲3:3;總部的export target爲3:3,import target爲1:1,2:2。這樣PE2收到對端PE1發送的Virtual Private Networkv4的路由後,檢查其export target,這樣路由就會被引入總部的VRF。

優化:

使用RT實現路由的正確引入原則:本端export target=對端import target,本端import target=對端export target。

如下圖所示:所有分部使用的import target爲3:12,export target爲12:3;而總部的值恰好相反,這就能實現分部與總部通信的需求。

<4>數據轉發過程中的衝突路由的查找

因爲數據包沒有攜帶任何標識,所以在ICMP的數據包到達PE1設備時,PE1並不知道該查找哪個Virtual Private Network的路由表找到正確的目的地址。

解決:

1、在數據包中增加標識信息,並且使用RD作爲區分數據包所屬Virtual Private Network的標識符,數據轉發時也攜帶RD信息。缺點是由於RD由8字節組成,額外增大數據包,導致轉發效率降低。

2、藉助公網中已經實施的MPLS協議建立的標籤隧道,採用標籤作爲數據包正確轉發的標識,MPLS支持標籤嵌套,可以將數據包所屬Virtual Private Network的標籤封裝在公網標籤內。


      Outer MPLS Label在MPLS Virtual Private Network中被稱爲公網標籤,用於MPLS網絡中轉發數據。一般公網標籤會在到達PE設備時已被倒數第二跳剝掉,漏出Inner Label。Inner MPLS Label在MPLS Virtual Private Network中被稱爲私網標籤,用於將數據正確發送到相應的Virtual Private Network中,PE依靠Inner Label區分數據包屬於哪個Virtual Private Network。

工作原理

MPLS Virtual Private Network路由傳遞過程:

(1)CE與PE之間的路由交換;

PE與CE之間可以通過靜態路由協議交換路由信息,也可以通過動態路由協議(如:OSPF、ISIS、BGP等)交換路由信息。

(2)VRF路由注入MP-BGP的過程;

VRF中的IPv4路由被添加上RD,RT與標籤等信息成爲Virtual Private Networkv4路由方入到MP-BGP的路由表中,並且通過MP-BGP協議在PE設備之間交換路由信息。

(3)公網標籤的分配過程;

MPLS協議在運營商網絡分配公網標籤,建立標籤隧道,實現私網數據在公網上的轉發。PE之間運行的MP-BGP協議爲Virtual Private Network 路由分配私網標籤,PE設備根據私網標籤將數據正確轉發給相應的Virtual Private Network。

(4)MP-BGP路由注入VRF的過程;

PE2在接收到PE1發送的Virtual Private Networkv4路由後將檢查路由的擴展團體屬性將攜帶Export Target值與本端Virtual Private Network的import target值比較,數值相同則將路由引入Virtual Private Network路由表,實現路由的正確導入。

MPLS Virtual Private Network的數據轉發過程:

(1)CE設備到PE設備的數據轉發;

數據從CE4轉發給PE2,在PE2設備上需要查找Virtual Private Network2的路由表,確定數據進行標籤轉發後,在查找下一跳與出接口,根據分配的標籤進行MPLS的封裝。

(2)公網設備上的數據轉發;

數據包在公網上轉發時通過MPLS協議建立好的標籤隧道將數據報文轉發到PE1。轉發過程中只改變公網標籤。

注:PE2收到Virtual Private Network用戶的數據包後,封裝上MPLS的標籤,將私網數據通過MPLS建立的標籤隧道進行轉發,PE2上數據包封裝的公網標籤爲1030,轉給P設備後,查找LFIB,進行標籤爲1030的數據包,對於出標籤爲3,即將公網標籤剝離,將數據發給PE1,PE1收到的僅爲內層私網標籤的數據包。

(3)PE設備到CE設備的數據轉發。

PE1收到剝離公網標籤的數據包後,根據私網標籤查找轉發數據包的下一跳,將數據包正確發送給相應Virtual Private Network客戶。這裏注意數據的轉發是雙向的,但是過程類似,這裏就不在贅述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章