摘要:基于高層虛擬交換技術(shù),采用了MPLS網(wǎng)絡(luò)基礎(chǔ)架構(gòu),研究并設(shè)計(jì)了一種支持大規(guī)模多用戶并發(fā)控制,能進(jìn)行實(shí)時(shí)交互及集中管理功能的BGP/MPLS VPN實(shí)驗(yàn)系統(tǒng)。該系統(tǒng)提供了面向BGP/MPLS 的VPN教學(xué)與科研環(huán)境,可以支持基于MPLS及VPN網(wǎng)絡(luò)的各種實(shí)驗(yàn)、應(yīng)用研究和仿真測(cè)試。
關(guān)鍵詞:虛擬交換機(jī); BGP; MPLS; VPN
中圖法分類號(hào):TP393.02文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1001-3695(2007)01-0300-03
VPN是基于公網(wǎng),利用隧道、加密等技術(shù),為用戶提供的虛擬專用網(wǎng)絡(luò),使用戶有直接連接到私人局域網(wǎng)的感覺(jué)。目前,存在兩種既各具特點(diǎn)又具有一定互補(bǔ)性的VPN(虛擬專用網(wǎng))架構(gòu),一個(gè)是融BGP(邊界網(wǎng)關(guān)協(xié)議)和MPLS(多協(xié)議標(biāo)記交換)技術(shù)的VPN;另一個(gè)是基于IPSec的VPN。
相對(duì)于IPSec VPN,BGP/MPLS VPN在數(shù)據(jù)機(jī)密性和完整性上存在一些不足,但它有其獨(dú)特的優(yōu)點(diǎn):BGP/MPLS VPN支持寬帶高速網(wǎng)絡(luò),沒(méi)有對(duì)數(shù)據(jù)包進(jìn)行加密/解密的過(guò)程,所以其傳送速度更快;BGP/MPLS VPN的另一個(gè)優(yōu)點(diǎn)是其可擴(kuò)展性,二層或IPSec VPN是點(diǎn)到點(diǎn)的,因此星型結(jié)構(gòu)是擴(kuò)展時(shí)最常用的結(jié)構(gòu),而提供商可簡(jiǎn)單地將BGP/MPLS VPN配置成全網(wǎng)狀結(jié)構(gòu),這不僅能簡(jiǎn)化VPN網(wǎng)絡(luò)的擴(kuò)展,還大大提高了VPN網(wǎng)絡(luò)的健壯性;BGP/MPLS VPN還能夠提供與MPLS網(wǎng)絡(luò)同等級(jí)的QoS保障。
為了加強(qiáng)信息安全人才培養(yǎng)的實(shí)踐環(huán)節(jié),目前急需一種支持不同層次的BGP/MPLS VPN實(shí)驗(yàn)系統(tǒng),它可以有效滿足信息安全技術(shù)人員對(duì)培訓(xùn)的需求,提高他們的動(dòng)手能力和解決問(wèn)題的能力,具有積極的現(xiàn)實(shí)意義。在文獻(xiàn)[1]和文獻(xiàn)[2]中,C. Metz提出了這兩種VPN的具體實(shí)現(xiàn)方案。這兩種實(shí)現(xiàn)方案是基于實(shí)際網(wǎng)絡(luò)設(shè)備上的,適用于在公共通信網(wǎng)上建立VPN的商業(yè)需求,但并不適合應(yīng)用于VPN教學(xué)實(shí)驗(yàn)環(huán)節(jié)之中:它們注重結(jié)果,不注重過(guò)程,缺少對(duì)處理過(guò)程的顯示,不能對(duì)交互性教學(xué)很好地支持,而且它們?nèi)鄙賹?duì)大規(guī)模的多點(diǎn)并發(fā)訪問(wèn)的支持。這就注定將它們應(yīng)用于教學(xué)實(shí)驗(yàn)中會(huì)有很多不方便的地方,難以達(dá)到理想的教學(xué)實(shí)驗(yàn)效果。于是本文在C.Metz的實(shí)現(xiàn)方案的基礎(chǔ)上,采用了虛擬交換技術(shù),設(shè)計(jì)了一種基于虛擬網(wǎng)絡(luò)的BGP/MPLS VPN,從而能夠支持多用戶并發(fā)控制的BGP/MPLS VPN實(shí)驗(yàn)系統(tǒng),以滿足VPN教學(xué)實(shí)驗(yàn)的需要。
1BGP/MPLS VPN系統(tǒng)的分析與設(shè)計(jì)
1.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
基于高層虛擬交換技術(shù)的BGP/MPLS VPN系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)如圖1所示。
圖1BGP/MPLS VPN系統(tǒng)的體系結(jié)構(gòu)
虛擬交換機(jī)通過(guò)虛擬網(wǎng)卡的支持,由底層的通信基礎(chǔ)設(shè)施負(fù)責(zé)數(shù)據(jù)的傳輸。在頂層,虛擬交換機(jī)在OSPF,BGP,VRF,MPLS等模塊的支持下,按作用的不同分別作為BGP/MPLS VPN中的CE,PE,P路由器,構(gòu)建成一個(gè)VPN網(wǎng)絡(luò)。
在這個(gè)基于高層虛擬交換機(jī)的VPN的基礎(chǔ)上,本文開(kāi)發(fā)了一種多用戶并發(fā)控制的BGP/MPLS VPN系統(tǒng)。圖2是BGP/MPLS VPN多用戶實(shí)驗(yàn)系統(tǒng)的結(jié)構(gòu)。每個(gè)實(shí)驗(yàn)機(jī)在VPN服務(wù)器上啟動(dòng)一個(gè)虛擬交換機(jī)作為CE路由器,Web瀏覽器作為用戶與整個(gè)系統(tǒng)的接口,用于頁(yè)面顯示等交互功能的實(shí)現(xiàn)。實(shí)驗(yàn)機(jī)通過(guò)互聯(lián)網(wǎng)連接到Web服務(wù)器,由它來(lái)響應(yīng)客戶端的請(qǐng)求,利用JSP及Web服務(wù)器端Java組件動(dòng)態(tài)生成HTML代碼,并將處理結(jié)果嵌入其中,反饋給客戶端的瀏覽器。數(shù)據(jù)庫(kù)服務(wù)器用來(lái)實(shí)現(xiàn)用戶信息的存儲(chǔ)管理。VPN服務(wù)器上啟動(dòng)了多個(gè)PE,P路由器,通過(guò)對(duì)PE和CE的連接配置以及PE上VRF的配置,使不同的CE之間構(gòu)成了相互獨(dú)立的VPN網(wǎng)絡(luò)。
圖2BGP/MPLS VPN多用戶實(shí)驗(yàn)系統(tǒng)
在VPN服務(wù)器中,利用多線程啟動(dòng)多個(gè)虛擬交換機(jī),所有的PE路由器都是一個(gè)自治系統(tǒng)AS的邊界路由器,它們互相構(gòu)成IBGP對(duì)等體,通過(guò)擴(kuò)展BGP協(xié)議來(lái)交換路由信息和標(biāo)簽信息。每個(gè)CE路由器和對(duì)應(yīng)的PE路由器構(gòu)成EBGP對(duì)等體,通過(guò)標(biāo)準(zhǔn)的BGP協(xié)議來(lái)交換路由信息。
由于采用了虛擬技術(shù),本系統(tǒng)能很簡(jiǎn)單地實(shí)現(xiàn)多用戶并發(fā)控制。每個(gè)實(shí)驗(yàn)者可以根據(jù)自己的需求構(gòu)建一個(gè)屬于自己的虛擬網(wǎng)絡(luò),而在VPN服務(wù)器上,一個(gè)虛擬設(shè)備可以是只屬于一個(gè)實(shí)驗(yàn)者的,也可以是屬于多個(gè)實(shí)驗(yàn)者的,每個(gè)實(shí)驗(yàn)者擁有一個(gè)只屬于他的虛擬路由表,這樣就實(shí)現(xiàn)了多用戶并發(fā)控制而他們之間不會(huì)相互干擾。
這個(gè)實(shí)驗(yàn)系統(tǒng)具有以下幾個(gè)特點(diǎn):
(1)支持多種形式的基于BGP/MPLS VPN實(shí)驗(yàn)。實(shí)驗(yàn)系統(tǒng)可以支持諸如MPLS網(wǎng)絡(luò)配置實(shí)驗(yàn),BGP和MPBGP配置實(shí)驗(yàn)及BGP/MPLS VPN綜合實(shí)驗(yàn)等。
(2)支持大規(guī)模性。為了同時(shí)滿足眾多實(shí)驗(yàn)參與者的實(shí)驗(yàn)需求,并充分利用有限的網(wǎng)絡(luò)資源,基于在PE路由器上不同的VRF配置,系統(tǒng)可以支持近百名學(xué)生同時(shí)進(jìn)行VPN實(shí)驗(yàn)而互不影響,達(dá)到了多用戶并發(fā)控制的要求。
(3)支持交互性。通過(guò)Web瀏覽器形式,服務(wù)器根據(jù)實(shí)驗(yàn)者的請(qǐng)求,在VPN服務(wù)器上進(jìn)行相關(guān)的配置,然后返回實(shí)驗(yàn)中的相關(guān)數(shù)據(jù)結(jié)果,包括VPN配置結(jié)果、VPN隧道建立結(jié)果和VPN數(shù)據(jù)發(fā)送結(jié)果等。系統(tǒng)最大程度地支持交互性,以實(shí)現(xiàn)實(shí)驗(yàn)者與教師、實(shí)驗(yàn)者與VPN設(shè)備之間的互動(dòng)。
(4)支持集中式管理。經(jīng)過(guò)管理中心身份認(rèn)證后,實(shí)驗(yàn)者才能進(jìn)行各種實(shí)驗(yàn)。同時(shí)管理中心記錄實(shí)驗(yàn)者的身份ID,自動(dòng)生成實(shí)驗(yàn)者相應(yīng)的實(shí)驗(yàn)記錄文件。集中式管理提高了實(shí)驗(yàn)環(huán)境的安全性,也便于對(duì)實(shí)驗(yàn)者的監(jiān)督管理。
此外,傳統(tǒng)的BGP/MPLS VPN大都基于實(shí)際的Cisco路由器,由于實(shí)驗(yàn)需要多臺(tái)路由器,而每臺(tái)路由器的成本不便宜,所以傳統(tǒng)實(shí)驗(yàn)的成本非常高。本實(shí)驗(yàn)系統(tǒng)采用了虛擬交換技術(shù),在一臺(tái)服務(wù)器上可以啟動(dòng)多個(gè)虛擬交換機(jī),所以成本大大降低。利用虛擬網(wǎng)絡(luò)和虛擬交換技術(shù),還可進(jìn)行其他網(wǎng)絡(luò)新技術(shù)的研究。
1.2高層虛擬交換模塊設(shè)計(jì)
在BGP/MPLS VPN體系結(jié)構(gòu)中,采用了高層虛擬交換機(jī)來(lái)實(shí)現(xiàn)CE,PE,P路由器。它在基于第二層虛擬交換機(jī)的基礎(chǔ)上,添加了高層的網(wǎng)絡(luò)協(xié)議模塊,以實(shí)現(xiàn)高層虛擬交換。二層虛擬交換機(jī)有以下幾個(gè)優(yōu)勢(shì):
①采用多線程技術(shù)大大提高了虛擬交換機(jī)的數(shù)據(jù)轉(zhuǎn)發(fā)性能;
②支持在一臺(tái)主機(jī)上多個(gè)虛擬交換機(jī)的并發(fā)運(yùn)行和通信;
③利用Socket技術(shù),支持不同主機(jī)上的虛擬交換機(jī)之間的通信;
④支持高層網(wǎng)路協(xié)議的擴(kuò)展;
⑤成本低廉,易于集中管理。
在控制層面上將第三層的OSPF路由協(xié)議,第四層的LDP標(biāo)簽交換協(xié)議和MPBGP擴(kuò)展邊界網(wǎng)關(guān)協(xié)議集成到虛擬交換機(jī)中,同時(shí)在數(shù)據(jù)層面上,將MPLS多協(xié)議標(biāo)簽交換加入數(shù)據(jù)處理模塊,這樣就實(shí)現(xiàn)了一個(gè)高層的虛擬交換機(jī),以滿足BGP/MPLS VPN的功能需要。
1.3CE和PE路由器的BGP模塊設(shè)計(jì)
1.3.1FSM狀態(tài)機(jī)
BGP協(xié)議通過(guò)端口號(hào)為179的TCP連接來(lái)進(jìn)行通信,當(dāng)虛擬交換機(jī)在179號(hào)端口發(fā)現(xiàn)一個(gè)TCP連接后,就為這個(gè)連接分配一個(gè)FSM狀態(tài)機(jī),以后就通過(guò)這個(gè)狀態(tài)機(jī)來(lái)控制BGP的路由和標(biāo)簽分發(fā)。
一個(gè)FSM狀態(tài)機(jī)有六種狀態(tài):1IDLE;2CONNECT;3ACTIVE;4OPENSENT;5OPENCONFIRM;6ESTABLISHED。
典型的狀態(tài)機(jī)變化過(guò)程如圖3所示。
圖3BGP狀態(tài)機(jī)變化過(guò)程
當(dāng)一對(duì)BGP Peer通過(guò)IGP的TCP連接建立了ESTABLISHED狀態(tài)后,就開(kāi)始進(jìn)行路由信息庫(kù)的同步。
1.3.2擴(kuò)展的BGP協(xié)議
BGP協(xié)議通過(guò)UPDATE數(shù)據(jù)包進(jìn)行路由信息的同步。它的一大特點(diǎn)是在UPDATE數(shù)據(jù)包中可以攜帶MPBGP信息,從而對(duì)標(biāo)準(zhǔn)的BGP進(jìn)行擴(kuò)展。根據(jù)BGP/MPLS VPN的系統(tǒng)要求,設(shè)計(jì)如下的MPBGP數(shù)據(jù)結(jié)構(gòu):
class MP_RIB{
String nexthop; //IPV4 of the next BGP
String prefix; //IPV4 of the destination;
int length; //前綴匹配長(zhǎng)度
Interface viainterface; //出接口
int label_in; //入標(biāo)簽
int label_out; //出標(biāo)簽
}
當(dāng)虛擬交換機(jī)啟動(dòng)了標(biāo)準(zhǔn)的BGP協(xié)議時(shí):
(1)對(duì)收到的MPBGP信息不作任何處理,不進(jìn)行轉(zhuǎn)發(fā)。
(2)對(duì)收到的標(biāo)準(zhǔn)BGP信息,則將信息加入標(biāo)準(zhǔn)路由信息庫(kù)RIB后,根據(jù)BGP信息分發(fā)規(guī)則,向BGP Peer分發(fā)信息。BGP信息分發(fā)規(guī)則是:如果是從EBGP收到的,則向所有其他的BGP Peer發(fā)送標(biāo)準(zhǔn)的BGP信息;如果是從IBGP收到的,則僅向EBGP Peer發(fā)送標(biāo)準(zhǔn)的BGP信息。
當(dāng)虛擬交換機(jī)啟動(dòng)了擴(kuò)展的BGP協(xié)議時(shí):
(1)對(duì)收到的MPBGP信息,則將信息加入擴(kuò)展路由信息庫(kù)MPRIB后,根據(jù)BGP信息分發(fā)規(guī)則,向BGP Peer同時(shí)分發(fā)標(biāo)準(zhǔn)和擴(kuò)展的BGP信息。
(2)對(duì)收到的標(biāo)準(zhǔn)BGP信息,將信息同時(shí)加入標(biāo)準(zhǔn)路由信息庫(kù)RIB和擴(kuò)展路由信息庫(kù)MPRIB后,根據(jù)BGP信息分發(fā)規(guī)則,向BGP Peer同時(shí)分發(fā)標(biāo)準(zhǔn)和擴(kuò)展的BGP信息。
1.3.3PE路由器的VRF模塊
為了讓PE路由器上能區(qū)分是由哪個(gè)本地接口上送來(lái)的VPN用戶路由,在PE路由器上創(chuàng)建了大量的VRF(VPN Routing and Forwarding)。每個(gè)VRF與一個(gè)虛擬交換機(jī)的接口對(duì)應(yīng)。
通過(guò)VRF,可以隔離不同VPN用戶之間的路由,也能解決不同VPN之間IP地址空間重疊的問(wèn)題。
VRF的數(shù)據(jù)結(jié)構(gòu)定義如下:
class VRF{
Interface inf; //當(dāng)前VRF綁定的虛擬交換機(jī)的接口
int rd; //Route Distinguisher
int rt; //Route Target
MP_RIB mp_rib; //擴(kuò)展路由信息庫(kù)
}
當(dāng)CE和PE的EBGP關(guān)系建立后,CE向PE發(fā)送標(biāo)準(zhǔn)的BGP路由信息。PE接收到標(biāo)準(zhǔn)路由信息后,將它加入與這個(gè)接口對(duì)應(yīng)的VRF內(nèi)的擴(kuò)展路由信息庫(kù),同時(shí)根據(jù)這個(gè)VRF的RD和RT,連同為它分配的入標(biāo)簽label_in(label_out為0,表示邊界路由器),向所有的PE發(fā)送擴(kuò)展BGP信息。
當(dāng)其他PE接收到擴(kuò)展BGP信息后,搜索所有的VRF,查找相匹配的RD和RT,將相應(yīng)的路由和標(biāo)簽安裝到VRF的路由信息庫(kù)和出標(biāo)簽label_out中,同時(shí)為它分發(fā)入標(biāo)簽,向CE發(fā)送標(biāo)準(zhǔn)的和擴(kuò)展的BGP信息。
2BGP/MPLS VPN的系統(tǒng)測(cè)試
2.1系統(tǒng)實(shí)現(xiàn)拓?fù)渑c配置
VRF結(jié)構(gòu)與BGP/MPLS VPN的拓?fù)渑渲萌鐖D4、圖5所示。
按照?qǐng)D5的BGP/MPLS VPN搭建好網(wǎng)絡(luò)拓?fù)浜?,在所有CE上啟動(dòng)標(biāo)準(zhǔn)BGP協(xié)議,在所有PE上啟動(dòng)擴(kuò)展BGP協(xié)議、OSPF協(xié)議、LDP協(xié)議,在所有的P路由器上啟動(dòng)OSPF協(xié)議、LDP協(xié)議。接著進(jìn)行VRF配置:
在PE1連向CE1的接口上配置VRF1(RD=1,RT=100)
在PE1連向CE2的接口上配置VRF2(RD=2,RT=200)
在PE2連向CE3的接口上配置VRF3(RD=1,RT=100)
在PE3連向CE4的接口上配置VRF4(RD=2,RT=200)
2.2系統(tǒng)測(cè)試
2.2.1控制層面測(cè)試
在控制層面上,CE3將自己的IP路由192.168.6.1通過(guò)標(biāo)準(zhǔn)BGP協(xié)議發(fā)送到PE2,PE2將這個(gè)IP裝入VRF3中的擴(kuò)展路由信息庫(kù),置目的地址和下一跳B(niǎo)GP為192.168.6.1,并分發(fā)出標(biāo)簽label_out=0,入標(biāo)簽label_in=1,連同RD=1,RT=1一起,通過(guò)擴(kuò)展BGP協(xié)議發(fā)送到PE1,PE3。在PE3上,搜索不到相匹配的VRF,所以不進(jìn)行處理。在PE1上,搜索到VRF1的RD與RT相匹配,于是將192.168.6.1這個(gè)IP裝入VRF1中的擴(kuò)展路由信息表,置目的地址為192.168.6.1,下一跳B(niǎo)GP為PE2的IP地址192.168.4.1,出標(biāo)簽label_out為1,分發(fā)入標(biāo)簽label_in為2,向VRF1綁定的CE1發(fā)送標(biāo)準(zhǔn)的和擴(kuò)展的BGP信息。于是CE1就學(xué)習(xí)到了CE3的路由,而CE2和CE4根本看不到CE1和CE3的存在。同理,CE2和CE4也可以互相學(xué)習(xí)到對(duì)方的路由。虛擬路由轉(zhuǎn)發(fā)如表1所示。
表1虛擬路由轉(zhuǎn)發(fā)表
prefix192.168.1.1192.168.6.1192.168.1.1192.168.6.1
length32323232
nexthop192.168.1.1192.168.4.1192.168.1.2192.168.6.1
viainterface1312
label_in3241
label_out0130配置
VRF2(RD=2,RT=200)VRF4(RD=2,RT=200)
prefix192.168.2.1192.168.6.1192.168.2.1192.168.6.1
length32323232
nexthop192.168.2.1192.168.5.1192.168.1.2192.168.6.1
viainterface2312
label_in7685
label_out0570
2.2.2數(shù)據(jù)層面測(cè)試
在數(shù)據(jù)層面上,當(dāng)CE1發(fā)送數(shù)據(jù)給CE3時(shí),CE1向PE1以192.168.6.1為目的IP地址發(fā)送數(shù)據(jù)包,PE1收到數(shù)據(jù)包后,在相對(duì)應(yīng)的VRF1中查找到路由,根據(jù)MPLS協(xié)議,將lable_out=1加入底層標(biāo)簽棧,同時(shí)查找到下一跳B(niǎo)GP的IP地址為PE2的IP(192.168.4.1),以PE2的IP(192.168.4.1)為目的地址,在IGP全局路由信息庫(kù)中查找,得到另一個(gè)出標(biāo)簽,將它加入頂層標(biāo)簽棧,然后將數(shù)據(jù)包從出接口發(fā)送出去。數(shù)據(jù)包通過(guò)P路由器的MPLS轉(zhuǎn)發(fā),頂層標(biāo)簽不斷變化,但底層標(biāo)簽保持不變。直到PE2收到這個(gè)數(shù)據(jù)包后,發(fā)現(xiàn)頂層標(biāo)簽指示自己是目的地址,于是PE2繼續(xù)查看底層標(biāo)簽,搜索到VRF3中有相應(yīng)的label_in=1相匹配。由于相應(yīng)的出標(biāo)簽label_out=0,所以PE2將所有的標(biāo)簽棧清空后,將數(shù)據(jù)包從viainterface出接口中發(fā)送出去。最后CE3就接收到了從CE1發(fā)送來(lái)的數(shù)據(jù)包,數(shù)據(jù)傳送成功,而CE2和CE4無(wú)法獲知數(shù)據(jù)包的內(nèi)容(表2)。
表2VPN數(shù)據(jù)測(cè)試結(jié)果
3結(jié)束語(yǔ)
本文實(shí)現(xiàn)了一種高層虛擬交換機(jī),并利用它實(shí)現(xiàn)了基于虛擬網(wǎng)絡(luò)的BGP/MPLS VPN系統(tǒng)的設(shè)計(jì),它支持多用戶并發(fā)控制的BGP/MPLS VPN實(shí)驗(yàn)系統(tǒng)和其他網(wǎng)絡(luò)新技術(shù)的研究。本文的下一步工作是如何通過(guò)高層虛擬交換機(jī)來(lái)進(jìn)一步實(shí)現(xiàn)IPSec over BGP/MPLS VPN。這種VPN系統(tǒng)擁有更高水平的數(shù)據(jù)機(jī)密性,同時(shí)又擁有BGP/MPLS VPN的所有優(yōu)點(diǎn)。
參考文獻(xiàn):
[1]C Metz.The Latest in VPN: Part I[J]. IEEE Internet Computing, 2003,7(1):8791.
[2]C Metz.The Latest in VPNs: Part II[J]. IEEE Internet Computing, 20-04,8(3):6065.
[3]RFC 17711995,A Border Gateway Protocol 4 (BGP4)[S].
[4]RFC 25471999, BGP/MPLS VPN[S].
[5]RFC 22831998,Multiprotocol Extensions for BGP4[S].
[6]Rekhter, Rosen.Carrying Label Information in BGP4[R]. Work in Progress,1999.
[7]RFC 29172000,A Core MPLS IP VPN Architecture[S].
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文