盛仲飆
(渭南師范學院 數(shù)學與信息科學學院 計算機網(wǎng)絡(luò)工程技術(shù)中心,陜西 渭南 714000)
VPN(Virtual Private Network)虛擬局域網(wǎng),是指利用密碼技術(shù)和訪問控制技術(shù)在公共網(wǎng)絡(luò)中建立專用通信網(wǎng)絡(luò)。在虛擬專用網(wǎng)中,任意兩個節(jié)點之間的連接并沒有傳統(tǒng)專用網(wǎng)所需的端到端的物理鏈路,而是架構(gòu)在公用網(wǎng)絡(luò)服務(wù)商所提供的網(wǎng)絡(luò)平臺之上的邏輯網(wǎng)絡(luò),虛擬專用網(wǎng)對用戶端透明,用戶好像是用一條專用線路通信[1]。與傳統(tǒng)的專有線/租用線路相比,VPN費用低廉而且能很好地滿足客戶的需求。
出于用戶業(yè)務(wù)模型的需求,VPN邏輯網(wǎng)絡(luò)結(jié)構(gòu)通常有主干-分支(Hub-Spoken)、半網(wǎng)狀(Half-Mesh)以及全網(wǎng)狀(Fullmesh)結(jié)構(gòu),這些邏輯網(wǎng)絡(luò)結(jié)構(gòu)通常通過路由控制技術(shù)來實現(xiàn)。在MPLS VPN網(wǎng)絡(luò)中常用的路由控制技術(shù)是Route-Target(即RT技術(shù),通常采用不對稱RT實現(xiàn)路由控制),此技術(shù)是在MPLS VPN網(wǎng)絡(luò)中比較通用的方式,在數(shù)據(jù)網(wǎng)中有廣泛的應(yīng)用。但是,在一些特定的場合,不能使用非對稱RT技術(shù),但又需要實現(xiàn)業(yè)務(wù)要求的各種VPN邏輯網(wǎng)絡(luò)結(jié)構(gòu)以保障網(wǎng)絡(luò)隔離、網(wǎng)絡(luò)QoS以及網(wǎng)絡(luò)服務(wù)。
MPLS(Multiprotocol Label Switching,多協(xié)議標簽交換)是從90年代中期新興的一種多層交換技術(shù),它吸收了ATM的VPI/VCI交換的一些思想,無縫地集成了IP路由技術(shù)的靈活性和2層交換的簡捷性,在面向無連接的IP網(wǎng)絡(luò)中增加了MPLS面向連接的屬性。MPLS引入了基于標簽的機制,它把路由選擇和數(shù)據(jù)轉(zhuǎn)發(fā)分開,由標簽來規(guī)定一個分組通過網(wǎng)絡(luò)的路徑。由于MPLS將2層交換和3層路由技術(shù)相結(jié)合的優(yōu)勢,在解決VPN、CoS(服務(wù)分類)和流量工作等IP網(wǎng)絡(luò)的重大問題時具有優(yōu)異的表現(xiàn),其應(yīng)用也逐步轉(zhuǎn)向MPLS流量工程和MPLS VPN了[2]。
MPLS網(wǎng)絡(luò)與傳統(tǒng)IP網(wǎng)絡(luò)的不同之處主要在于MPLS域中使用了標簽交換路由器LSR。它為進入網(wǎng)絡(luò)中的IP數(shù)據(jù)包分配標記,并通過對標記的交換來實現(xiàn)IP數(shù)據(jù)包的轉(zhuǎn)發(fā)。標記作為IP包頭在網(wǎng)絡(luò)中的替代品而存在,在網(wǎng)絡(luò)內(nèi)部MPLS在數(shù)據(jù)包所經(jīng)過的路徑通過交換標記(而不是看IP包頭)來實現(xiàn)轉(zhuǎn)發(fā);當數(shù)據(jù)包要退出MPLS網(wǎng)絡(luò)時,數(shù)據(jù)包被解開封裝,繼續(xù)按照IP包的路由方式到達目的地。一個標簽是一個短的、長度固定的數(shù)值,由報文的頭部攜帶。MPLS包頭的結(jié)構(gòu)如圖1所示,包含20比特的標簽,3比特的EXP(通常用作Cos),1比特的S,用于標識此標簽是否為最底層標簽,8比特的TTL。MPLS包頭位于2層幀頭與3層數(shù)據(jù)包頭之間。
圖1 MPLS包頭結(jié)構(gòu)Fig.1 MPLS Header Structure
MPLS VPN是一種基于MPLS技術(shù)的IP-VPN,是在網(wǎng)絡(luò)路由和交換設(shè)備上應(yīng)用MPLS技術(shù),簡化核心路由器的路由選擇方式,利用結(jié)合傳統(tǒng)路由技術(shù)的標記交換實現(xiàn)的IP虛擬專用網(wǎng)絡(luò)(IP-VPN),可用來構(gòu)造寬帶的 Intranet、Extranet,滿足多種靈活的業(yè)務(wù)需求。MPLS VPN又稱為“BGP_MPLS/VPN”,這種VPN技術(shù)建構(gòu)在MPLS和BGP技術(shù)基礎(chǔ)之上,它利用MPLS來實現(xiàn)三層交換和QoS,利用Multiprotocol BGP來實現(xiàn)VPN路由信息的傳播。MPLS VPN是一種主要面向運營商的VPN解決方案,也是VPN技術(shù)的發(fā)展趨勢[3]。
如圖2所示,MPLS VPN網(wǎng)絡(luò)主要由CE(用戶網(wǎng)絡(luò)邊緣路由器)、PE(骨干網(wǎng)邊緣路由器)和P(骨干網(wǎng)核心路由器)以及VPN用戶節(jié)點組成。其中CE直接與服務(wù)提供商網(wǎng)絡(luò)相連;PE與用戶的CE直接相連,負責VPN業(yè)務(wù)接入,處理VPN-IPv4路由;P負責快速轉(zhuǎn)發(fā)數(shù)據(jù)。在整個MPLS VPN中,P、PE設(shè)備需要支持 MPLS的基本功能,CE設(shè)備不必支持MPLS[4]。
圖2 MPLS VPN網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 MPLS VPN Network Structure
在MPLS/BGP VPN中,屬于同一VPN的兩個site之間轉(zhuǎn)發(fā)報文使用兩層標簽,在入口PE上為報文打上兩層標簽,外層標簽在骨干網(wǎng)內(nèi)部進行交換,代表了從PE到對端PE的一條隧道,VPN報文打上這層標簽,就可以沿著LSP到達對端PE,再使用內(nèi)層標簽決定報文應(yīng)該轉(zhuǎn)發(fā)到哪個site上,由此實現(xiàn)對于用戶的VPN邏輯隔離功能,此內(nèi)層標簽在實際應(yīng)用中采用MP-BGP的擴展Community屬性(即RT)實現(xiàn)[5]。
BGP是為了TCP/IP網(wǎng)絡(luò)設(shè)計的用于自治系統(tǒng)之間的路由協(xié)議。它利用多協(xié)議擴展和共有屬性來定義VPN的連接性,在基于MPLS的VPN中,BGP只對一個VPN的成員發(fā)布信息,通過流量分離來提供基本的安全性。因為數(shù)據(jù)是通過使用LSP來轉(zhuǎn)發(fā)的,LSP定義一條不可改變的路徑,以保證其安全性[5]。
BGP是在EGP應(yīng)用的基礎(chǔ)上發(fā)展起來的,BGP通過在路由信息中增加自治區(qū)域(AS)路徑的屬性,來構(gòu)造自治區(qū)域的拓撲圖,從而消除路由環(huán)路并實施用戶配置的策略。同時,BGP支持無類型的區(qū)域間路由CIDR(Classless Interdomain Routing),可以有效的減少路由表條目,同時BGP本身的數(shù)據(jù)結(jié)構(gòu)也可以支持較大的路由表[6]。為了提供對多種網(wǎng)絡(luò)層協(xié)議 (如MPLS)的支持,IETF對BGP-4進行了擴展,形成MP-BGP,目前的MP-BGP標準是RFC2858。
要實現(xiàn)VPN邏輯結(jié)構(gòu),除采用非對稱RT?技術(shù)之外,還可以利用BGP Community屬性,通過結(jié)合路由過濾技術(shù),實現(xiàn)對不同VPN的VRF中的路由表條目整形,從而實現(xiàn)不同的網(wǎng)絡(luò)VPN邏輯拓撲。
BGP Community屬性實質(zhì)上是對于一條路由的標記,它是以一個字符串形式存在的編碼。默認的BGP Community屬性有 Internet,Local-as,no-advertise,no-export此 4 種,同時還可自定義此屬性的內(nèi)容(即自定編碼,數(shù)值范圍1~4 294 967 295)。
相對于BGP Community屬性,非對稱RT技術(shù)實際是利用了擴展的BGP Community屬性,即在MP-BGP協(xié)議中,對于BGP路由協(xié)議新定義了一種屬性,并對Community的數(shù)值編碼范圍進行了擴展,以容納寫入以AS:NN格式表示的RT數(shù)值。以此屬性作為路由RT的攜帶載體。
利用BGP Community路由屬性技術(shù)實現(xiàn)各種VPN邏輯結(jié)構(gòu)的技術(shù)手段方式如下。
在一條路由進入BGP域傳播時,通過策略路由(Route-Map),為本路由賦與一個Community值,在網(wǎng)絡(luò)中的其他站點路由器根據(jù)收到的Community數(shù)值決定對本路由接受還是丟棄即路由過濾,各路由器經(jīng)過路由過濾之后形成各自的對應(yīng)于各VPN的路由表VRF,從而以這些VRF的路由條目組織形成了各種VPN邏輯結(jié)構(gòu)。以下是利用BGP Commuinty技術(shù)實現(xiàn)同一物理拓撲上的不同邏輯VPN拓撲的方法:
如圖2所示,利用BGP路由策略結(jié)合Community實現(xiàn)核心-分支的VPN邏輯結(jié)構(gòu),關(guān)鍵配置邏輯如下(以思科設(shè)備為 例 , 設(shè) 路 由 A=1.1.1.0/24,B=2.2.2.0/24,C=3.3.3.0/24,D=4.4.4.0/24,僅列出關(guān)鍵節(jié)點的關(guān)鍵配置,其他從略)
1)核心站點 PE 0:
2)分支站點 PE 1:
如上圖所示,利用BGP路由策略結(jié)合Community實現(xiàn)半網(wǎng)狀的VPN邏輯結(jié)構(gòu),關(guān)鍵配置邏輯如下(設(shè)路由A=1.1.1.0/24,B=2.2.2.0/24,C=3.3.3.0/24,D=4.4.4.0/24,僅列出關(guān)鍵節(jié)點的關(guān)鍵配置)
1)核心站點 PE 0:
2)分支站點 PE 3:
MPLS VPN技術(shù)可以在同一個物理網(wǎng)絡(luò)上為不同的用戶和業(yè)務(wù)提供獨立、隔離的虛擬專用數(shù)據(jù)通道,且可以利用各種技術(shù)(如路由標記RT技術(shù))針對不同的需求提供各種邏輯VPN網(wǎng)絡(luò)拓撲結(jié)構(gòu),目前在數(shù)據(jù)通信網(wǎng)絡(luò)中應(yīng)用非常廣泛。
文中提出的BGP Community結(jié)合路由過濾技術(shù)在邏輯VPN網(wǎng)絡(luò)結(jié)構(gòu)的實現(xiàn)上是RT技術(shù)的一種替代方法,它可以在RT技術(shù)不能使用或應(yīng)用效果不佳的情況下代替其功能,實現(xiàn)基于同一物理網(wǎng)絡(luò)拓撲的各種不同的VPN邏輯結(jié)構(gòu),其技術(shù)原理和實現(xiàn)均相對簡單,且可以利用現(xiàn)有的各類路由器設(shè)備的BGP路由協(xié)議自身的功能,無需更換或升級設(shè)備,具有經(jīng)濟,實用和高效的特點。
[1]盛羽.基于BGP和MPLS的虛擬專網(wǎng)的研究與實現(xiàn) [D].湖南:國防科技大學,2006.
[2]胡蔚星.MPLS VPN的原理與規(guī)劃[J].有線電視技術(shù),2004(12):15-16.
HU Wei-xing.MPLS VPN principles and planning[J].CATV Technology,2004(12):15-16.
[3]黃海清.MPLS VPN技術(shù)及其應(yīng)用[J].中國數(shù)據(jù)通信,2003(1):12-13.
HUANG Hai-qing.MPLS VPN technology and its application[J].China Data Communication,2003(1):12-13.
[4]梁琦,張力軍.MPLS VPN不同解決方案的比較分析[J].電信工程技術(shù)與標準化,2005(6):15-16.
LIANG Qi,ZHANG Li-jun.MPLS VPN comparative analysis of different solutions[J].Telecom Engineering Technics and Standardization,2005(6):15-16.
[5]張毓.MPLS VPNW網(wǎng)絡(luò)的研究與設(shè)計[D].安徽:合肥工業(yè)大學,2007(3):16-17.
[6]李進印.MP-BGP協(xié)議在MPLS-VPN中的應(yīng)用淺析 [J].科技資訊,2009(1):18-19.
LI Jin-yin.Analysis of MP-BGP protocol in MPLS VPN application[J].Science&Technology Information,2009(1):18-19.