摘要:設計并實現(xiàn)了一種面向大規(guī)模多用戶在線實驗的MPLS VPN系統(tǒng)。提出新的體系結構和功能框架,使該系統(tǒng)具有大規(guī)模、交互性以及集中式管理的特點,同時具有很好的可擴展性。給出了系統(tǒng)的實驗流程,從而可以幫助教師、學生以及網(wǎng)絡工程師通過在線實驗更好地理解和掌握MPLS VPN技術。
關鍵詞:MPLS VPN;實驗系統(tǒng);VRF;虛擬站點
中圖法分類號:TP393文獻標識碼:A
文章編號:1001-3695(2006)09-0237-03
1引言
當前,隨著寬帶技術的普及和發(fā)展,基于MPLS(MultiProtocolLabelSwitching,多協(xié)議標記交換)虛擬專用網(wǎng)技術越來越引起了人們的廣泛關注。MPLSVPN是一種基于MPLS技術的IPVPN,是在網(wǎng)絡路由和交換設備上應用MPLS技術,簡化核心路由器的路由選擇方式,利用結合傳統(tǒng)路由技術的標記交換實現(xiàn)的IP虛擬專用網(wǎng)絡(IPVPN),可用來構造寬帶的Intranet,Extranet,滿足多種靈活的業(yè)務需求[1],特別是通過MPLSVPN為企業(yè)用戶提供語音、數(shù)據(jù)甚至視頻業(yè)務在內的統(tǒng)一通信平臺(即所謂的“三網(wǎng)合一”)。因此,MPLSVPN已成為網(wǎng)絡安全和Internet應用的一個重要研究方向。目前,MPLSVPN的研究熱點主要集中在:采用DiffServ(差分服務)解決MPLSVPN的QoS問題[2];MPLSVPN與IPSec相結合,由IPSec完成對數(shù)據(jù)的加密,將加密后的數(shù)據(jù)通過MPLS隧道來解決MPLSVPN的安全問題[3]。當然,MPLSVPN的網(wǎng)管和核心路由器也是MPLSVPN研究的重點之一。
但不論學術界、產(chǎn)品制造商還是運營商,它們?yōu)槠髽I(yè)提供的僅僅是MPLSVPN業(yè)務服務,不適合開展MPLSVPN的在線教學實驗,這是由其自身特點決定的,即運營商提供的MPLSVPN業(yè)務只有結果,沒有過程;運營商的MPLSVPN核心網(wǎng)絡出于安全考慮,路由器的配置只允許運營商管理員修改,配置也相對復雜些,而用戶端的配置較少,用戶不易理解和掌握MPLSVPN。因此,這就決定了其相關產(chǎn)品不適于交互式教學實驗環(huán)節(jié)。
根據(jù)目前的情況,我們研究并設計了一種基于MPLS的VPN實驗系統(tǒng),它要求具有以下基本功能:①支持交互性。要求系統(tǒng)支持交互式在線實驗,達到實驗者與教師或管理者、實驗者與各路由器之間的互動,以求能幫助實驗者快速掌握MPLSVPN技術。②支持大規(guī)模。要求系統(tǒng)支持幾百名實驗者同時進行實驗,以最大程度地利用有限的網(wǎng)絡資源。③具有集中式管理。經(jīng)過管理中心身份認證后,實驗者才能進行各種實驗。同時管理中心記錄實驗者的身份ID,自動生成實驗者相應的實驗記錄文件。集中式管理提高了實驗環(huán)境的安全性,也便于對實驗者的監(jiān)督管理。④支持的實驗主要有MPLS網(wǎng)絡配置實驗、MPLSVPN的構建與配置實驗、IPSecVPN教學實驗和綜合實驗(MPLS的QoS、流量工程等實驗),以滿足教師、學生以及網(wǎng)絡工程師能夠更好地理解和掌握MPLSVPN。
2MPLSVPN技術分析
MPLS是集第二層路由和第三層交換于一體的技術,引入了基于標記的機制,它將選路和轉發(fā)分開,由標簽來規(guī)定一個分組通過網(wǎng)絡的路徑。標簽作為IP包頭在網(wǎng)絡中的替代品而存在,于網(wǎng)絡內部MPLS在數(shù)據(jù)包所經(jīng)過的路徑沿途通過交換標簽(而不是看IP包頭)來實現(xiàn)轉發(fā);當數(shù)據(jù)包要退出MPLS網(wǎng)絡時,數(shù)據(jù)包被解開封裝,繼續(xù)按照IP包的路由方式到達目的地[5]。
MPLSVPN中的路由器有三種:P路由器、PE路由器和CE路由器。P路由器為運營商核心路由器,即MPLS網(wǎng)絡中的標簽交換路由器(LSR),負責VPN分組外層標簽的交換,P路由器只維護到PE路由器的路由信息而不維護VPN相關的路由信息;PE路由器為運營商邊界路由器,即MPLS網(wǎng)絡中的標簽邊緣路由器(LER),存放著VRF表(VPNRoutingandForwar ̄dingTable,虛擬路由轉發(fā)表)和全局路由表,VRF中存放著VPN路由,全局路由表中存放著運營商的域內路由,它根據(jù)存放的路由信息將來自CE路由器或標簽交換路徑(LSP)的VPN數(shù)據(jù)經(jīng)處理后進行轉發(fā),同時負責與其他PE路由器交換路由信息;CE路由器為客戶端路由器,為用戶提供到PE路由器的連接,由客戶負責維護。
MPLSVPN數(shù)據(jù)轉發(fā)過程為:當CE路由器將一個VPN分組轉發(fā)給入口PE路由器后,PE路由器查找與該VPN對應的VRF,從VRF中得到一個VPN標簽和下一跳出口PE路由器的地址;VPN標簽作為內層標簽打在VPN分組上,根據(jù)下一跳出口PE路由器的地址可以在全局路由表中查出到達該PE路由器應打上的域內路由的標簽,即外層標簽,于是VPN分組被打上了兩層標簽;主干網(wǎng)的P路由器根據(jù)外層標簽轉發(fā)VPN分組,在最后一個P路由器處,外層標簽彈出,VPN分組只剩下內層標簽(此過程被稱作次末級彈出機制);接著VPN分組被發(fā)往出口PE路由器;出口PE路由器根據(jù)內層標簽查找到相應的出口后,將VPN分組上的內層標簽刪除,將不含標簽的VPN分組轉發(fā)給正確的CE路由器,CE路由器根據(jù)自己的路由表將分組轉發(fā)到正確的目的地。
根據(jù)PE路由器是否參與客戶的路由,可將MPLSVPN分成Layer3MPLSVPN和Layer2MPLSVPN。其中Layer3MPLSVPN遵循RFC2547bis標準,使用多協(xié)議擴展BGP(MPiBGP)在PE路由器之間承載攜帶標簽的VPNIPv4分發(fā)路由信息,使用MPLS技術在VPN站點之間傳送數(shù)據(jù),因而又稱為BGP/MPLSVPN[1]。
3系統(tǒng)設計
3.1體系結構
為了實現(xiàn)系統(tǒng)的功能,我們采用如圖1所示的Layer3MPLSVPN體系結構。該系統(tǒng)采取B/S與C/S結構相結合的模式來進行設計。B/S開發(fā)模型實際上是分布式的Client/Server結構在Internet/Intranet上的擴展,即將一個應用對象從功能結構上劃分為三部分:數(shù)據(jù)處理邏輯、業(yè)務處理邏輯和顯示邏輯。其中Web服務器是顯示邏輯的核心,它將信息組織成超文本,通過超文本標記語言(HTML)和超文本傳輸協(xié)議(HTTP)以實現(xiàn)與Browser端的交互;Client端的程序配合相關的應用服務器實現(xiàn)業(yè)務處理邏輯;數(shù)據(jù)處理邏輯由數(shù)據(jù)庫服務器的數(shù)據(jù)庫處理系統(tǒng)來完成,負責管理對數(shù)據(jù)庫數(shù)據(jù)的讀寫操作。各功能之間通過一些通用的編程接口連接。實驗者和教師采用Browser/Server模式參與實驗和管理,管理中心和各路由器采用Client/Server模式相互通信。該模式具有系統(tǒng)維護簡便、布局合理、擴展能力強的優(yōu)點。
在圖1中,PE1,PE2構成了MPLS核心網(wǎng)絡,為了簡化實驗環(huán)境,在此省略了P核心路由器。PE路由器則均采用CiscoIOS路由器,它支持MPLS。
CE1,CE2是連接PE和用戶站點的客戶端路由器。為了與IPSecVPN教學實驗系統(tǒng)相兼容,兩個CE路由器采用Linux下的Zebra開源軟件來仿真路由器。它支持IPv4,IPv6和其他各式各樣的協(xié)議,所以能夠滿足通常所有的路由需求。使用Zebra的另一個好處是,該軟件配置在很多方面與Cisco的IOS配置幾乎完全相同。CE1路由器上采用虛擬站點技術解決多用戶問題,各用戶站點VPN1,VPN2等分屬不同網(wǎng)段,分別與CE2路由器下的站點建立VPN。
管理中心運行Web服務器、數(shù)據(jù)庫服務器和管理中心守護進程,并通過以太網(wǎng)卡與CE1和CE2進行通信,通過COM1和COM2與PE1,PE2進行串口通信。
3.2功能模塊設計
在系統(tǒng)需求及功能分析基礎上,將實驗系統(tǒng)劃分為如下幾個模塊,它們之間的相互關系如圖2所示。
(1)登錄驗證模塊:負責教師、實驗者登錄驗證,并依據(jù)身份將他們重新定向到各自的網(wǎng)頁界面。
(2)實驗交互系統(tǒng)模塊:是實驗者、教師和教學系統(tǒng)的人機接口,主要功能是向實驗者提供實驗環(huán)境,以執(zhí)行實驗和察看實驗結果;向教師提供管理界面。本系統(tǒng)采用JSP+Java ̄Beans+JDBC+MySQL來實現(xiàn)動態(tài)網(wǎng)站的開發(fā)。
(3)管理中心守護進程模塊:主要功能是接收實驗者、教師的操作信息,并將其傳輸至各個路由器守護進程,還負責接收各個路由器守護進程的反饋信息,并回顯給實驗者。
(4)路由器守護進程模塊:主要功能是監(jiān)聽來自管理中心守護進程模塊的指令,并將指令解碼,然后根據(jù)指令控制路由器采取相應動作,同時具有收集路由器相關狀態(tài),并將其傳輸至管理中心守護進程的功能。
4系統(tǒng)實現(xiàn)中的關鍵技術討論
4.1管理中心與路由器之間的通信機制
由于CE路由器運行的是Linux操作系統(tǒng),因此我們利用Socket在Linux下用C語言和Shell腳本語言編寫CE路由器中的守護進程。Socket是對應TCP/IP協(xié)議的最具典型的應用開發(fā)接口。它提供了不同主機間進程通信的端點。應用進程之間要通過網(wǎng)絡進行通信,首先在網(wǎng)絡的每一端建立套接字,然后通過對套接字的讀、寫操作實現(xiàn)網(wǎng)絡通信。
由于PE路由器上不便嵌入代碼,不運行守護進程,但是需要在管理中心端利用串口通信捕獲路由器端返回信息。管理中心守護進程利用Java技術來開發(fā),其中串口通信進程通過Java來實現(xiàn)與串口的全雙工通信,實現(xiàn)的功能是打開串口COM,對其進行初始化,從串口讀取信息并進行處理后將處理結果發(fā)送到串口。主要包括SerialBean.java(與其他應用程序的接口),SerialBuffer.java(用來保存從串口所接收數(shù)據(jù)的緩沖區(qū)),ReadSerial.java(從串口讀取數(shù)據(jù)的程序)。
4.2多用戶并發(fā)訪問問題的解決
圖1所示的拓撲結構只有兩臺CE,因此,如何支持大規(guī)模的教學實驗已成為需首要考慮的技術難點。為此,我們利用虛擬站點技術來解決這一問題。在MPLSVPN網(wǎng)絡中,一個CE設備常被視為在一個單獨的站點上。因此有多個站點時,需要多個CE設備。但在本系統(tǒng)中,為了簡化環(huán)境、節(jié)約成本,希望一個站點分成幾個虛擬站點。每個虛擬站點屬于不同的VPN的成員。為了實現(xiàn)這一特點,需要在網(wǎng)卡上綁定多個隸屬于不同網(wǎng)段的私有IP地址,由此創(chuàng)建了多個虛擬網(wǎng)卡設備,即將接口分成多個子接口,每個虛擬子接口對應一個虛擬站點,并根據(jù)包到達的子接口將包指定到一個VPN中。
4.3實驗系統(tǒng)的可擴展性
(1)為了與IPSecVPN教學實驗相兼容,可以在兩個CE路由器之間建立IPSecVPN隧道。用戶兩端通過VPN嵌套來接入MPLSVPN核心網(wǎng),這樣就形成了兩層的VPN網(wǎng)絡:用戶的VPN接入網(wǎng)和MPLSVPN核心網(wǎng)。這樣不但可以進行MPLSVPN實驗,也可以進行IPSecVPN教學實驗,同時保證管理的獨立性和安全性。
(2)擴展MPLS相關應用實驗,如QoS、流量工程等實驗。MPLSVPN可以直接利用MPLS的流量工程TE和QoS能力,對于具有不同的QoS要求的業(yè)務,可以使用不同的技術組合來提供實現(xiàn)。通過這些實驗能更好地理解MPLS。
5系統(tǒng)實驗流程
本實驗系統(tǒng)以Web方式進行在線實驗,現(xiàn)以MPLSVPN配置實驗為例,該實驗流程如圖3所示。
提供VPN服務的前提是MPLS的核心網(wǎng)絡必須啟用標簽交換功能,即將圖1中路由器PE1,PE2配置成MPLS,并使用Tag在路由器之間分發(fā)標簽綁定。MPLS配置完成后進行VPN配置,其中PE路由器的配置將通過定義并且配置VRF,RD,定義RT并且配置導入/導出策略,配置連接CE的接口并將該接口與前面定義的VRF聯(lián)系起來,配置MPBGP協(xié)議以及PE到CE的路由協(xié)議來完成。
接下來要完成路由器CE的配置,即將用戶前綴(從路由器CE到PE的路由)加到VRF中。這可通過它們之間運行OSPF協(xié)議來實現(xiàn)。
配置完成后PE路由器上的VRF表如表1所示,最后通過相關指令和Ping對方內網(wǎng)主機等來驗證MPLSVPN的正確性。
表1PE1路由器上的VRF表
VRF名稱RED(可以任意取名)VRF中的RD100∶1VRF中的RT導出RT=100∶1,導入RT=100∶1學習到的路由10.1.1.0/32(CE1網(wǎng)段),10.1.2.0/32(CE2網(wǎng)段)對應的接口S0/0∶1(虛擬站點1接口)VPN標簽286結論
本文研究并設計了一種面向大規(guī)模多用戶在線實驗的MPLSVPN系統(tǒng)。提出了新的體系結構和功能框圖,通過虛擬站點等技術使得該系統(tǒng)具有大規(guī)模、交互性以及集中式管理的特點,同時具有很好的可擴展性。本文在關鍵技術討論之后給出了系統(tǒng)的實驗流程,從而可以幫助教師、學生以及網(wǎng)絡工程師通過在線實驗更好地理解和掌握MPLSVPN技術。
參考文獻:
[1]BGP/MPLSVPNs[S].RFC2547,1999.
[2]張?zhí)炜。w家煒,陳志濤.基于MPLS的VPN中QoS的實現(xiàn)分析[J].現(xiàn)代計算機,2004,(10):4447.
[3]鄭剛,周源遠,張福炎.一種集成IPSec和MPLS技術的VPN方案[J].計算機應用研究,2003,20(10):9597.
[4]Multiprotocol Label Switching Architecture[S].RFC3031,2001.
[5]IvanPepelnjak,etal.MPLS和VPN體系結構[M].趙斌,等.北京:人民郵電出版社,2003.
作者簡介:
賴德新(1975),男,研究生,主要研究方向為網(wǎng)絡與信息安全;陸松年,男,教授,博導,主要研究方向為數(shù)據(jù)通信與計算機通信網(wǎng)、信息安全;楊樹堂,男,副教授,碩士生導師,主要研究方向為計算機通信網(wǎng)、網(wǎng)絡與信息安全。