專利名稱:一種解決vpn子網(wǎng)地址沖突的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種解決VPN子網(wǎng)地址沖突的系統(tǒng)和方法;具體地說(shuō),涉及一種通過(guò)VPN設(shè)備建立隧道進(jìn)行內(nèi)網(wǎng)安全通信的系統(tǒng)和方法。
背景技術(shù):
隨著Internet的發(fā)展,越來(lái)越多的企業(yè)、高校和政府機(jī)關(guān)開(kāi)始采用因特網(wǎng)進(jìn)行通信應(yīng)用,電子政務(wù)、電子商務(wù)已經(jīng)成為人們的一種生活和工作的方式。為了保護(hù)網(wǎng)絡(luò)數(shù)據(jù)尤其是私有信息傳輸?shù)陌踩?,以往采用的做法是建立企業(yè)私有網(wǎng)絡(luò),以避免在公共網(wǎng)絡(luò)上傳輸數(shù)據(jù)。但這種做法的問(wèn)題在于,建立私有網(wǎng)絡(luò)成本高,建設(shè)周期長(zhǎng),靈活性差。虛擬專用網(wǎng)(Virtual Private Network,簡(jiǎn)稱VPN)就是為了解決這個(gè)問(wèn)題而產(chǎn)生的。它通過(guò)加密和驗(yàn)證網(wǎng)絡(luò)流量來(lái)保護(hù)在公共網(wǎng)絡(luò)上傳輸?shù)乃接行畔⒉粫?huì)被竊取和篡改。從而在并不安全的Internet上開(kāi)辟了一個(gè)安全的私有網(wǎng)絡(luò)。
當(dāng)前很多企業(yè)的網(wǎng)絡(luò)在剛開(kāi)始構(gòu)建的時(shí)候由于規(guī)模較小,應(yīng)用不是很多,所以在IP地址的管理方面沒(méi)有做到統(tǒng)一規(guī)劃,統(tǒng)一部署。一旦網(wǎng)絡(luò)擴(kuò)展,需要使用的IP地址增加,尤其是網(wǎng)絡(luò)接入方式越來(lái)越多樣化,這就導(dǎo)致了擴(kuò)展的企業(yè)網(wǎng)絡(luò)中不同部門(mén)、不同單位之間的子網(wǎng)地址沖突。如果影響范圍較小,那么可以由網(wǎng)管人員重新進(jìn)行分配。但是,假如影響范圍比較大,例如涉及到服務(wù)器地址、路由器配置的調(diào)整,那么就比較麻煩。尤其是企業(yè)需要通過(guò)VPN把全省甚至全國(guó)的分支機(jī)構(gòu)互聯(lián)起來(lái),構(gòu)建全網(wǎng)隧道訪問(wèn)的時(shí)候,不同分支機(jī)構(gòu)之間地址極有可能發(fā)生網(wǎng)址沖突。在這種情況下,普遍采取的做法就是由中心網(wǎng)管統(tǒng)一分配地址,重新進(jìn)行劃分,不僅費(fèi)時(shí)費(fèi)力,而且還要進(jìn)行大規(guī)模的網(wǎng)絡(luò)調(diào)整,從而增加了部署和管理的成本。
發(fā)明內(nèi)容
本發(fā)明的目的是克服上述現(xiàn)有方法的不足,提供一種解決VPN子網(wǎng)地址沖突的系統(tǒng)和方法,即通過(guò)對(duì)子網(wǎng)地址進(jìn)行區(qū)分映射,提供一種能夠不用進(jìn)行實(shí)際網(wǎng)絡(luò)拓?fù)涞恼{(diào)整,就能方便地實(shí)現(xiàn)在地址沖突的子網(wǎng)之間進(jìn)行VPN通信的系統(tǒng)和方法。
本發(fā)明的目的是這樣實(shí)現(xiàn)的1、解決VPN子網(wǎng)地址沖突的系統(tǒng)如圖1所示,本系統(tǒng)由VPN解密模塊1、網(wǎng)址地址映射模塊2、VPN加密模塊3、隧道庫(kù)4和映射庫(kù)5組成;VPN解密模塊1、網(wǎng)址地址映射模塊2、VPN加密模塊3依次串聯(lián)調(diào)用;網(wǎng)址地址映射模塊2單向調(diào)用映射庫(kù)5提供的功能函數(shù),VPN加密模塊3單向調(diào)用隧道庫(kù)4提供的隧道規(guī)則。
所述的VPN解密模塊1,負(fù)責(zé)對(duì)進(jìn)入的VPN報(bào)文進(jìn)行解密處理,并對(duì)報(bào)文進(jìn)行標(biāo)志。
所述的網(wǎng)址地址映射模塊2,負(fù)責(zé)根據(jù)報(bào)文的屬性,查找子網(wǎng)映射表對(duì)報(bào)文的源地址或目的地址進(jìn)行映射替換。
所述的VPN加密模塊3,負(fù)責(zé)對(duì)外出的報(bào)文進(jìn)行VPN隧道規(guī)則匹配檢查,如果匹配,那么就進(jìn)行加密處理。
所述的映射庫(kù)4,為一種函數(shù)庫(kù),負(fù)責(zé)提供網(wǎng)址地址映射的信息;所述的隧道庫(kù)5,負(fù)責(zé)提供VPN隧道配置的信息,包括源子網(wǎng)、目的子網(wǎng)、加密算法、驗(yàn)證算法、安全參數(shù)等信息。
2、解決VPN子網(wǎng)地址沖突的方法如圖2,如果網(wǎng)絡(luò)系統(tǒng)中存在第一VPN設(shè)備6和第二VPN設(shè)備7,而第一VPN設(shè)備6和第二VPN設(shè)備7保護(hù)的子網(wǎng)相同;則這樣的兩個(gè)設(shè)備之間要建立VPN隧道進(jìn)行通信,如圖3,則本方法包括下列步驟第一步為沖突的子網(wǎng)分別設(shè)置一個(gè)虛子網(wǎng)地址。
第二步在VPN的映射庫(kù)中增加虛子網(wǎng)轉(zhuǎn)換規(guī)則,即本地內(nèi)部子網(wǎng)->轉(zhuǎn)換后的虛子網(wǎng),配置文件格式是內(nèi)部子網(wǎng)inner_net虛子網(wǎng)virtual net掩碼mask。其中子網(wǎng)的掩碼要保證一致,這樣才能實(shí)現(xiàn)一對(duì)一的轉(zhuǎn)換,否則就會(huì)在轉(zhuǎn)換過(guò)程中丟失地址信息,因此界面需要進(jìn)行控制。
第三步在VPN網(wǎng)關(guān)設(shè)置隧道時(shí)把本地子網(wǎng)設(shè)置成對(duì)外的虛子網(wǎng)號(hào),即本地外出的新的報(bào)文地址。
第四步在系統(tǒng)中增加IPSec預(yù)處理模塊,即該模塊主要完成如下工作如果該報(bào)文是外出明文,那么就對(duì)報(bào)文的源地址進(jìn)行檢查,如果匹配轉(zhuǎn)換配置中的內(nèi)部子網(wǎng),那么就根據(jù)公式1計(jì)算轉(zhuǎn)換后的外出源virtual_ip,通過(guò)新的外出源和報(bào)文目的再進(jìn)行VPN隧道庫(kù)的規(guī)則匹配。如果匹配隧道,那么標(biāo)志該報(bào)文的轉(zhuǎn)換地址ipsec_snat_ip,以通知網(wǎng)址地址映射模塊2進(jìn)行地址轉(zhuǎn)換。同時(shí)標(biāo)志報(bào)文需要做IPSEC,從而通知VPN加密模塊3進(jìn)行加密。如果不匹配,那么就直接放行。
公式1virtual_ip=~(mask)&sip|virtual_net如果報(bào)文是VPN解密后的明文,那么就對(duì)報(bào)文的目的地址進(jìn)行虛子網(wǎng)匹配檢查,如果匹配映射庫(kù)的規(guī)則,那么就按照公式2計(jì)算轉(zhuǎn)換后的本地目的內(nèi)部地址inner_ip,并標(biāo)志該報(bào)文的轉(zhuǎn)換地址ipsec_dnat_ip,然后通知NPT進(jìn)行地址轉(zhuǎn)換,進(jìn)而發(fā)送到內(nèi)部網(wǎng)絡(luò)。
公式2inner_ip=~(mask)&dip|inner_net第五步網(wǎng)址映射模塊對(duì)收到的報(bào)文進(jìn)行處理,即首先進(jìn)行連接檢查,如果存在對(duì)應(yīng)連接,就對(duì)報(bào)文進(jìn)行處理,轉(zhuǎn)發(fā);否則就對(duì)報(bào)文進(jìn)行訪問(wèn)控制檢查;如果通過(guò),建立新連接,檢查報(bào)文相關(guān)結(jié)構(gòu)中的ipsec_snat_ip和ipsec_dnat_ip信息,如果存在就進(jìn)行對(duì)應(yīng)的網(wǎng)絡(luò)地址轉(zhuǎn)換。
第六步VPN加密模塊3對(duì)處理后的報(bào)文進(jìn)行加密,即首先檢查規(guī)則,如果匹配加密規(guī)則,就進(jìn)行加密封裝,并發(fā)送出去。
從本系統(tǒng)的上述處理過(guò)程可以看出,發(fā)生沖突的子網(wǎng)需要對(duì)網(wǎng)絡(luò)地址進(jìn)行虛擬映射,對(duì)內(nèi)保持原有的網(wǎng)址不變,但是對(duì)外則映射成另外一個(gè)虛地址。外部訪問(wèn)本地,必須使用映射地址進(jìn)行訪問(wèn);而內(nèi)部主機(jī)訪問(wèn)外部也必須經(jīng)過(guò)VPN設(shè)備轉(zhuǎn)換為虛地址進(jìn)行訪問(wèn)。但是這種地址映射不是常規(guī)意義上的單機(jī)地址轉(zhuǎn)換,而是網(wǎng)絡(luò)地址映射。我們知道每一個(gè)IP地址分為網(wǎng)絡(luò)部分和主機(jī)部分,單機(jī)地址轉(zhuǎn)換是把一個(gè)IP轉(zhuǎn)換為另外一個(gè)沒(méi)有任何關(guān)系的IP地址。而網(wǎng)絡(luò)地址映射只是改變IP地址的網(wǎng)絡(luò)部分,主機(jī)部分不變,這樣新的IP和原IP就有了某種程度的對(duì)應(yīng)關(guān)系。例如如果把192.168.1.15的網(wǎng)絡(luò)地址192.168.1.0/24,映射成172.16.3.0/24,那么新的Ip就是172.16.3.15。因此通過(guò)虛子網(wǎng)的映射,可以不用改變內(nèi)部網(wǎng)絡(luò)中主機(jī)的實(shí)際地址,就能夠和對(duì)方子網(wǎng)進(jìn)行通信。
本發(fā)明和傳統(tǒng)方法相比具有以下優(yōu)點(diǎn)1、創(chuàng)新的虛子網(wǎng)概念,能夠屏蔽沖突的子網(wǎng)地址,不用對(duì)網(wǎng)絡(luò)進(jìn)行大規(guī)模的調(diào)整,就能方便地進(jìn)行子網(wǎng)之間的VPN通信,從而大大節(jié)省網(wǎng)絡(luò)部署的成本。
2、在整個(gè)企業(yè)網(wǎng)絡(luò)范圍內(nèi),構(gòu)建一個(gè)真實(shí)的物理網(wǎng)絡(luò)之上的虛擬網(wǎng)絡(luò)。通過(guò)虛擬網(wǎng)絡(luò)地址可以在不同地域和網(wǎng)絡(luò)之間進(jìn)行相互通信,而不用擔(dān)心子網(wǎng)沖突的問(wèn)題,極大地增強(qiáng)了網(wǎng)絡(luò)的靈活性和擴(kuò)展性。
圖1-本發(fā)明的系統(tǒng)方框圖;圖2-VPN子網(wǎng)沖突示意圖;圖3-解決VPN子網(wǎng)沖突的實(shí)現(xiàn)過(guò)程示意圖;圖4-本發(fā)明的系統(tǒng)可實(shí)施流程圖。
其中1-VPN解密模塊;2-網(wǎng)址地址映射模塊;3-VPN加密模塊;4-隧道庫(kù);5-映射庫(kù);6-第一VPN設(shè)備;7-第二VPN設(shè)備;8-第一計(jì)算機(jī);9-第二計(jì)算機(jī);主要縮略語(yǔ)VPN(Virtual Private Network)-虛擬專用網(wǎng);TPSec-IP協(xié)議安全;inner_net-內(nèi)部子網(wǎng);
virtual net-虛子網(wǎng);mask-子網(wǎng)掩碼;virtual_ip-虛IP地址;ipsec_snat_ip-IPSec源IP地址轉(zhuǎn)換;sip-源IP地址;dip-目的IP地址;inner_ip-內(nèi)部IP地址;ipsec_dnat_ip-IPSec目的IP地址。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例進(jìn)一步說(shuō)明。
1、解決VPN子網(wǎng)地址沖突的系統(tǒng)(1)VPN解密模塊1VPN解密模塊1的典型實(shí)現(xiàn)是Internet開(kāi)源軟件FreeSWAN;FreeSWAN是一種在Linux操作系統(tǒng)上實(shí)現(xiàn)的IPSec和因特網(wǎng)密鑰交換協(xié)議的軟件。
(2)網(wǎng)址地址映射模塊2網(wǎng)址地址映射模塊2作為一個(gè)操作系統(tǒng)核心層模塊運(yùn)行,可以對(duì)外出的報(bào)文進(jìn)行截獲,并提取報(bào)文的IP地址信息;通過(guò)對(duì)映射庫(kù)5的檢查,來(lái)對(duì)報(bào)文的源地址和目的地址進(jìn)行替換。
(3)VPN加密模塊3VPN加密模塊3的典型實(shí)現(xiàn)是Internet開(kāi)源軟件FreeSWAN;FreeSWAN是一種在Linux操作系統(tǒng)上實(shí)現(xiàn)的IPSec和因特網(wǎng)密鑰交換協(xié)議的軟件。
(4)映射庫(kù)4映射庫(kù)4為網(wǎng)址地址映射模塊2提供添加、修改、查找和刪除網(wǎng)址映射參數(shù)的功能;同時(shí)映射庫(kù)4還維護(hù)一個(gè)映射表,即本地內(nèi)部子網(wǎng)和轉(zhuǎn)換后的虛擬子網(wǎng)的對(duì)應(yīng)關(guān)系。
(5)隧道庫(kù)5隧道庫(kù)5的典型實(shí)現(xiàn)是Internet開(kāi)源軟件FreeSWAN;FreeSWAN是一種在Linux操作系統(tǒng)上實(shí)現(xiàn)的IPSec和因特網(wǎng)密鑰交換協(xié)議的軟件。
2、解決VPN子網(wǎng)地址沖突的方法(1)圖2中,第一VPN設(shè)備6和第二VPN設(shè)備7分別保護(hù)兩個(gè)子網(wǎng),但是這兩個(gè)子網(wǎng)的地址都是192.168.2.0/24網(wǎng)段。那么在這種情況下這兩個(gè)子網(wǎng)之間是無(wú)法建立VPN隧道互相訪問(wèn)的,按照傳統(tǒng)方法,必須修改其中一個(gè)子網(wǎng)的地址。但是采用本發(fā)明,可以通過(guò)設(shè)置虛子網(wǎng)的方法來(lái)方便地解決這個(gè)問(wèn)題。
(2)具體過(guò)程如下圖3所示。
圖3中,第一VPN設(shè)備6所保護(hù)的子網(wǎng)地址是192.168.2.0/24,但是虛子網(wǎng)地址是192.168.3.0/24;第二VPN設(shè)備7所保護(hù)的子網(wǎng)地址也是192.168.2.0/24,但是虛子網(wǎng)地址是192.168.4.0/24,這樣新的網(wǎng)絡(luò)地址就不會(huì)沖突了。當(dāng)?shù)谝籚PN設(shè)備6內(nèi)部第一主機(jī)8(192.168.2.2)希望訪問(wèn)第二VPN設(shè)備7內(nèi)部第二主機(jī)9(192.168.2.2)時(shí),訪問(wèn)對(duì)方的IP必須是虛子網(wǎng)的IP即192.168.4.2。同理當(dāng)?shù)诙PN設(shè)備7內(nèi)部第二主機(jī)9(192.168.2.2)希望訪問(wèn)第一VPN設(shè)備6內(nèi)部第一主機(jī)8(192.168.2.2)的時(shí)候,訪問(wèn)對(duì)方的IP也必須是虛子網(wǎng)的IP即192.168.3.2。這樣,才能使雙方互相進(jìn)行訪問(wèn),而不會(huì)引發(fā)沖突。所有的子網(wǎng)映射全部在VPN網(wǎng)關(guān)上完成了。
(3)目前系統(tǒng)可實(shí)施的一種流程如圖4所示。具體的流程說(shuō)明如下系統(tǒng)判斷收到的報(bào)文是否是解密報(bào)文a,如果是,則設(shè)置隧道通信標(biāo)志b,同時(shí)檢查解密報(bào)文的目的地址是否是虛子網(wǎng)地址c,如果是,則建立目的地址轉(zhuǎn)換連接d,進(jìn)而將報(bào)文發(fā)送到內(nèi)部網(wǎng)絡(luò)e;如果收到的報(bào)文不是解密報(bào)文(即是需要發(fā)送的明文),則判斷源地址是否匹配實(shí)子網(wǎng)f,如果匹配,則將源地址映射成虛子網(wǎng)地址并查詢隧道是否存在g,如果存在相應(yīng)的隧道,則設(shè)置隧道通信標(biāo)志I,并建立源地址轉(zhuǎn)換連接,將報(bào)文進(jìn)行處理后發(fā)送出去j;若系統(tǒng)截獲的明文沒(méi)有找到匹配的實(shí)子網(wǎng)或者沒(méi)有查詢到相應(yīng)的隧道,則以原始源IP地址查詢隧道1,如果隧道匹配,說(shuō)明該報(bào)文的源IP地址無(wú)須進(jìn)行子網(wǎng)映射,則設(shè)置隧道通信標(biāo)志n,報(bào)文直接走正常的流程發(fā)送出去;如果以上條件均不滿足,則不做任何處理,直接返回。
要想實(shí)現(xiàn)本發(fā)明,必須具備一個(gè)VPN網(wǎng)關(guān)系統(tǒng)例如FreeSwan,操作系統(tǒng)可以是Linux、VXWorks等,編程語(yǔ)言是C或C++。
除了應(yīng)用于兩個(gè)沖突的VPN子網(wǎng)之間進(jìn)行通信外,本發(fā)明還可以解決具有相同子網(wǎng)地址的不同物理網(wǎng)絡(luò)訪問(wèn)同一個(gè)公共子網(wǎng)的時(shí)候,對(duì)沖突的VPN地址如何進(jìn)行區(qū)分的問(wèn)題。此外,本發(fā)明也可以在防火墻等訪問(wèn)控制設(shè)備上進(jìn)行子網(wǎng)轉(zhuǎn)換時(shí)采用。
權(quán)利要求
1.一種解決VPN子網(wǎng)地址沖突的系統(tǒng),其特征在于由VPN解密模塊(1)、網(wǎng)址地址映射模塊(2)、VPN加密模塊(3)、隧道庫(kù)(4)和映射庫(kù)(5)組成;VPN解密模塊(1)、網(wǎng)址地址映射模塊(2)、VPN加密模塊(3)依次串聯(lián)調(diào)用;網(wǎng)址地址映射模塊(2)單向調(diào)用映射庫(kù)(5)提供的功能函數(shù),VPN加密模塊(3)單向調(diào)用隧道庫(kù)(4)提供的隧道規(guī)則;所述的VPN解密模塊(1),負(fù)責(zé)對(duì)進(jìn)入的VPN報(bào)文進(jìn)行解密處理,并對(duì)報(bào)文進(jìn)行標(biāo)志;所述的網(wǎng)址地址映射模塊(2),負(fù)責(zé)根據(jù)報(bào)文的屬性,查找子網(wǎng)映射表對(duì)報(bào)文的源地址或目的地址進(jìn)行映射替換;所述的VPN加密模塊(3),負(fù)責(zé)對(duì)外出的報(bào)文進(jìn)行VPN隧道規(guī)則匹配檢查,如果匹配,那么就進(jìn)行加密處理;所述的映射庫(kù)(4),為一種函數(shù)庫(kù),負(fù)責(zé)提供網(wǎng)址地址映射的信息;所述的隧道庫(kù)(5),負(fù)責(zé)提供VPN隧道配置的信息,包括源子網(wǎng)、目的子網(wǎng)、加密算法、驗(yàn)證算法、安全參數(shù)信息。
2.一種解決VPN子網(wǎng)地址沖突的方法,其特征在于如果網(wǎng)絡(luò)系統(tǒng)中存在第一VPN設(shè)備(6)和第二VPN設(shè)備(7),而第一VPN設(shè)備(6)和第二VPN設(shè)備(7)保護(hù)的子網(wǎng)相同;則這樣的兩個(gè)設(shè)備之間要建立VPN隧道進(jìn)行通信,包括下列步驟第一步,為沖突的子網(wǎng)分別設(shè)置一個(gè)虛子網(wǎng)地址;第二步,在VPN的映射庫(kù)中增加虛子網(wǎng)轉(zhuǎn)換規(guī)則;第三步,在VPN網(wǎng)關(guān)設(shè)置隧道時(shí)把本地子網(wǎng)設(shè)置成對(duì)外的虛子網(wǎng)號(hào),即本地外出的新的報(bào)文地址;第四步,在系統(tǒng)中增加IPSec預(yù)處理模塊;第五步,網(wǎng)址映射模塊對(duì)收到的報(bào)文進(jìn)行處理;第六步,VPN加密模塊3對(duì)處理后的報(bào)文進(jìn)行加密。
全文摘要
本發(fā)明公開(kāi)了一種解決VPN子網(wǎng)地址沖突的系統(tǒng)和方法;涉及一種通過(guò)VPN設(shè)備建立隧道進(jìn)行內(nèi)網(wǎng)安全通信的系統(tǒng)和方法。本系統(tǒng)由VPN解密模塊1、網(wǎng)址地址映射模塊2、VPN加密模塊3、隧道庫(kù)4和映射庫(kù)5組成;VPN解密模塊1、網(wǎng)址地址映射模塊2、VPN加密模塊3依次串聯(lián)調(diào)用;網(wǎng)址地址映射模塊2單向調(diào)用映射庫(kù)5提供的功能函數(shù),VPN加密模塊3單向調(diào)用隧道庫(kù)4提供的隧道規(guī)則。本方法通過(guò)網(wǎng)絡(luò)映射形成的虛擬子網(wǎng),可以解決子網(wǎng)沖突的問(wèn)題,從而增加了VPN系統(tǒng)對(duì)網(wǎng)絡(luò)環(huán)境的適應(yīng)能力。本發(fā)明大大節(jié)省網(wǎng)絡(luò)部署的成本;通過(guò)虛擬網(wǎng)絡(luò)地址可以在不同地域和網(wǎng)絡(luò)之間進(jìn)行相互通信,而不用擔(dān)心子網(wǎng)沖突的問(wèn)題,極大地增強(qiáng)了網(wǎng)絡(luò)的靈活性和擴(kuò)展性。
文檔編號(hào)H04L9/00GK1744565SQ200510019469
公開(kāi)日2006年3月8日 申請(qǐng)日期2005年9月22日 優(yōu)先權(quán)日2005年9月22日
發(fā)明者張?jiān)弃Q, 陳琳, 王美珍 申請(qǐng)人:武漢思為同飛網(wǎng)絡(luò)技術(shù)有限公司