書接上文,說(shuō)完了VLAN,該VPN隆重登場(chǎng)了。相比于VLAN這種簡(jiǎn)單的局域網(wǎng)技術(shù),VPN可是要復(fù)雜的多。VPN并不是一種協(xié)議或者標(biāo)準(zhǔn),而是一類技術(shù)的統(tǒng)稱,或者更準(zhǔn)確地說(shuō),是用戶跨越廣域網(wǎng)進(jìn)行私有網(wǎng)絡(luò)互聯(lián)這樣一種業(yè)務(wù)形態(tài)。
早期租用DDN專線或者通過(guò)ISDN撥號(hào)來(lái)實(shí)現(xiàn)私有網(wǎng)絡(luò)互聯(lián)是可行的,缺點(diǎn)是站點(diǎn)間的帶寬是固定的,所用電路資源是獨(dú)占的,不夠靈活而且費(fèi)用昂貴。之后,出現(xiàn)了ATM/FR/IP這類基于分組的廣域網(wǎng)技術(shù),克服了由資源獨(dú)占引發(fā)的問(wèn)題,VPN的概念也不過(guò)由于ATM/FR因?yàn)榉N種原因最后敗給了IP,因此現(xiàn)在的VPN技術(shù)基本上都是基于IP的VPN了(MPLS也算是IP的一個(gè)變種)。當(dāng)然,有實(shí)力的話可以自建光纖進(jìn)行互聯(lián),不過(guò)可能也只有像Google這種級(jí)別的公司才玩得轉(zhuǎn)。這個(gè)小節(jié)我們主要來(lái)講一講基于IP的VPN,如不特殊說(shuō)明,以下簡(jiǎn)稱IP VPN為VPN。
這段歷史告訴我們,VPN并不是網(wǎng)絡(luò)大牛們一時(shí)興起,心血來(lái)潮搞的技術(shù)花花腸子,而是因?yàn)檫@是實(shí)打?qū)嵉男枨?,是巨大的市?chǎng),是兵家必爭(zhēng)的利益至高點(diǎn)。這十幾年來(lái),VPN為運(yùn)營(yíng)商帶來(lái)了不可估量的效益,幾乎靠一己之力支撐著運(yùn)營(yíng)商的Internet對(duì)公業(yè)務(wù)。如果說(shuō)VLAN是網(wǎng)絡(luò)虛擬化的鼻祖,那么VPN則真正把網(wǎng)絡(luò)虛擬化作為一個(gè)領(lǐng)域推廣開來(lái)了。
VPN的技術(shù)可謂五花八門,從這個(gè)大類技術(shù)的層面上來(lái)說(shuō),談不到什么具體的幀格式或者包頭,倒是以前面提到的“封裝—尋址”通用技術(shù)模型來(lái)分析VPN技術(shù)非常的貼切,因?yàn)橄胍缭焦W(wǎng)進(jìn)行私網(wǎng)的組網(wǎng),只能通過(guò)封裝后再尋址的方法。圖中,CE是客戶網(wǎng)絡(luò)的邊緣設(shè)備,PE是運(yùn)營(yíng)商網(wǎng)絡(luò)的邊緣設(shè)備,P是核心網(wǎng)中的轉(zhuǎn)發(fā)設(shè)備。Payload可能是二層的幀也可能使三層的數(shù)據(jù)包,這取決于客戶的目標(biāo)數(shù)據(jù)業(yè)務(wù)。Tag就比較靈活了,QinQ中是S-Tag,PBB中是B-MAC + B-VLAN,MPLS VPN中是MPLS Label,IP GRE中是PE的公網(wǎng)IP地址。從這張圖抽象出來(lái)VPN的實(shí)現(xiàn)非常好理解,客戶通過(guò)CE把Payload送出來(lái),PE根據(jù)特定的邏輯確定對(duì)端PE的Tag,進(jìn)行封裝后傳給P網(wǎng)絡(luò),P網(wǎng)絡(luò)根據(jù)Tag尋址到對(duì)端PE,該P(yáng)E解封裝后將Payload原封不動(dòng)地轉(zhuǎn)發(fā)給相關(guān)的CE。
在上述VPN技術(shù)模型中,又可以分為基于標(biāo)簽和基于隧道的技術(shù)。通常來(lái)說(shuō),基于標(biāo)簽的技術(shù)中,標(biāo)簽只負(fù)責(zé)打標(biāo)記而不負(fù)責(zé)轉(zhuǎn)發(fā),如QinQ。而基于隧道的技術(shù)中,轉(zhuǎn)發(fā)需要依賴于PE封裝的數(shù)據(jù)幀頭/數(shù)據(jù)包頭,如MPLS類VPN、GRE等等。其中MPLS類技術(shù)較為特殊,是帶有標(biāo)簽技術(shù)外在特征的隧道技術(shù),而GRE這類需要PE封裝完整的外層包頭的技術(shù),一般稱為Overlay隧道。
講完了技術(shù)模型,概括地講講一些具有代表性的VPN技術(shù)。之所以說(shuō)概括性,是因?yàn)樽髡邔?duì)一些技術(shù)里面的細(xì)節(jié)確實(shí)也不是很清楚,VPN的技術(shù)種類實(shí)在是太繁雜了,光是給VPN類技術(shù)的分類方法就能說(shuō)出七八種來(lái),而每種VPN技術(shù)的細(xì)節(jié)都能夠講上個(gè)幾十頁(yè)的。這里,我們將按照應(yīng)用形式來(lái)對(duì)常見的VPN技術(shù)進(jìn)行梳理和對(duì)比,分為站點(diǎn)對(duì)站點(diǎn)VPN以及遠(yuǎn)程接入VPN。
a)站點(diǎn)對(duì)站點(diǎn)
按照業(yè)務(wù)場(chǎng)景細(xì)分,站點(diǎn)對(duì)站點(diǎn)VPN還可以再具體分為內(nèi)聯(lián)網(wǎng)(Intranet) VPN和外聯(lián)網(wǎng)(Extranet)VPN。兩者的區(qū)別主要在前者聯(lián)的是同一家公司的總部與分支,后者是指公司與外部利益相關(guān)群體。不過(guò)兩者的區(qū)別主要是在與一些訪問(wèn)策略和地址規(guī)劃上的不同,從網(wǎng)絡(luò)虛擬化的角度來(lái)說(shuō)區(qū)別并不大。故此這里的講解將對(duì)兩者等同看待,首先簡(jiǎn)單地介紹一下接下來(lái)會(huì)涉及到的VPN技術(shù)。
QinQ(802.1ad,PB,Provider Bridge),VLAN堆棧技術(shù)。通過(guò)將公網(wǎng)VLAN 標(biāo)簽(S-Tag)封裝在用戶私網(wǎng)VLAN 標(biāo)簽(C-Tag)前,使報(bào)文帶著兩層VLAN Tag穿越公網(wǎng)。PE負(fù)責(zé)增加/剝除4個(gè)字節(jié)的S-Tag,P要求支持802.1q中的Trunk概念,根據(jù)用戶的MAC地址和S-VLAN在公網(wǎng)進(jìn)行2層自學(xué)習(xí)轉(zhuǎn)發(fā)。
PBB(802.1ah,Provider Backbone Bridge),運(yùn)營(yíng)商骨干網(wǎng)橋接技術(shù),屬于一種MACinMAC的隧道技術(shù),可配合QinQ使用。通過(guò)定義雙層MAC地址的幀結(jié)構(gòu),PE將B-MAC和B-Tag封裝在CE數(shù)據(jù)幀前,以P要求支持Trunk概念,根據(jù)B-MAC和B-VLAN在公網(wǎng)進(jìn)行2層自學(xué)習(xí)轉(zhuǎn)發(fā)。
配一張VLAN,QinQ和PBB的格式圖吧,一目了然。
GRE(RFC 2784),通用路由封裝技術(shù),是最早的Overlay隧道技術(shù)。PE封裝外層網(wǎng)絡(luò)層協(xié)議包頭,P為外層網(wǎng)絡(luò)層協(xié)議路由器,根據(jù)外層網(wǎng)絡(luò)目的地址進(jìn)行轉(zhuǎn)發(fā)。
IPSec(RFC 4031)VPN,支持加密的VPN技術(shù)。IPsec VPN工作在IPsec隧道模式,PE封裝外層IP包頭,P可為任意IP路由器,根據(jù)外層公網(wǎng)目的IP進(jìn)行轉(zhuǎn)發(fā)。
BGP/MPLS IP VPN(RFC 2547),使用BGP協(xié)議在公網(wǎng)上發(fā)布VPN路由,使用MPLS在公網(wǎng)上轉(zhuǎn)發(fā)VPN報(bào)文。PE負(fù)責(zé)BGP交互,封裝MPLS頭,P為支持MPLS的路由器,根據(jù)MPLS Label進(jìn)行轉(zhuǎn)發(fā)。
VPWS和VPLS,都屬于MPLS VPN(RFC 4664)。VPWS由有Martini VPWS和Kompella VPWS兩種實(shí)現(xiàn)方式,VPWS由有VPLS-LDP和VPLS-BGP兩種實(shí)現(xiàn)方式。IPLS,是一種特殊的VPLS,只支持對(duì)IP分組的傳輸,CE為主機(jī)或者路由器。
這么多技術(shù),看起來(lái)都眼花,技術(shù)細(xì)節(jié)作者確實(shí)講不動(dòng)了。下面直接從網(wǎng)絡(luò)虛擬化的設(shè)計(jì)原則出發(fā)來(lái)對(duì)這些技術(shù)進(jìn)行對(duì)比。
首先是連通性,包括兩個(gè)方面,一是技技術(shù)所支持的數(shù)據(jù)業(yè)務(wù)類型,二是所支持的流量類型。多說(shuō)無(wú)益,直接上表格。
VPN技術(shù) |
數(shù)據(jù)業(yè)務(wù) |
流量類型 |
QinQ |
二層數(shù)據(jù)幀 |
點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn) |
PBB |
二層數(shù)據(jù)幀 |
點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn) |
GRE |
三層數(shù)據(jù)包 |
點(diǎn)對(duì)點(diǎn)、支持偽廣播 |
IPsec VPN |
三層數(shù)據(jù)包 |
點(diǎn)對(duì)點(diǎn) |
BGP/MPLS IP VPN |
三層數(shù)據(jù)包 |
點(diǎn)對(duì)點(diǎn)、支持偽廣播 |
VPWS |
二層數(shù)據(jù)幀 |
點(diǎn)對(duì)點(diǎn)、偽廣播(有待確認(rèn)) |
VPLS |
二層數(shù)據(jù)幀 |
點(diǎn)對(duì)點(diǎn)、支持偽廣播 |
IPLS |
二層數(shù)據(jù)幀,但是網(wǎng)絡(luò)層只支持IP分組 |
點(diǎn)對(duì)點(diǎn),支持偽廣播 |
其次是安全性。從控制平面和轉(zhuǎn)發(fā)平面的安全性考慮。
VPN技術(shù) |
控制平面 |
數(shù)據(jù)平面 |
QinQ |
無(wú)控制平面 |
依賴于公網(wǎng)配置 |
PBB |
無(wú)控制平面 |
依賴于公網(wǎng)配置 |
GRE |
無(wú)控制平面 |
不依賴于公網(wǎng)配置,提供Key值進(jìn)行認(rèn)證,但不提供加密 |
IPsec VPN |
無(wú)控制平面 |
不依賴于公網(wǎng)配置,提供認(rèn)證和加密 |
BGP/MPLS IP VPN |
路由發(fā)布認(rèn)證,VRF關(guān)聯(lián),路由RT等機(jī)制 |
依賴于公網(wǎng)配置 |
VPWS |
Martini方式無(wú)控制平面,Kompella方式同BGP/MPLS IP VPN |
依賴于公網(wǎng)配置 |
VPLS |
VPLS-LDP方式無(wú)控制平面,VPLS-BGP方式同BGP/MPLS IP VPN |
依賴于公網(wǎng)配置 |
IPLS |
無(wú)控制平面(有待確認(rèn)) |
依賴于公網(wǎng)配置 |
然后是服務(wù)質(zhì)量。廣域網(wǎng)傳輸是VPN技術(shù)轉(zhuǎn)發(fā)速率的瓶頸,這里主要考慮上述VPN技術(shù)在廣域網(wǎng)的傳輸保障機(jī)制。
VPN技術(shù) |
公網(wǎng)QoS |
QinQ |
S-Tag中的PRI |
PBB |
B-Tag中的PRI |
GRE |
無(wú) |
IPsec VPN |
專用廣域網(wǎng)加速設(shè)備 |
BGP/MPLS IP VPN |
MPLS/RSVP TE |
VPWS |
MPLS/RSVP TE |
VPLS |
MPLS/RSVP TE |
IPLS |
MPLS/RSVP TE |
至于可擴(kuò)展性,VPN支持的虛網(wǎng)數(shù)理論上限取決于標(biāo)識(shí)虛網(wǎng)的字段位數(shù),實(shí)際上受限于PE、P設(shè)備上資源的共享和分配。
VPN技術(shù) |
虛網(wǎng)數(shù)量 |
其他因素 |
QinQ |
S-VLAN標(biāo)簽, 4K*4K |
CE為交換機(jī)時(shí),P需要學(xué)習(xí)用戶MAC地址,限制了用戶規(guī)模 |
PBB |
I-SID標(biāo)簽,16million |
P根據(jù)運(yùn)營(yíng)商MAC轉(zhuǎn)發(fā),不需要學(xué)習(xí)用戶MAC地址,比QinQ用戶規(guī)模大 |
GRE |
一般為特定用戶內(nèi)部自用 |
無(wú)明確因素 |
IPsec VPN |
一般為特定用戶內(nèi)部自用 |
無(wú)明確因素 |
BGP/MPLS IP VPN |
理論上無(wú)上限 |
PE數(shù)量,VPN接口數(shù)量,路由條目數(shù)量,LSP數(shù)量等等 |
VPWS |
同上 |
同上 |
VPLS |
同上 |
同上 |
IPLS |
同上 |
同上 |
運(yùn)維自動(dòng)化方面,有控制平面的VPN技術(shù)相對(duì)好一些,沒有控制平面的VPN技術(shù)一般為純靜態(tài)配置,自動(dòng)化較差,見表2。
b)遠(yuǎn)程接入
遠(yuǎn)程接入這種VPN應(yīng)用形式,常見的業(yè)務(wù)場(chǎng)景有兩種。一種是移動(dòng)辦公人員接入企業(yè)私網(wǎng),另一種是用戶希望繞開默認(rèn)的網(wǎng)絡(luò)出口以獲得完整的訪問(wèn)權(quán)限,俗稱“翻墻”。大眾所熟知的VPN基本上等同于“翻墻”,其實(shí)這只是VPN技術(shù)的冰山一角。
相比于站點(diǎn)對(duì)站點(diǎn)VPN,遠(yuǎn)程接入VPN的個(gè)人用戶數(shù)量多而且位置分散。因此,遠(yuǎn)程接入VPN的技術(shù)基本上都是基于隧道的——具有標(biāo)簽性質(zhì)的技術(shù),大多依賴有限的標(biāo)簽資源和公網(wǎng)的配置,而基于Overlay方式的隧道技術(shù)對(duì)于公網(wǎng)來(lái)說(shuō)是完全透明的,具備較強(qiáng)的可擴(kuò)展性和靈活性。
根據(jù)隧道承載的數(shù)據(jù)業(yè)務(wù),遠(yuǎn)程接入VPN可分為二層隧道,三層隧道和高層隧道。其中二層隧道以L2TP(RFC 2661),三層隧道以IPsec(RFC 4031)VPN,高層隧道以SSL(RFC 6101) VPN為目前的主流技術(shù)。下面仍然從網(wǎng)絡(luò)虛擬化的幾個(gè)基本設(shè)計(jì)原則出發(fā),對(duì)三種技術(shù)進(jìn)行對(duì)比。
首先是連通性。老規(guī)矩,直接上表格。其中Overlay隧道的特征決定了這些技術(shù)基本上都是點(diǎn)對(duì)點(diǎn)的,L2TP Multihop(RFC 2661)擴(kuò)展了L2TP點(diǎn)對(duì)多點(diǎn)的能力。
VPN技術(shù) |
數(shù)據(jù)業(yè)務(wù) |
流量類型 |
L2TP |
二層數(shù)據(jù)幀 |
點(diǎn)對(duì)點(diǎn),點(diǎn)對(duì)多點(diǎn) |
IPsec VPN |
三層數(shù)據(jù)包 |
點(diǎn)對(duì)點(diǎn) |
SSL VPN |
主要為web應(yīng)用 |
點(diǎn)對(duì)點(diǎn) |
其次是安全性。遠(yuǎn)程接入的VPN技術(shù)需要直接或者間接地提供對(duì)身份驗(yàn)證和數(shù)據(jù)加密的支持,這同樣是出于業(yè)務(wù)場(chǎng)景的需求。
VPN技術(shù) |
身份驗(yàn)證 |
數(shù)據(jù)加密 |
L2TP |
依賴于PPP實(shí)現(xiàn)PAP/CHAP |
依賴于PPP/IPsec實(shí)現(xiàn) |
IPsec VPN |
AH/ESP |
ESP,通過(guò)IKE協(xié)商加密算法 |
SSL VPN |
SSL握手協(xié)議 |
通過(guò)SSL握手可協(xié)商加密算法 |
然后是服務(wù)質(zhì)量。遠(yuǎn)程接入VPN,在公網(wǎng)上傳輸質(zhì)量的保證只能靠專用設(shè)備加速。另外,L2TP擴(kuò)展了在VPN接入服務(wù)器本地網(wǎng)絡(luò)上的QoS機(jī)制(RFC 2661)。
VPN技術(shù) |
公網(wǎng)QoS |
本地QoS |
L2TP |
無(wú) |
區(qū)分服務(wù)AVP |
IPsec VPN |
專用廣域網(wǎng)加速設(shè)備 |
無(wú)直接支持 |
SSL VPN |
專用廣域網(wǎng)加速設(shè)備 |
無(wú)直接支持 |
相比于站點(diǎn)對(duì)站點(diǎn)VPN技術(shù)的復(fù)雜性,遠(yuǎn)程接入VPN技術(shù)一般都為Overlay方式,屬于公司內(nèi)部的業(yè)務(wù),運(yùn)營(yíng)商是不可見的。其可擴(kuò)展性主要取決于VPN接入服務(wù)器的性能,接運(yùn)維需要通過(guò)手工配置,但不需要經(jīng)常變動(dòng)。
c)其它VPN分類
除了根據(jù)應(yīng)用形式來(lái)對(duì)VPN技術(shù)進(jìn)行分類,還有很多其它的分類方式,下面列出其中常見的幾種分類,以便讀者對(duì)VPN技術(shù)有更多維度的認(rèn)識(shí)。