傳統VPN基于封裝(隧道)技術以及加密模塊技術,可在兩個位置間安全地傳輸數據。這里將主要介紹一下IPSec協議,因為它是目前的VPN中最常使用的。該類型的VPN是位于IP網絡頂層的點對點隧道的覆蓋。
下圖為兩個站點之間建立IPSec隧道的簡單的例子。站點A使用帶有3DES加密技術的IPsec協議同站點B建立連接。
IPsec協議首要的和最明顯的缺點就是性能的下降。讓我們先看看從計算機A是如何發送出一個數據包到計算機B的。計算機A發送的數據包到達了CPE A。CPE A檢查該數據包并判定它需要把該數據包轉發到CPE B。在非VPN環境中,該數據包將在通往CPE B的途中。但是有了Ipsec,CPE A必須在發送出該數據包之前完成幾項任務。首先,加密該數據包。這需要花費時間,從而導致該數據包被延遲(時延),然后,該數據包被封裝到另外一個IP數據包中(封裝),時間上又延遲了。現在該數據包才被發送到服務供應商網絡中。此時可能會發生另外一件事情將導致再次延遲:分割。如果新生成的數據包的長度超過了CPE A和CPE B建立連接時的最大可傳輸單元(MTU)的長度,該數據數據包將需要被分割成兩個數據包。
MTU定義了在連接中傳輸的數據包的最大長度。如果一個數據包的長度超過了MTU值,只要DF位(不分割位)未被置位,該數據包將會被分割成兩個長度更小的數據包。如果DF位被置位,該數據包將被丟棄,將發送一條ICMP信息給數據包的發送源端。一旦該數據包到達了CPE B端,它將被解封和解密,此處又增加了延遲時間。最后,CPE B把該數據包轉發被計算機B。
總的延遲時間取決于所涉及的CPE的個數。低端的CPE設備通常用軟件實現所有的IPsec功能,因而其速度最慢。價格貴些的CPE用硬件實現IPsec功能。一般來說,性能越好,其價格越貴。
從上述例子中可以容易了解到IPSec VPN是網絡的一種覆蓋類型。它位于另一種IP網絡的上層。由于是一種覆蓋,在每個站點之間必須建立一個隧道,這就導致了網絡的低效。我們這里來看看存在的兩種網絡布局結構:中心輻射布局和全網絡布局。
中心輻射布局由一個中心站點同許多遠程站點相連。這是IPSec網的最實用的布局。位于中心站點位置的CPE通常非常昂貴,其價格同相連的遠程站點的數目有關。每個遠程站點建立同中心站點相連的IPSec隧道。如果有20個遠程站點,那么就會建立20個到中心站點的IPSec隧道。
該模式對于遠程到遠程之間的通信不是最優的。任何數據包,如果從一個遠程站點發送到到另外一個遠程站點,首先需要通過中心站點,需要中心站點實現解封,解密,判定轉發路徑,加密,封裝等一系列步驟。這對于在遠程站點中已經進行的封裝/加密工作來說,是多余的。實際上,數據包經過兩個IPSec隧道的傳輸,延遲時間大大地增加了,超過了兩個站點之間直接通信時,數據包的延遲時間。
顯然,解決這個問題的方案是建立一個全網狀布局。但該類型的布局存在不少缺點。最大的缺點是可擴充性。對于全網狀IPSec網絡,需要支持的隧道的數量隨著站點的數目呈幾何級數增加。例如對于一個21個站點構成的中心輻射布局網絡(一個中心站點和20個遠程站點),需要建立210個IPSec隧道。每個站點需要配置能夠處理20個IPSec隧道的CPE,這意味著每個站點需要價格更為昂貴的CPE設備。從某種意義上講,建立一個全網狀布局是不現實的。想象一下由100個站點組成的VPN,它將需要建立4950個隧道。
另外一個考慮是CPE設備,一個供應商需要確保所有的CPE之間能夠兼容。最簡單的方案是在每個位置使用同一種CPE設備。但這并不總是可行。許多場合中,用戶打算重用自己的CPE。另外,對于DSL,同一種CPE設備并沒有在所有不同的CLEC設備之間進行過測試。雖然兼容性目前不是個大問題,但在使用IPSec協議時仍需要考慮。
對于IPSec VPN來說,配置將成為問題,供應商必須配置好每個IPSec隧道。配置單一的一個IPSec隧道不成問題。但網絡結點數量增大時,問題就來了。在建立全網狀的布局時,情況最糟,上例中,配置一個由21個結點組成的網絡需費時數天。對于服務供應商來說,日常維護的難度也很大。
安全性也是需要考慮的。每個CPE可以連接到公共的Internet,并且依賴IPSec隧道來進行站點間的數據傳輸。這樣,每個CPE設備都必須采取諸如防火墻這樣的安全措施,以便保護每個位置的安全。每個防火墻需要對供應商開放,以便訪問有關設備,這本身將是個安全隱患。當網絡規模增大時,管理每個防火墻將變得很困難。想象一下帶有100個結點的VPN,將需要100個防火墻。一旦每次需要修改防火墻策略時,該VPN中的所有100個防火墻都要重新設置。
MPLS VPN
同傳統的VPN不同,MPLS VPN不依靠封裝和加密技術,MPLS VPN依靠轉發表和數據包的標記來創建一個安全的VPN,MPLS VPN的所有技術產生于InternetConnect網絡。
CPE被稱為客戶邊緣路由器(CE)。在InternetConnect網絡中,同CE相連的路由器稱為供應商邊緣路由器(PE)。一個VPN數據包括一組CE路由器,以及同其相連的InternetConnect網中的PE路由器。只有PE路由器理解VPN。CE路由器并不理解潛在的網絡。
CE可以感覺到同一個專用網相連。每個VPN對應一個VPN路由/轉發實例(VRF)。一個VRF定義了同PE路由器相連的客戶站點的VPN成員資格。一個VRF數據包括IP路由表,一個派生的Cisco Express Forwarding (CEF)表,一套使用轉發表的接口,一套控制路由表中信息的規則和路由協議參數。一個站點可以且僅能同一個VRF相聯系。客戶站點的VRF中的數據包含了其所在的VPN中,所有的可能連到該站點的路由。
對于每個VRF,數據包轉發信息存儲在IP路由表和CEF表中。每個VRF維護一個單獨的路由表和CEF表。這些表各可以防止轉發信息被傳輸到VPN之外,同時也能阻止VPN之外的數據包轉發到VPN內不的路由器中。這個機制使得VPN具有安全性。 #p#分頁標題#e#
在每個VPN內部,可以建立任何連接:每個站點可以直接發送IP數據包到VPN中另外一個站點,無需穿越中心站點。一個路由識別器(RD)可以識別每一個單獨的VPN。一個MPLS網絡可以支持成千上萬個VPN。每個MPLS VPN網絡的內部是由供應商(P)設備組成。這些設備構成了MPLS核,且不直接同CE路由器相連。圍繞在P設備周圍的供應商邊緣路由器(PE)可以讓MPLS VPN網絡發揮VPN的作用。P和PE路由器稱為標記交換路由器(LSR)。LSR設備基于標記來交換數據包。
客戶站點可以通過不同的方式連接到PE路由器,例如幀中繼,ATM,DSL和T1方式等等。
三種不同的VPN,分別用Route Distinguishers 10,20和30來表示。
MPLS VPN中,客戶站點運行的是通常的IP協議。它們并不需要運行MPLS,IPSec或者其他特殊的VPN功能。在PE路由器中,路由識別器對應同每個客戶站點的連接。這些連接可以是諸如T1,單一的幀中繼,ATM虛電路,DSL等這樣的物理連接。路由識別器在PE路由器中被配置,是設置VPN站點工作的一部分,它并不在客戶設備上進行配置,對于客戶來說是透明的。
每個MPLS VPN具有自己的路由表,這樣客戶可以重疊使用地址且互不影響。對用RFC 1918建議進行尋址的多種客戶來說,上述特點很有用處。例如,任何數量的客戶都可以在其MPLS VPN中,使用地址為10.1.1.X的網絡。MPLS VPN的一個最大的優點是CPE設備不需要智能化。因為所有的VPN功能是在InternetConnect的核心網絡中實現的,且對CPE是透明的。CPE并不需要理解VPN,同時也不需要支持IPSec。這意味著客戶可以使用價格便宜的CPE,或者甚至可以繼續使用已有的CPE。
時延被降到最低,因為數據包不再經過封裝或者加密。加密之所以不再需要,是因為MPLS VPN可以創建一個專用網,它同幀中繼網絡具備的安全性很相似。因為不需要隧道,所以要創建一個全網狀的VPN網也將變得很容易。事實上,缺省的配置是全網狀布局。站點直接連到PE,之后可以到達VPN中的任何其他站點。如果不能連通到中心站點,遠程站點之間仍然能夠相互通信。
配置MPLS VPN網絡的設備也變得容易了,僅需配置核心網絡,不需訪問CPE。一旦配置好一個站點,在配置其他站點時無需重新配置。因為添加新的站點時,僅需改變所連到的PE的配置。
在MPLS VPN中,安全性可以得到容易地實現。一個封閉的VPN具有內在的安全性,因為它不同Public Internet相連。如果需要訪問Internet,則可以建立一個通道,在該通道上,可放置一個防火墻,這樣就對整個VPN提供安全的連接。管理起來也很容易,因為對于整個VPN來說,只需要維護一種安全策略。
MPLS VPN的另外一個好處是對于一個遠程站點,僅需要一個連接即可。想象一下,帶有一個中心站點和10個遠程站點的傳統幀中繼網,每個遠程站點需要一個幀中繼PVC(永久性虛電路),這意味者需要10個PVC。而在MPLS VPN網中,僅需要在中心站點位置建立一個PVC,這就降低了網絡的成本。


