劉冬梅 張燕春 陳常嘉
摘 要 當(dāng)前,兩種新興的VPN技術(shù):BGP/MPLS VPN和IPSec VPN越來越受到人們的關(guān)注。本文分別討論了基于BGP/MPLS和IPSec來提供VPN業(yè)務(wù)的機(jī)制,評價了兩種VPN解決方案,為網(wǎng)絡(luò)管理者評估這兩種方案提出了指導(dǎo)方針。
關(guān)鍵詞 MPLS IPSec VPN
1 簡介
目前,兩種既各具特點又具有一定互補(bǔ)性的VPN(虛擬專用網(wǎng))架構(gòu)正逐漸在提供新興服務(wù)的基礎(chǔ)網(wǎng)絡(luò)領(lǐng)域大行其道,這兩種VPN就是融BGP(邊界網(wǎng)關(guān)協(xié)議)和MPLS(多協(xié)議標(biāo)記交換)技術(shù)的VPN和基于IPSec的VPN。
RFC 2547定義了允許服務(wù)提供商使用其IP骨干網(wǎng)為用戶提供VPN服務(wù)的一種機(jī)制。RFC 2547也被稱為BGP/MPLS VPN,因為BGP被用來在提供商骨干網(wǎng)中發(fā)布VPN路由信息,而MPLS被用來將VPN業(yè)務(wù)從一個VPN站點轉(zhuǎn)發(fā)至另一個站點。BGP/MPLS VPN能夠利用公用骨干網(wǎng)絡(luò)強(qiáng)大的傳輸能力,降低企業(yè)內(nèi)部網(wǎng)絡(luò)/Internet的建設(shè)成本,極大地提高用戶網(wǎng)絡(luò)運(yùn)營和管理的靈活性,同時能夠滿足用戶對信息傳輸安全性、實時性、寬頻帶和方便性的需要。
IPSec是由IETF 的IPSec 工作組定義的一種開放源代碼框架。IPSec 的工作組對數(shù)據(jù)源認(rèn)證、數(shù)據(jù)完整性、重播保護(hù)、密鑰管理以及數(shù)據(jù)機(jī)密性等主要的有關(guān)方面定義了特定協(xié)議。IPSec通過激活系統(tǒng)所需要的安全協(xié)議、確定用于服務(wù)的算法及所要求的密鑰來提供安全服務(wù)。由于這些服務(wù)在IP層提供,能被更高層次的協(xié)議所利用(如TCP、UDP、ICMP、BGP等),并且對于應(yīng)用程序和終端用戶來說是透明的,所以,應(yīng)用和終端用戶不需要更改程序和進(jìn)行安全方面的專門培訓(xùn),同時對現(xiàn)有網(wǎng)絡(luò)的改動也最小。
2 BGP/MPLS VPN體系結(jié)構(gòu)
RFC 2547中定義了三種類型的路由器:CE(用戶網(wǎng)邊緣路由器)在用戶側(cè)為用戶所有,接收和分發(fā)用戶網(wǎng)絡(luò)路由,CE連接到提供商的PE(骨干網(wǎng)邊緣路由器);PE處理VPN-IPv4路由,這是BGP/MPLS VPN的核心;位于骨干網(wǎng)核心的P(骨干網(wǎng)核心路由器)負(fù)責(zé)MPLS包的轉(zhuǎn)發(fā)。
VPN是若干個用戶站點的集合,而站點是VPN中一個孤立的IP網(wǎng)絡(luò),比如可以是公司總部或分支機(jī)構(gòu)等。用戶接入BGP/MPLS VPN的方式是每個站點提供一個或多個CE同骨干網(wǎng)PE的連接,每個站點在PE中由各個VRF(虛擬路由轉(zhuǎn)發(fā)實例)來表示,它包含了與一個站點相關(guān)的路由表、轉(zhuǎn)發(fā)表、接口、路由實例以及路由策略等。PE上的接口可以綁定到唯一一個VRF上,一個VRF也可以被綁定到多個接口上,但PE之間不能交換VRF信息。
當(dāng)邊緣設(shè)備在兩個VPN站點使用相同的地址前綴,就會在路由解析時出現(xiàn)沖突,BGP/MPLS VPN使用VPN-IPv4地址族和MP-BGP(多協(xié)議擴(kuò)展BGP)來解決這一問題。一個VPN-IPv4地址(12字節(jié))是由8字節(jié)的RD(路由標(biāo)示)和4字節(jié)的IPv4地址組成。這樣就可以把相同的地址前綴翻譯成不同的VPN-IPv4地址,也就可以分別為每個VPN站點生成與該VPN-IPv4地址對應(yīng)的不同路由。
BGP/MPLS VPN中有兩種重要的數(shù)據(jù)流,一種是進(jìn)行路由分發(fā)和LSP(標(biāo)記轉(zhuǎn)發(fā)路徑)確定的控制流,另一種是用戶的VPN業(yè)務(wù)流。存在兩種控制機(jī)制,一種負(fù)責(zé)不同PE間路由信息的交換,另一種負(fù)責(zé)建立通過提供商骨干網(wǎng)的LSP。
路由分發(fā)基于BGP的擴(kuò)展共同體屬性,以目的路由為基準(zhǔn)進(jìn)行過濾。當(dāng)一條VPN路由插入到BGP中后,VPN路由目標(biāo)擴(kuò)展共同體屬性就與其相關(guān)聯(lián),這些都來源于路由學(xué)習(xí)建立的VRF相關(guān)BGP出口列表。每一個PE也包含與每一個VRF對應(yīng)的入口列表,入口列表類似于路由器中允許接入VRF的ACL定義。例如,PE中某一條特定VRF的入口列表包含目的接口A和C,但不包含B,則包含接口A和C的VPN路由能夠接入VRF,B的則不能。
VPN隧道的LSP的建立可以通過LDP或RSVP來完成。LDP在PE之間建立盡力而為的LSP,當(dāng)VPN需要QoS時,則必須通過RSVP建立具有QoS能力的路由LSP。
路由器CE1向CE2所在的網(wǎng)絡(luò)發(fā)送數(shù)據(jù)。首先轉(zhuǎn)發(fā)到默認(rèn)網(wǎng)關(guān)PE1,PE1在與站點1對應(yīng)的VRF中進(jìn)行路由查詢,PE2廣播的到站點2的路由對應(yīng)標(biāo)記5,同時查詢BGP的下一跳路由,PE1查找到PE2的路由LSP在轉(zhuǎn)發(fā)分組到特定分組之前需加標(biāo)記100,即入口路由器P1在分組上加兩個標(biāo)記,棧底的5使PE2將分組轉(zhuǎn)發(fā)到特定CE,棧頂?shù)?00用來在網(wǎng)絡(luò)中轉(zhuǎn)發(fā)分組。
分組在路由器P1處交換標(biāo)記,用標(biāo)記2替代100,P2作為LSP的倒數(shù)第2個路由器在轉(zhuǎn)發(fā)分組到PE2前彈出棧頂標(biāo)記,PE2利用棧底標(biāo)記5來標(biāo)識下一跳的CE,彈出標(biāo)記5后將IPv4包轉(zhuǎn)發(fā)到CE2。
3 BGP/MPLS VPN特點
BGP/MPLS VPN為安全的點到點通信提供了一種可選的方案,它是具有與ATM/FR虛電路的VPN相同安全級別的VPN。BGP/MPLS VPN建立了幾種內(nèi)部機(jī)制來保障安全性。VPN-IPv4地址可以使不同的VPN在地址前綴重疊時保持獨(dú)立。
路由分離通過使連接到PE的用戶站點對應(yīng)不同的VRF來實現(xiàn),并且,在BGP擴(kuò)展共同體屬性中,通過使用唯一標(biāo)示符在BGP路由更新過程中進(jìn)一步保證路由分離。當(dāng)正確地配置了地址空間和路由分離后,BGP/MPLS VPN就能夠提供同二層VPN,如ATM/FR VPN同樣的安全性。此時要想通過MPLS云侵入其他VPN是不可能的,除非經(jīng)過了特定的配置。
這些安全機(jī)制存在于提供商網(wǎng)絡(luò)的內(nèi)部,提供商核心網(wǎng)絡(luò)的結(jié)構(gòu)對用戶來說是不可見的。CE知道下一跳的PE路由,卻不能得到任何核心P路由,因此,用戶不能獲得核心網(wǎng)絡(luò)結(jié)構(gòu)的情況,這就能保護(hù)潛在的攻擊者使用這些信息進(jìn)行拒絕服務(wù)、欺騙、會話竊取等攻擊。
可能出現(xiàn)欺騙用戶空間的情況,然而,因為每一個VRF都對應(yīng)一個或多個指向用戶的接口,要想在VPN中欺騙IP地址,攻擊者必須在用戶側(cè)。如果VPN用戶能夠采取措施保障內(nèi)部站點的安全性,則這種情況不會發(fā)生。由此考慮,BGP/MPLS VPN能夠提供與IPSec相同級別的安全性。PE和CE之間物理鏈路的存在和與之相關(guān)的PE中對應(yīng)的VRF取代了認(rèn)證VPN端點的必要性,因為他們必須與站點保持正確的物理連接。
也可能出現(xiàn)欺騙MPLS標(biāo)記的情況,然而,有兩種解決的方法,一種是CE與PE之間的接口是IP接口,任何LSP都不包含這些接口,正確配置的PE應(yīng)丟棄從CE來的MPLS流量。另一種方法是對于每一個P來說標(biāo)記僅具有本地意義,這意味著攻擊者不僅要獲得提供商的物理接入,還要在特定位置用欺騙標(biāo)記來接入特定VPN,這幾乎不可能辦到。并且提供商的安全策略應(yīng)該能夠這樣做。
與BGP/MPLS VPN安全性有關(guān)的最大問題是當(dāng)有多個VRF和目標(biāo)通信者時配置提供商網(wǎng)絡(luò)的復(fù)雜性,對于好多提供商來說,管理眾多BGP路由表并保持好的連通性是很困難的,因為一張表的改變會影響很多其他表。
BGP/MPLS VPN比傳統(tǒng)的二層或基于IPSec的VPN更經(jīng)濟(jì),BGP/MPLS VPN的另一個優(yōu)點是它的可擴(kuò)展性,二層或IPSec VPN是點到點的,因此,星型結(jié)構(gòu)是擴(kuò)展時最常用的結(jié)構(gòu),而提供商可簡單地將BGP/MPLS VPN配置成全網(wǎng)狀結(jié)構(gòu),這不僅能方便地排出內(nèi)部路由故障,還能夠極大簡化提供潛在的敏感應(yīng)用,如語音和視頻。BGP/MPLS VPN還能夠提供與MPLS網(wǎng)絡(luò)同等級的QoS保障。
4 IPSec VPN體系結(jié)構(gòu)
IPSec通過選擇特定的安全協(xié)議在IP層提供安全服務(wù),確定服務(wù)所用的算法,為提供所需的業(yè)務(wù)增加加密密鑰,IPSec能夠在一對主機(jī)、一對安全網(wǎng)關(guān)或主機(jī)和安全網(wǎng)關(guān)之間保護(hù)一條或多條“通道”。
本質(zhì)上,IPSec是為提供兩個設(shè)備間的安全I(xiàn)P 通路而指定的一系列協(xié)議。因IPSec VPN是基于設(shè)備的,而不是基于網(wǎng)絡(luò)的,它比BGP/MPLS VPN在實施上提供了更大的靈活性,提供商無需對路由器進(jìn)行額外的配置。IPSec VPN可以在主機(jī)或站點之間通過安全網(wǎng)關(guān)實現(xiàn)。
IPSec使用兩個協(xié)議來保障IP上的安全傳輸。AH(認(rèn)證頭)協(xié)議為IP數(shù)據(jù)報提供無連接的數(shù)據(jù)完整性和數(shù)據(jù)源身份認(rèn)證,同時具有防重放攻擊的能力。ESP(封裝安全載荷)協(xié)議為IP數(shù)據(jù)包提供加密機(jī)制,為數(shù)據(jù)流提供有限的機(jī)密性保護(hù)。
IPSec提供了兩種不同的模式來傳輸加密數(shù)據(jù):傳輸模式和隧道模式。通常情況下,傳輸模式只用于兩臺主機(jī)之間的安全通信,傳輸模式能夠為兩臺主機(jī)間的每一次協(xié)議會話提供分離的通道,它插在IP頭和有效載荷之間,保護(hù)的是IP包的有效載荷或者說是上層協(xié)議。隧道模式必須用在網(wǎng)關(guān)到網(wǎng)關(guān)的會話或主機(jī)到網(wǎng)關(guān)的會話。隧道模式為會話提供唯一的加密通道,為整個IP包提供保護(hù),先為原始IP包增加AH或ESP字段,然后在外部增加一個新的IP頭,指向目的IPSec網(wǎng)關(guān)。
IPSec沒有指定必須使用何種加密和散列算法。通常的加密算法有DES和3DES,散列算法有MD5和SHA-1,Diffier-Hellman被用來交換加密密鑰。然而,因為IPSec并沒有指定需要特定的加密和散列算法,它提供了一種方法供設(shè)備協(xié)商通用的策略。采用 SAC(安全聯(lián)盟)的構(gòu)建方案來確定雙方使用的策略和會話密鑰,SA駐留在SPD(安全策略數(shù)據(jù)庫)中,VPN網(wǎng)關(guān)查詢SPD來確定如何處理從特定VPN隧道來的數(shù)據(jù)包,在轉(zhuǎn)發(fā)前在包頭添加SPI(安全策略標(biāo)示符),接收端根據(jù)目的信息和SPI查詢SPD對數(shù)據(jù)包進(jìn)行解密/認(rèn)證處理。
IPSec的一項重要的功能是交換加密后的數(shù)據(jù),為了有效、準(zhǔn)確地實現(xiàn)這一功能,必須進(jìn)行加密密鑰的交換。IKE(因特網(wǎng)密鑰交換)協(xié)議是一個產(chǎn)生和交換密鑰并協(xié)調(diào)IPSec參數(shù)的框架。IKE在通信系統(tǒng)之間建立安全聯(lián)盟,提供密鑰確定、密鑰管理的機(jī)制,將密鑰協(xié)商的結(jié)果保留在SA中,供AH和ESP以后通信時使用。
IKE在兩個端點間協(xié)商SA的過程包括兩個階段。階段1用于兩個對等實體建立一個安全的、已認(rèn)證的通信通道,階段2用于IPSec進(jìn)行密鑰和參數(shù)的協(xié)商。
一個隧道模式的VPN組網(wǎng),主機(jī)A發(fā)送最終目的地為主機(jī)B的數(shù)據(jù)到它的默認(rèn)網(wǎng)關(guān)G1,G1為IPSec網(wǎng)關(guān)和防火墻。它查詢策略,確定到主機(jī)B的數(shù)據(jù)需加密;查詢SPD,沒找到對應(yīng)主機(jī)B所屬網(wǎng)關(guān)的SA,則G1和G2之間必須先建立SA,G1執(zhí)行IKE階段1,之后G1、G2執(zhí)行階段2,建立SA,確定通信使用3DES/SHA-1加密和散列算法,插入各自的數(shù)據(jù)庫,雙方交換加密密鑰,G1對數(shù)據(jù)包進(jìn)行加密并添加SHA-1散列值,G2接收到分組,根據(jù)包頭的SPI查詢SPD,檢查散列值,對數(shù)據(jù)包進(jìn)行解密轉(zhuǎn)發(fā)到主機(jī)B,如同LSP路由,IPSec SA是單向的,G2必須建立SA來允許主機(jī)B對主機(jī)A應(yīng)答。
5 IPSec VPN特點
IPSec在IP層上實現(xiàn)了加密、認(rèn)證、訪問控制等多種安全技術(shù),極大地提高了TCP/IP的安全性。由于整個協(xié)議在IP層上實現(xiàn),上層應(yīng)用可不必進(jìn)行任何修改,并且由于IPSec在實現(xiàn)安全策略上的靈活性,使得對安全網(wǎng)絡(luò)系統(tǒng)的管理變得簡便靈活。
在IPSec VPN中通過加密來保證數(shù)據(jù)的機(jī)密性,SA定期協(xié)商更新來提供更強(qiáng)的保護(hù),因DES容易被解密,推薦使用3DES,IKE協(xié)議進(jìn)一步減少了暴露的機(jī)會。
然而,IPSec并非沒有缺點,如果要一個大的點對點的VPN或企業(yè)遠(yuǎn)程接入VPN,則其中的主機(jī)都必須被單獨(dú)配置,這對企業(yè)應(yīng)用VPN帶來了巨大的壓力,并且VPN的配置是相當(dāng)復(fù)雜的,一發(fā)而動全身,小的失誤也可能帶來嚴(yán)重的后果。
更重要的是IPSec在理論上提供了充足的安全性,但應(yīng)用上并非完全這樣。相對于加密本身,攻擊者可能更熱衷于在用戶和用戶之間的VPN之間建立站點,但這不應(yīng)作為VPN本身的缺陷。另一個不利因素是有的用戶試圖為安全設(shè)備擴(kuò)展原本不屬于它的功能,如為安全網(wǎng)關(guān)增加發(fā)送郵件的功能來融合VPN和郵件服務(wù)器,這都會帶來安全隱患。
6 BGP/MPLS VPN和IPSec VPN比較
VPN的服務(wù)目的就是在共享的基礎(chǔ)公共網(wǎng)絡(luò)上向用戶提供網(wǎng)絡(luò)連接,不僅如此,VPN連接應(yīng)使得用戶獲得等同于專有網(wǎng)絡(luò)的通信體驗。合理和實用的VPN解決方案應(yīng)能夠抗拒非法入侵、防范網(wǎng)絡(luò)阻塞,而且應(yīng)能安全、及時地交付用戶的重要數(shù)據(jù),在實現(xiàn)這些功能的同時VPN還應(yīng)該具有良好的可管理性。在站點與站點之間實施VPN時,網(wǎng)絡(luò)管理者應(yīng)該綜合比較BGP/MPLS和IPSec VPN兩種方案,下面的參數(shù)用來比較這兩種解決方案。
數(shù)據(jù)機(jī)密性:IPSec VPN通過強(qiáng)大的加密算法來保障數(shù)據(jù)的機(jī)密性,BGP/MPLS通過在提供商物理站點間定義一條唯一的數(shù)據(jù)通道來加強(qiáng)數(shù)據(jù)的機(jī)密性,這可以禁止攻擊者非法獲得數(shù)據(jù)拷貝,除非他們在提供商的網(wǎng)絡(luò)上放置鏡像器。盡管BGP/MPLS使數(shù)據(jù)被竊取的機(jī)會最小化,但I(xiàn)PSec通過加密可以提供更好的數(shù)據(jù)機(jī)密性。第三種方案是采用IPSec over BGP/MPLS VPN,這樣顯然可以保證更高水平的數(shù)據(jù)機(jī)密性。
數(shù)據(jù)完整性:IPSec使用散列算法來保證數(shù)據(jù)的完整性,對于BGP/MPLS VPN來說,沒有什么根本的方法來保障數(shù)據(jù)的完整性,然而,通過地址空間隔離和路由信息,防止不熟練的攻擊者對數(shù)據(jù)的添加、刪改還是有一定的效果的。
數(shù)據(jù)有效性:IPSec基于Internet進(jìn)行數(shù)據(jù)傳輸,盡管攻擊者不能讀取數(shù)據(jù),但攻擊者可以通過在Internet路由表中加入錯誤路由來旁路數(shù)據(jù)。BGP/MPLS VPN基于LSP來傳輸數(shù)據(jù),因LSP僅有本地意義,欺騙攻擊很難實現(xiàn)。BGP用于在VPN中傳遞路由信息,然而,BGP擴(kuò)展共同體屬性使錯誤路由的引入相當(dāng)困難,因此,從這點上說,BGP/MPLS能夠提供更好的數(shù)據(jù)有效性。
Internet接入:大多數(shù)IPSec VPN基于Internet傳輸數(shù)據(jù),因此,大多數(shù)IPSec VPN體系結(jié)構(gòu)允許VPN接入到所連的站點。在BGP/MPLS體系結(jié)構(gòu)中卻很難實現(xiàn)這一點,在BGP/MPLS VPN接入Internet方案中,通常選擇分離的Internet連接來保障整個VPN的安全性。
遠(yuǎn)程接入:盡管很多提供商支持遠(yuǎn)程接入,但對BGP/MPLS VPN來說并不是本來這樣,并且,他們要么要求遠(yuǎn)程接入的用戶在相同的提供商網(wǎng)絡(luò)中,要么提供商必須實施相同級別的BGP/MPLS VPN。從這一點來看,IPSec在提供遠(yuǎn)程接入方面有優(yōu)越性。
可擴(kuò)展性:IPSec VPN難以擴(kuò)展。因配置方面的要求,IPSec通常是點到點的連接,BGP/MPLS由提供商配置,能夠輕易地實現(xiàn)全網(wǎng)狀的網(wǎng)絡(luò)結(jié)構(gòu),并且,BGP/MPLS VPN還允許網(wǎng)絡(luò)管理者利用MPLS的特性如QoS,因此在企業(yè)環(huán)境中BGP/MPLS VPN比IPSec VPN更具擴(kuò)展性。
BGP/MPLS和IPSec VPN具有各自的優(yōu)點,BGP/MPLS VPN擴(kuò)展性好,能夠提供更好的數(shù)據(jù)有效性,而IPSec VPN能夠保障更好的數(shù)據(jù)機(jī)密性和完整性。兩種VPN都難以配置,每一種方案都應(yīng)考慮應(yīng)用簡便,然而,對于點到點連接,兩種方案都成立,用戶在實施時應(yīng)仔細(xì)分析兩種方案的優(yōu)缺點,選擇最適合自己的。
----《中國數(shù)據(jù)通信》