什么是VPN?
VPN屬于遠程訪問技術(shù),簡單地說就是利用公用網(wǎng)絡(luò)架設(shè)專用網(wǎng)絡(luò)。例如某公司員工出差到外地,他想訪問企業(yè)內(nèi)網(wǎng)的服務(wù)器資源,這種訪問就屬于遠程訪問。
在傳統(tǒng)的企業(yè)網(wǎng)絡(luò)配置中,要進行遠程訪問,傳統(tǒng)的方法是租用DDN(數(shù)字數(shù)據(jù)網(wǎng))專線或幀中繼,這樣的通訊方案必然導(dǎo)致高昂的網(wǎng)絡(luò)通訊和維護費用。對于移動用戶(移動辦公人員)與遠端個人用戶而言,一般會通過撥號線路(Internet)進入企業(yè)的局域網(wǎng),但這樣必然帶來安全上的隱患。
讓外地員工訪問到內(nèi)網(wǎng)資源,利用VPN的解決方法就是在內(nèi)網(wǎng)中架設(shè)一臺VPN服務(wù)器。外地員工在當(dāng)?shù)剡B上互聯(lián)網(wǎng)后,通過互聯(lián)網(wǎng)連接VPN服務(wù)器,然后通過VPN服務(wù)器進入企業(yè)內(nèi)網(wǎng)。為了保證數(shù)據(jù)安全,VPN服務(wù)器和客戶機之間的通訊數(shù)據(jù)都進行了加密處理。有了數(shù)據(jù)加密,就可以認為數(shù)據(jù)是在一條專用的數(shù)據(jù)鏈路上進行安全傳輸,就如同專門架設(shè)了一個專用網(wǎng)絡(luò)一樣,但實際上VPN使用的是互聯(lián)網(wǎng)上的公用鏈路,因此VPN稱為虛擬專用網(wǎng)絡(luò),其實質(zhì)上就是利用加密技術(shù)在公網(wǎng)上封裝出一個數(shù)據(jù)通訊隧道。有了VPN技術(shù),用戶無論是在外地出差還是在家中辦公,只要能上互聯(lián)網(wǎng)就能利用VPN訪問內(nèi)網(wǎng)資源,這就是VPN在企業(yè)中應(yīng)用得如此廣泛的原因。
(以上是度娘來的)
------------------------------------------------華麗的分割線------------------------------------------------
綜上所述,我們知道了VPN到底是什么東西,那我們下面就來淺談一下VPN的種類和具體用途
很多人以為VPN就是用來科學(xué)上網(wǎng),但是殊不知其實VPN的出現(xiàn)只是用于公司中加密傳輸數(shù)據(jù)而用,但是到了某些人手里就成了不可描述的工具。
好了!廢話不多說,步入正題
今天要談的幾個VPN的種類:IPSec、GRE、L2TP、MPLS VPN
當(dāng)然了,還有很多種類,就請大家自行度娘了
第一種IPSec
IPSec(IP Security) VPN一般部署在企業(yè)出口設(shè)備之間,通過加密與驗證等方式,實現(xiàn)了數(shù)據(jù)來源驗證、數(shù)據(jù)加密、數(shù)據(jù)完整性保證和抗重放等功能。
數(shù)據(jù)來源驗證:接收方驗證發(fā)送方身份是否合法。
數(shù)據(jù)加密:發(fā)送方對數(shù)據(jù)進行加密,以密文的形式在Internet上傳送,接收方對接收的加密數(shù)據(jù)進行解密后處理或直接轉(zhuǎn)發(fā)。
數(shù)據(jù)完整性:接收方對接收的數(shù)據(jù)進行驗證,以判定報文是否被篡改。
抗重放:接收方拒絕舊的或重復(fù)的數(shù)據(jù)包,防止惡意用戶通過重復(fù)發(fā)送捕獲到的數(shù)據(jù)包所進行的攻擊。
IPSec使用的協(xié)議
IPSec不是一個單獨的協(xié)議,它給出了IP網(wǎng)絡(luò)上數(shù)據(jù)安全的一整套體系結(jié)構(gòu),包括AH(Authentication Header)、ESP(Encapsulating Security Payload)、IKE(Internet Key Exchange)等協(xié)議。
IPSec使用認證頭AH(Authentication Header)和封裝安全載荷ESP(Encapsulating Security Payload)兩種安全協(xié)議來傳輸和封裝數(shù)據(jù),提供認證或加密等安全服務(wù)。
AH和ESP協(xié)議提供的安全功能依賴于協(xié)議采用的驗證、加密算法。
AH僅支持認證功能,不支持加密功能。ESP支持認證和加密功能。
安全協(xié)議提供認證或加密等安全服務(wù)需要有秘鑰的存在。
秘鑰交換的方式有兩種:
帶外共享密鑰:在發(fā)送、接收設(shè)備上手工配置靜態(tài)的加密、驗證密鑰。雙方通過帶外共享的方式(例如通過電話或郵件方式)保證密鑰一致性。這種方式的缺點是可擴展性差,在點到多點組網(wǎng)中配置密鑰的工作量成倍增加。另外,為提升網(wǎng)絡(luò)安全性需要周期性修改密鑰,這種方式下也很難實施。
通過IKE協(xié)議自動協(xié)商密鑰:IKE建立在Internet安全聯(lián)盟和密鑰管理協(xié)議ISAKMP定義的框架上,采用DH(Diffie-Hellman)算法在不安全的網(wǎng)絡(luò)上安全地分發(fā)密鑰。這種方式配置簡單,可擴展性好,特別是在大型動態(tài)的網(wǎng)絡(luò)環(huán)境下此優(yōu)點更加突出。同時,通信雙方通過交換密鑰交換材料來計算共享的密鑰,即使第三方截獲了雙方用于計算密鑰的所有交換數(shù)據(jù),也無法計算出真正的密鑰。
IPSec原理
IPSec隧道建立過程中需要協(xié)商IPSec SA(Security Association,安全聯(lián)盟),IPSec SA一般通過IKE協(xié)商生成。
SA由一個三元組來唯一標(biāo)識,這個三元組包括安全參數(shù)索引SPI(Security Parameter Index)、目的IP地址和使用的安全協(xié)議號(AH或ESP)。其中,SPI是為唯一標(biāo)識SA而生成的一個32位比特的數(shù)值,它在AH和ESP頭中傳輸。在手工配置SA時,需要手工指定SPI的取值。使用IKE協(xié)商產(chǎn)生SA時,SPI將隨機生成。
SA是單向的邏輯連接,因此兩個IPSec對等體之間的雙向通信,最少需要建立兩個SA來分別對兩個方向的數(shù)據(jù)流進行安全保護。
KE作為秘鑰協(xié)商協(xié)議,存在兩個版本:IKEv1和IKEv2,本課程采用IKEv1為例進行介紹,IKEv2內(nèi)容可參考產(chǎn)品文檔對應(yīng)內(nèi)容。
IKEv1協(xié)商階段1的目的是建立IKE SA。IKE SA建立后對等體間的所有ISAKMP消息都將通過加密和驗證,這條安全通道可以保證IKEv1第二階段的協(xié)商能夠安全進行。IKE SA是一個雙向的邏輯連接,兩個IPSec對等體間只建立一個IKE SA。
IKEv1協(xié)商階段2的目的就是建立用來安全傳輸數(shù)據(jù)的IPSec SA,并為數(shù)據(jù)傳輸衍生出密鑰。該階段使用IKEv1協(xié)商階段1中生成的密鑰對ISAKMP消息的完整性和身份進行驗證,并對ISAKMP消息進行加密,故保證了交換的安全性。
IKE協(xié)商成功意味著雙向的IPSec隧道已經(jīng)建立,可以通過ACL方式或者安全框架方式定義IPSec“感興趣流”,符合感興趣流流量特征的數(shù)據(jù)都將被送入IPSec隧道進行處理。
--------------------------------------------------------------------------------------------------
第二種GRE
通用路由封裝協(xié)議(General Routing Encapsulation,GRE)是一種三層VPN封裝技術(shù)。GRE可以對某些網(wǎng)絡(luò)層協(xié)議(如IPX、IPv4、IPv6等)的報文進行封裝,使封裝后的報文能夠在另一種網(wǎng)絡(luò)中(如IPv4)傳輸,從而解決了跨越異種網(wǎng)絡(luò)的報文傳輸問題。
如圖所示,通過在IPv4網(wǎng)絡(luò)上建立GRE隧道,解決了兩個IPv6網(wǎng)絡(luò)的通信問題。
GRE還具備封裝組播報文的能力。由于動態(tài)路由協(xié)議中會使用組播報文,因此更多時候GRE會在需要傳遞組播路由數(shù)據(jù)的場景中被用到,這也是GRE被稱為通用路由封裝協(xié)議的原因。
GRE的原理
GRE構(gòu)成要素分為3個部分:乘客協(xié)議、封裝協(xié)議和運輸協(xié)議。
乘客協(xié)議是指用戶在傳輸數(shù)據(jù)時所使用的原始網(wǎng)絡(luò)協(xié)議。
封裝協(xié)議的作用就是用來“包裝”乘客協(xié)議對應(yīng)的報文,使原始報文能夠在新的網(wǎng)絡(luò)中傳輸。
運輸協(xié)議是指被封裝以后的報文在新網(wǎng)絡(luò)中傳輸時所使用的網(wǎng)絡(luò)協(xié)議。
隧道接口(Tunnel Interface)是為實現(xiàn)報文的封裝而提供的一種點對點類型的虛擬接口,與Loopback接口類似,都是一種邏輯接口。
如圖所示,乘客協(xié)議為IPv6,封裝協(xié)議為GRE,運輸協(xié)議為IPv4。整體轉(zhuǎn)發(fā)流程如下:
1、當(dāng)R1收到IP1發(fā)來的IPv6數(shù)據(jù)包,查詢設(shè)備路由表,發(fā)現(xiàn)出接口是隧道接口,則將此報文發(fā)給隧道接口處理。
2、隧道接口給原始報文添加GRE頭部,然后根據(jù)配置信息,給報文加上IP頭。該IP頭的源地址就是隧道源地址,IP頭的目的地址就是隧道目的地址。
3、封裝后的報文在IPv4網(wǎng)絡(luò)中進行普通的IPv4路由轉(zhuǎn)發(fā),最終到達目的地R2。
4、解封裝過程和封裝過程相反,這里不再贅述。
基于IPSec的GRE
GRE的主要缺點是不支持加密和認證,數(shù)據(jù)的安全傳輸?shù)貌坏胶芎玫谋U稀?
IPSec的主要缺點是只支持IP協(xié)議,且不支持組播。
可通過部署GRE Over IPSec結(jié)合兩種VPN技術(shù)的優(yōu)點。
第三種L2TP
L2TP是虛擬私有撥號網(wǎng)VPDN(Virtual Private Dial-up Network)隧道協(xié)議的一種,它擴展了點到點協(xié)議PPP的應(yīng)用,是一種在遠程辦公場景中為出差員工或企業(yè)分支遠程訪問企業(yè)內(nèi)網(wǎng)資源提供接入服務(wù)的VPN。
L2TP組網(wǎng)架構(gòu)中包括LAC(L2TP Access Concentrator,L2TP訪問集中器)和LNS(L2TP Network Server,L2TP網(wǎng)絡(luò)服務(wù)器)
VPDN是指利用公共網(wǎng)絡(luò)(如ISDN和PSTN)的撥號功能及接入網(wǎng)來實現(xiàn)虛擬專用網(wǎng),為企業(yè)、小型ISP、移動辦公人員提供接入服務(wù)。VPDN采用專用的網(wǎng)絡(luò)加密通信協(xié)議,在公共網(wǎng)絡(luò)上為企業(yè)建立安全的虛擬專網(wǎng)
企業(yè)駐外機構(gòu)和出差人員可從遠程經(jīng)由公共網(wǎng)絡(luò),通過虛擬加密隧道實現(xiàn)和企業(yè)總部之間的網(wǎng)絡(luò)連接,而公共網(wǎng)絡(luò)上其它用戶則無法穿過虛擬隧道訪問企業(yè)網(wǎng)內(nèi)部的資源。VPDN隧道協(xié)議有多種,目前使用最廣泛的是L2TP。
LAC是網(wǎng)絡(luò)上具有PPP和L2TP協(xié)議處理能力的設(shè)備。LAC負責(zé)和LNS建立L2TP隧道連接。在不同的組網(wǎng)環(huán)境中,LAC可以是不同的設(shè)備,可以是一臺網(wǎng)關(guān)設(shè)備,也可以是一臺終端設(shè)備。LAC可以發(fā)起建立多條L2TP隧道使數(shù)據(jù)流之間相互隔離。
LNS是LAC的對端設(shè)備,即LAC和LNS建立了L2TP隧道;LNS位于企業(yè)總部私網(wǎng)與公網(wǎng)邊界,通常是企業(yè)總部的網(wǎng)關(guān)設(shè)備。
L2TP協(xié)議消息
L2TP協(xié)議包含兩種類型的消息,控制消息和數(shù)據(jù)消息,消息的傳輸在LAC和LNS之間進行。
控制消息用于L2TP隧道和會話連接的建立、維護和拆除。
數(shù)據(jù)消息用于封裝PPP數(shù)據(jù)幀并在隧道上傳輸。
控制消息
用于L2TP隧道和會話連接的建立、維護和拆除。在控制消息的傳輸過程中,使用消息丟失重傳和定時檢測隧道連通性等機制來保證控制消息傳輸?shù)目煽啃?,支持對控制消息的流量控制和擁塞控制?
控制消息承載在L2TP控制通道上,控制通道實現(xiàn)了控制消息的可靠傳輸,將控制消息封裝在L2TP報頭內(nèi),再經(jīng)過IP網(wǎng)絡(luò)傳輸。
數(shù)據(jù)消息
用于封裝PPP數(shù)據(jù)幀并在隧道上傳輸。數(shù)據(jù)消息是不可靠的傳輸,不重傳丟失的數(shù)據(jù)報文,不支持對數(shù)據(jù)消息的流量控制和擁塞控制。
數(shù)據(jù)消息攜帶PPP幀承載在不可靠的數(shù)據(jù)通道上,對PPP幀進行L2TP封裝,再經(jīng)過IP網(wǎng)絡(luò)傳輸。
L2TP工作原理
L2TP主要可分為以下三種工作場景,其工作過程并不相同:
?NAS-Initiated場景:撥號用戶通過NAS訪問企業(yè)內(nèi)網(wǎng) ?Client-Initiated場景:移動辦公用戶訪問企業(yè)內(nèi)網(wǎng)
?Call-LNS場景:通過LAC自主撥號實現(xiàn)企業(yè)內(nèi)網(wǎng)互連
NAS-Initiated場景:由遠程撥號用戶發(fā)起,遠程系統(tǒng)通過PSTN/ISDN撥入LAC,由LAC通過Internet向LNS發(fā)起建立隧道連接請求。撥號用戶地址由LNS分配;對遠程撥號用戶的驗證與計費既可由LAC側(cè)的代理完成,也可在LNS完成。
用戶必須采用PPP的方式接入到Internet,也可以是PPPoE等協(xié)議。
運營商的接入設(shè)備(主要是BAS設(shè)備)需要開通相應(yīng)的VPN服務(wù)。用戶需要到運營商處申請該業(yè)務(wù)。
L2TP隧道兩端分別駐留在LAC側(cè)和LNS側(cè),且一個L2TP隧道可以承載多個會話。
Client-Initialized場景:直接由LAC客戶(指可在本地支持L2TP協(xié)議的用戶)發(fā)起。客戶需要知道LNS的IP地址。LAC客戶可直接向LNS發(fā)起隧道連接請求,無需再經(jīng)過一個單獨的LAC設(shè)備。在LNS設(shè)備上收到了LAC客戶的請求之后,根據(jù)用戶名、密碼進行驗證,并且給LAC客戶分配私有IP地址。
用戶需要安裝L2TP的拔號軟件。部分操作系統(tǒng)自帶L2TP客戶端軟件。
用戶上網(wǎng)的方式和地點沒有限制,不需ISP介入。?L2TP隧道兩端分別駐留在用戶側(cè)和LNS側(cè),一個L2TP隧道承載一個L2TP會話。
該場景建立過程如下:
1、移動辦公用戶與LNS建立L2TP隧道。
2、移動辦公用戶與LNS建立L2TP會話:移動辦公用戶在第3步會與LNS間建立PPP連接,L2TP會話用來記錄和管理它們之間的PPP連接狀態(tài)。因此,在建立PPP連接以前,隧道雙方需要為PPP連接預(yù)先協(xié)商出一個L2TP會話。會話中攜帶了移動辦公用戶的LCP協(xié)商信息和用戶認證信息,LNS對收到的信息認證通過后,通知移動辦公用戶會話建立成功。L2TP會話連接由會話ID進行標(biāo)識。
3、移動辦公用戶與LNS建立PPP連接。移動辦公用戶通過與LNS建立PPP連接獲取LNS分配的企業(yè)內(nèi)網(wǎng)IP地址。
4、移動辦公用戶發(fā)送業(yè)務(wù)報文訪問企業(yè)總部服務(wù)器
Call-LNS場景:L2TP除了可以為出差員工提供遠程接入服務(wù)以外,還可以進行企業(yè)分支與總部的內(nèi)網(wǎng)互聯(lián),實現(xiàn)分支用戶與總部用戶的互訪。一般是由分支路由器充當(dāng)LAC與LNS建立L2TP隧道,這樣就可實現(xiàn)分支與總部網(wǎng)絡(luò)之間的數(shù)據(jù)通過L2TP隧道互通。
基于IPSec的L2TP
當(dāng)企業(yè)對數(shù)據(jù)和網(wǎng)絡(luò)的安全性要求較高時,L2TP無法為報文傳輸提供足夠的保護。這時可以和IPSec功能結(jié)合使用,保護傳輸?shù)臄?shù)據(jù),有效避免數(shù)據(jù)被截取或攻擊。
企業(yè)出差用戶和總部通信,使用L2TP功能建立VPN連接,總部部署為LNS對接入的用戶進行認證。當(dāng)出差用戶需要向總部傳輸高機密信息時,L2TP無法為報文傳輸提供足夠的保護,這時可以和IPSec功能結(jié)合使用,保護傳輸?shù)臄?shù)據(jù)。在出差用戶的PC終端上運行撥號軟件,將數(shù)據(jù)報文先進行L2TP封裝,再進行IPSec封裝,發(fā)往總部。在總部網(wǎng)關(guān),部署IPSec策略,最終還原數(shù)據(jù)。這種方式IPSec功能會對所有源地址為LAC、目的地址為LNS的報文進行保護。
----------------------------------------------------------------------------------------------
第四種MPLS VPN
MPLS是一種利用標(biāo)簽(Label)進行轉(zhuǎn)發(fā)的技術(shù),最初為了提高IP報文轉(zhuǎn)發(fā)速率而被提出,現(xiàn)主要應(yīng)用于VPN和流量工程、QoS等場景。
根據(jù)部署的不同,MPLS VPN可分為MPLS L2 VPN或者MPLS L3 VPN。
企業(yè)可以自建MPLS專網(wǎng)也可以通過租用運營商MPLS專網(wǎng)的方式獲得MPLS VPN接入服務(wù)。
MPLS VPN網(wǎng)絡(luò)一般由運營商搭建,VPN用戶購買VPN服務(wù)來實現(xiàn)用戶網(wǎng)絡(luò)之間(圖中的分公司和總公司)的路由傳遞、數(shù)據(jù)互通等。
基本的MPLS VPN網(wǎng)絡(luò)架構(gòu)由CE(Customer Edge)、PE(Provider Edge)和P(Provider)三部分組成:
CE:用戶網(wǎng)絡(luò)邊緣設(shè)備,有接口直接與運營商網(wǎng)絡(luò)相連。CE可以是路由器或交換機,也可以是一臺主機。通常情況下,CE“感知”不到VPN的存在,也不需要支持MPLS。
PE:運營商邊緣路由器,是運營商網(wǎng)絡(luò)的邊緣設(shè)備,與CE直接相連。在MPLS網(wǎng)絡(luò)中,對VPN的所有處理都發(fā)生在PE上,對PE性能要求較高。
P:運營商網(wǎng)絡(luò)中的骨干路由器,不與CE直接相連。P設(shè)備只需要具備基本MPLS轉(zhuǎn)發(fā)能力,不維護VPN相關(guān)信息。
最后做個總結(jié)
VPN技術(shù)擁有安全、廉價、支持移動業(yè)務(wù)、靈活等一系列優(yōu)勢,已經(jīng)成為現(xiàn)網(wǎng)中部署最為廣泛的一類技術(shù)。
本文從VPN基本概念與分類出發(fā),簡單介紹了如下幾類常見VPN技術(shù):
IPSec VPN:是一系列為IP網(wǎng)絡(luò)提供安全性的協(xié)議和服務(wù)的集合,為IP網(wǎng)絡(luò)提供安全的傳輸。
GRE VPN:提供了將一種協(xié)議的報文封裝在另一種協(xié)議報文中的機制,解決異種網(wǎng)絡(luò)的傳輸問題。
L2TP VPN:是一種能夠提供移動用戶遠程接入服務(wù)的二層VPN技術(shù)。
MPLS VPN:一種通過標(biāo)簽交換技術(shù),實現(xiàn)站點與站點之間互聯(lián)的VPN技術(shù)。