專利名稱:一種訪問(wèn)vpn服務(wù)端內(nèi)網(wǎng)資源的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的方法及裝置。
背景技術(shù):
安全套接層(Secure Sockets Layer, SSL)是一套Internet數(shù)據(jù)安全協(xié)議,它已被廣泛地用于web瀏覽器與服務(wù)器之間的身份認(rèn)證和加密數(shù)據(jù)傳輸。SSL協(xié)議位于TCP/IP 協(xié)議與各種應(yīng)用層協(xié)議之間,建立在可靠的傳輸協(xié)議(如TCP協(xié)議)之上,為高層協(xié)議數(shù)據(jù)通訊提供數(shù)據(jù)封裝、壓縮、加密等安全支持。
虛擬專用網(wǎng)(Virtual Private Network, VPN)被定義為通過(guò)一個(gè)公用網(wǎng)絡(luò)(通常是因特網(wǎng))建立一個(gè)臨時(shí)的、安全的連接,是一條穿過(guò)混亂的公用網(wǎng)絡(luò)的安全、穩(wěn)定的隧道。 虛擬專用網(wǎng)是對(duì)企業(yè)公司分支機(jī)構(gòu)、商業(yè)伙伴及供應(yīng)商同公司的內(nèi)部網(wǎng)建立可信的安全連接,并保證數(shù)據(jù)的安全傳輸。
SSL VPN即指采用SSL協(xié)議來(lái)實(shí)現(xiàn)遠(yuǎn)程接入的一種新型VPN技術(shù),因?yàn)镾SL協(xié)議被內(nèi)置于IE等瀏覽器中,使用SSL協(xié)議進(jìn)行認(rèn)證和數(shù)據(jù)加密的SSL VPN就可以免于安裝客戶端。相對(duì)于傳統(tǒng)的IPSec VPN而言,SSL VPN具有部署簡(jiǎn)單、無(wú)客戶端、維護(hù)成本低、網(wǎng)絡(luò)適應(yīng)強(qiáng)等特點(diǎn),這兩種類型的VPN之間的差別就類似C/S構(gòu)架和B/S構(gòu)架的區(qū)別。
單純只有B/S模式的SSL VPN,也叫web代理技術(shù),其最大優(yōu)點(diǎn)是可以免客戶端,直接以瀏覽器訪問(wèn)VPN內(nèi)網(wǎng)的web資源。但是,無(wú)法訪問(wèn)內(nèi)網(wǎng)的其他C/S應(yīng)用,如遠(yuǎn)程桌面、 郵件系統(tǒng)、文件共享、FTP、數(shù)據(jù)庫(kù)和ERP等;實(shí)際上,甚至有通過(guò)客戶端訪問(wèn)整個(gè)VPN子網(wǎng)資 源的需求存在。因此,實(shí)際商用中,SSL VPN也需要通過(guò)安裝客戶端控件的方式來(lái)實(shí)現(xiàn)遠(yuǎn)程安全傳輸其他C/S應(yīng)用,其中最關(guān)鍵技術(shù)是網(wǎng)絡(luò)連接(Network Connection, NC),其原理是 SSL VPN客戶端連接服務(wù)器端認(rèn)證后,由服務(wù)器端分配虛擬IP地址給客戶端,以虛擬IP地址來(lái)訪問(wèn)內(nèi)網(wǎng)資源,并被外層SSL安全隧道加密傳輸。
SSL VPN的這種網(wǎng)絡(luò)連接技術(shù),類似于IPSec VPN的客戶端模式,其本質(zhì)區(qū)別是 IPSec VPN使用IKE協(xié)商,使用ESP/AH協(xié)議傳輸數(shù)據(jù),而SSL VPN使用SSL協(xié)議協(xié)商和傳輸數(shù)據(jù)。在易用性方面,IPSec VPN客戶端需要預(yù)先安裝在使用者的PC中,而SSL VPN的客戶端,可以在用戶登錄到SSL VPN服務(wù)器網(wǎng)關(guān)上認(rèn)證后自動(dòng)以Active控件形式安裝和自動(dòng)運(yùn)行,省去了預(yù)先安裝的繁瑣和客戶端版本升級(jí)需要使用者手動(dòng)卸載安裝等步驟,能更方便于移動(dòng)用戶遠(yuǎn)程辦公使用。
SSL VPN的網(wǎng)絡(luò)連接技術(shù)的客戶端具體實(shí)現(xiàn),就是每個(gè)用戶登錄認(rèn)證成功后,SSL VPN客戶端以SSL協(xié)議連接服務(wù)器端,創(chuàng)建安全隧道,發(fā)送控制報(bào)文,請(qǐng)求分配虛擬IP地址和可訪問(wèn)的內(nèi)網(wǎng)IP網(wǎng)段資源;每個(gè)客戶端可以分配到彼此不相同的虛擬IP地址,在客戶端所在的操作系統(tǒng)中啟用一塊虛擬網(wǎng)卡,設(shè)置虛擬網(wǎng)卡的IP地址為分配得到的虛擬IP地址; 對(duì)內(nèi)網(wǎng)IP網(wǎng)段資源在操作系統(tǒng)中添加出接口為虛擬網(wǎng)卡的路由,讓目的IP地址在該網(wǎng)段內(nèi)的數(shù)據(jù)查路由后,出接口為虛擬網(wǎng)卡,操作系統(tǒng)會(huì)自動(dòng)為數(shù)據(jù)報(bào)文添加源IP地址為虛擬網(wǎng)卡上對(duì)應(yīng)的IP地址,即從VPN服務(wù)端分配的虛擬IP地址,此時(shí)的報(bào)文,我們稱為內(nèi)層報(bào)文。圖1是現(xiàn)有技術(shù)中SSL VPN客戶端的實(shí)現(xiàn)原理圖,圖中,實(shí)線是發(fā)出報(bào)文加密流程,虛線是接收?qǐng)?bào)文解密流程。如圖1所示,當(dāng)用戶訪問(wèn)SSL VPN網(wǎng)關(guān)保護(hù)的內(nèi)網(wǎng)IP網(wǎng)段時(shí),如ftp、遠(yuǎn)程桌面等內(nèi)網(wǎng)IP資源,其數(shù)據(jù)流到達(dá)網(wǎng)絡(luò)層后,查找系統(tǒng)路由表走到出接口虛擬網(wǎng)卡;SSL VPN客戶端從虛擬網(wǎng)卡讀取出這些需保護(hù)的內(nèi)網(wǎng)訪問(wèn)數(shù)據(jù)(此時(shí)的數(shù)據(jù)其實(shí)已經(jīng)是一個(gè)個(gè)IP報(bào)文,其源IP地址是虛擬網(wǎng)卡上的IP地址,目的IP是具體應(yīng)用(如FTP)的目的IP地址),把數(shù)據(jù)進(jìn)行加密封裝上外層報(bào)文頭,從SSL安全隧道中發(fā)送出去。圖2是現(xiàn)有技術(shù)中SSL VPN的組網(wǎng)示意圖,如圖2所示,用戶主機(jī)(PC)所處內(nèi)網(wǎng)地址網(wǎng)段是192. 168.1. 0/24網(wǎng)段,VPN網(wǎng)關(guān)(即VPN服務(wù)端)內(nèi)網(wǎng)也是192. 168.1. 0/24網(wǎng)段,用戶通過(guò)VPN撥入后,本端內(nèi)網(wǎng)環(huán)境中和VPN網(wǎng)關(guān)內(nèi)網(wǎng)中,可能都存在相同IP地址的設(shè)備,如192. 168.1. 1,這樣,勢(shì)必存在由于地址網(wǎng)段重疊或沖突,帶來(lái)的無(wú)法正常訪問(wèn)VPN內(nèi) 網(wǎng)服務(wù)器的問(wèn)題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的是提供一種訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的方法及裝置,能夠解決由于VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段重疊造成的、用戶主機(jī)無(wú)法正常訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的問(wèn)題。為實(shí)現(xiàn)上述目的,本發(fā)明提供技術(shù)方案如下一種訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的方法,應(yīng)用于用戶主機(jī)上,所述方法包括使用用戶主機(jī)的真實(shí)IP地址與VPN服務(wù)端建立隧道連接,并獲取VPN服務(wù)端發(fā)送的虛擬IP地址和可訪問(wèn)的內(nèi)網(wǎng)網(wǎng)段資源;如果VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段重疊,則將VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段轉(zhuǎn)換為與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段不重疊的代理網(wǎng)段,并在路由表中添加代理網(wǎng)段的出接口為所述虛擬IP地址的路由;當(dāng)用戶需要訪問(wèn)VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段資源時(shí),提示用戶將訪問(wèn)的目的IP地址修改為所述代理網(wǎng)段中的IP地址;獲取到達(dá)所述虛擬IP地址的數(shù)據(jù)報(bào)文,數(shù)據(jù)報(bào)文的源IP地址為所述虛擬IP地址,目的IP地址還原為VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段中的IP地址,并將修改后的數(shù)據(jù)報(bào)文封裝為隧道報(bào)文后通過(guò)所述隧道發(fā)送出去。上述的方法,其中,還包括接收到VPN服務(wù)端發(fā)送的隧道報(bào)文后,獲取所述隧道報(bào)文的內(nèi)層報(bào)文,將所述內(nèi)層報(bào)文的源IP地址修改為所述代理網(wǎng)段中的IP地址后,將修改后的內(nèi)層報(bào)文發(fā)送到所述虛擬IP地址;獲取到達(dá)所述虛擬IP地址的所述內(nèi)層報(bào)文,根據(jù)路由信息將所述內(nèi)層報(bào)文上送到應(yīng)用層處理。一種訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的裝置,應(yīng)用于用戶主機(jī)上,所述裝置包括VPN建立單元,用于使用用戶主機(jī)的真實(shí)IP地址與VPN服務(wù)端建立隧道連接,并獲取VPN服務(wù)端發(fā)送的虛擬IP地址和可訪問(wèn)的內(nèi)網(wǎng)網(wǎng)段資源;
路由處理單元,用于如果VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段重疊,則將 VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段轉(zhuǎn)換為與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段不重疊的代理網(wǎng)段,并在路由表中添加代理網(wǎng)段的出接口為所述虛擬IP地址的路由;
提示單元,用于當(dāng)用戶需要訪問(wèn)VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段資源時(shí),提示用戶將訪問(wèn)的目的IP地址修改為所述代理網(wǎng)段中的IP地址;
VPN處理單元,用于獲取到達(dá)所述虛擬IP地址的數(shù)據(jù)報(bào)文,數(shù)據(jù)報(bào)文的源IP地址為所述虛擬IP地址,目的IP地址還原為VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段中的IP地址,并將修改后的數(shù)據(jù)報(bào)文封裝為隧道報(bào)文后通過(guò)所述隧道發(fā)送出去。
上述的裝置,其中
所述VPN處理單元還用于,接收到VPN服務(wù)端發(fā)送的隧道報(bào)文后,獲取所述隧道報(bào)文的內(nèi)層報(bào)文,將所述內(nèi)層報(bào)文的源IP地址修改為所述代理網(wǎng)段中的IP地址后,將修改后的內(nèi)層報(bào)文發(fā)送到所述虛擬IP地址;
所述路由處理單元還用于,獲取到達(dá)所述虛擬IP地址的所述內(nèi)層報(bào)文,根據(jù)路由信息將所述內(nèi)層報(bào)文上送到應(yīng)用層處理。
與現(xiàn)有技術(shù)相比,根據(jù)本發(fā)明的技術(shù)方案,當(dāng)確定VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段重疊時(shí),可以自動(dòng)將重疊的地址網(wǎng)段轉(zhuǎn)換為代理網(wǎng)段后在路由表中增加相應(yīng)的路由信息,并在用戶訪問(wèn)VPN服務(wù)端的內(nèi)網(wǎng)資源時(shí),提示用戶對(duì)目的IP地址進(jìn)行相應(yīng)的修改,如此,解決了由于VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段重疊造成的、用戶主機(jī)無(wú)法正常訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的問(wèn)題。
本發(fā)明的最大優(yōu)點(diǎn)就是SSLVPN客戶端所在PC處在路由器內(nèi)網(wǎng)中,且其內(nèi)網(wǎng)IP網(wǎng)段,與VPN網(wǎng)關(guān)內(nèi)網(wǎng)服務(wù)器網(wǎng)段重疊或沖突時(shí),本發(fā)明可以自動(dòng)轉(zhuǎn)換重疊的地址網(wǎng)段,并提示用戶如何訪問(wèn)內(nèi)網(wǎng)服務(wù)器的功能。
圖1是現(xiàn)有技術(shù)中SSL VPN客戶端的實(shí)現(xiàn)原理圖2是現(xiàn)有技術(shù)中SSL VPN的組網(wǎng)示意圖3是本發(fā)明的訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的方法流程圖4是本發(fā)明的訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的一個(gè)具體實(shí)例示意圖。
具體實(shí)施方式
請(qǐng)繼續(xù)參照?qǐng)D2,由于PC所在內(nèi)網(wǎng)和VPN網(wǎng)關(guān)內(nèi)網(wǎng)都是192. 168.1. 0/24網(wǎng)段,想要同時(shí)既能訪問(wèn)PC所處環(huán)境中本身的局域網(wǎng),又能訪問(wèn)VPN虛擬專用網(wǎng)中的相同地址的內(nèi)網(wǎng),一種方法是,修改PC端內(nèi)網(wǎng)網(wǎng)段,把PC和家用或辦公用的路由器內(nèi)網(wǎng)地址,改為其他網(wǎng)段(如192. 168. 100. 0/24),與VPN內(nèi)網(wǎng)地址不再重疊。但是,這需要用戶懂一些相關(guān)網(wǎng)絡(luò)知識(shí),并且,路由器的接口地址也需要允許修改才行,假如用戶出差在酒店上網(wǎng),路由器地址就不能隨意更改了。
為此,本發(fā)明實(shí)施例提供一種訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的方法及裝置,不需要修改PC和路由器的內(nèi)網(wǎng)地址網(wǎng)段,而是由VPN客戶端自動(dòng)檢測(cè)本機(jī)IP所處網(wǎng)段是否與將要訪問(wèn)的VPN內(nèi)網(wǎng)資源網(wǎng)段重疊,如果重疊,則在PC上VPN客戶端中對(duì)VPN內(nèi)網(wǎng)服務(wù)器網(wǎng)段做地址代理轉(zhuǎn)換工作,來(lái)解決地址重疊問(wèn)題。繼續(xù)以圖2為例,如果檢測(cè)到內(nèi)網(wǎng)資源網(wǎng)段為192. 168.1. 0/24,那么自動(dòng)將其網(wǎng)絡(luò)地址加一,轉(zhuǎn)換為192. 68. 2. 0/24,再對(duì)本機(jī)添加路由表?xiàng)l目,目的地址192. 168. 2. 0/24出接口為虛擬網(wǎng)卡,這樣,192. 168.1. 0/24網(wǎng)段查路由后,出接口為真實(shí)網(wǎng)卡傳輸?shù)骄钟蚓W(wǎng),192. 168. 2. 0/24網(wǎng)段查路由后,出接口為虛擬網(wǎng)卡,通過(guò)VPN隧道發(fā)送到服務(wù)端,如此便解決了地址沖突的問(wèn)題。以下結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)描述。圖3為本發(fā)明的訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的方法流程圖,所述方法應(yīng)用于于圖2所示的組網(wǎng)環(huán)境中的用戶主機(jī)(PC)上。參照?qǐng)D2和圖3,所述方法可以包括如下步驟步驟301,使用用戶主機(jī)的真實(shí)IP地址與VPN服務(wù)端建立隧道連接,并獲取VPN服務(wù)端發(fā)送的虛擬IP地址和可訪問(wèn)的內(nèi)網(wǎng)網(wǎng)段資源;
VPN服務(wù)端即圖中的VPN網(wǎng)關(guān),用戶主機(jī)的真實(shí)IP地址是指其真實(shí)網(wǎng)卡的IP地址。用戶主機(jī)可以通過(guò)建立的隧道來(lái)獲取所述虛擬IP地址和可訪問(wèn)的內(nèi)網(wǎng)網(wǎng)段資源。步驟302,如果VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段重疊,則將VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段轉(zhuǎn)換為與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段不重疊的代理網(wǎng)段,并在路由表中添加代理網(wǎng)段的出接口為所述虛擬IP地址的路由;用戶主機(jī)獲取到可訪問(wèn)的內(nèi)網(wǎng)網(wǎng)端資源后,可以通過(guò)系統(tǒng)函數(shù)獲取本機(jī)路由表,進(jìn)行交叉匹配后能夠知道VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段重疊是否重疊,如果重疊,則進(jìn)行網(wǎng)段轉(zhuǎn)換后添加到代理網(wǎng)段的出接口為所述虛擬IP地址的路由;如果不重疊,則可以添加到VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段的出接口為所述虛擬IP地址的路由。步驟303,當(dāng)用戶需要訪問(wèn)VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段資源時(shí),提示用戶將訪問(wèn)的目的IP地址修改為所述代理網(wǎng)段中的IP地址;這里,可以提示用戶進(jìn)行IP地址修改的具體方式,該修改方式與步驟302中的網(wǎng)段轉(zhuǎn)換方式相對(duì)應(yīng)。用戶根據(jù)提示,將訪問(wèn)的目的IP地址修改為所述代理網(wǎng)段中的IP地址后,訪問(wèn)的數(shù)據(jù)報(bào)文由應(yīng)用層到達(dá)網(wǎng)路層查找路由后,發(fā)送到所述虛擬IP地址(即虛擬網(wǎng)卡)。步驟304,獲取到達(dá)所述虛擬IP地址的數(shù)據(jù)報(bào)文,數(shù)據(jù)報(bào)文的源IP地址為所述虛擬IP地址,目的IP地址還原為VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段中的IP地址,并將修改后的數(shù)據(jù)報(bào)文加密封裝為隧道外層報(bào)文頭后通過(guò)所述隧道發(fā)送出去。數(shù)據(jù)報(bào)文到達(dá)虛擬網(wǎng)卡后,檢查目的IP地址,如果所述目的IP地址是代理網(wǎng)段中的IP地址,則需要將其還原為真實(shí)的VPN服務(wù)端內(nèi)網(wǎng)地址,這樣,才能訪問(wèn)到VPN服務(wù)端的內(nèi)網(wǎng)資源,當(dāng)然,如果所述目的IP地址不是代理網(wǎng)段中的IP地址,則不需要進(jìn)行所述轉(zhuǎn)換。一般而言,對(duì)數(shù)據(jù)報(bào)文中的IP地址進(jìn)行修改后,還需要重新計(jì)算IP校驗(yàn)和,將新的IP校驗(yàn)和更新到數(shù)據(jù)報(bào)文中;將修改后的數(shù)據(jù)報(bào)文進(jìn)行加密封裝為外層隧道報(bào)文。以上是SSLVPN客戶端發(fā)送報(bào)文的處理流程,接收?qǐng)?bào)文的處理流程為步驟SI,接收到VPN服務(wù)端發(fā)送的隧道報(bào)文后,獲取所述隧道報(bào)文的內(nèi)層報(bào)文,將所述內(nèi)層報(bào)文的源IP地址修改為所述代理網(wǎng)段中的IP地址后,將修改后的內(nèi)層報(bào)文發(fā)送到所述虛擬IP地址;如果內(nèi)層報(bào)文是加密報(bào)文,還需要對(duì)其進(jìn)行解密。獲取到內(nèi)層報(bào)文后,如果發(fā)現(xiàn)其源IP地址與用戶側(cè)的內(nèi)網(wǎng)網(wǎng)段中的IP地址重疊,則需要將其修改為代理網(wǎng)段中的IP地址;當(dāng)然,對(duì)于地址不重疊的情況,則不需要進(jìn)行上述修改。另外,如前所述,在對(duì)內(nèi)層報(bào)文中的IP地址進(jìn)行修改后,還可以重新計(jì)算IP校驗(yàn)和。
步驟S2,獲取到達(dá)所述虛擬IP地址的所述內(nèi)層報(bào)文,根據(jù)路由信息將所述內(nèi)層報(bào)文上送到應(yīng)用層處理。
其中,所述隧道可以是任意類型的隧道,例如SSL VPN隧道、IPSecVPN等等。如下以SSL VPN隧道為例進(jìn)行說(shuō)明。
圖4是本發(fā)明的訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的一個(gè)具體實(shí)例示意圖,該圖中,實(shí)線是發(fā)出報(bào)文加密流程,虛線是收到報(bào)文解密流程,粗線是封裝了外層IP報(bào)頭,細(xì)線是封裝了內(nèi)層IP報(bào)頭。參照?qǐng)D2和圖4,用戶登錄VPN并通過(guò)PC執(zhí)行命令ping 192. 168.1. 100的過(guò)程如下
第一步,用戶登錄成功,客戶端連接上,獲取到由服務(wù)器分配的虛擬IP地址 172. 16.0. 2,設(shè)置在虛擬網(wǎng)卡上(首次使用SSLVPN時(shí),SSL VPN會(huì)自動(dòng)安裝虛擬網(wǎng)卡在用戶操作系統(tǒng)中,以后使用時(shí)該虛擬網(wǎng)卡由SSL VPN客戶端進(jìn)行讀寫操作);
第二步,客戶端與服務(wù)器通信獲知用戶可訪問(wèn)的VPN內(nèi)網(wǎng)網(wǎng)段為 192. 168.1. 0/24,通過(guò)系統(tǒng)函數(shù)獲取本機(jī)路由表,進(jìn)行交叉匹配,可知與本機(jī)真實(shí)接口所處網(wǎng)段192. 168.1. 0/24網(wǎng)段重疊,于是記錄下重疊的地址,并對(duì)VPN內(nèi)網(wǎng)網(wǎng)段的網(wǎng)絡(luò)號(hào)加一操作,得到192. 168. 2. 0/24,在此這個(gè)網(wǎng)段叫做代理網(wǎng)段,然后再與本地路由表進(jìn)行交叉匹配,看是否仍然重疊,此處已經(jīng)不再重疊,于是在通過(guò)路由表中增加該代理網(wǎng)段路由,出接口為虛擬網(wǎng)卡的條目;
第三步,以文字方式,在VPN客戶端上彈出信息,提示用戶已經(jīng)檢測(cè)到地址重疊且已自動(dòng)修改為不重疊的代理網(wǎng)段地址,提示用戶若想訪問(wèn)192. 168.1. 100,此時(shí)應(yīng)改為訪問(wèn) 192. 168. 2. 100,只需要改網(wǎng)絡(luò)號(hào),后面的主機(jī)號(hào)保持不變。
第四步,用戶根據(jù)提示訪問(wèn)VPN內(nèi)網(wǎng)服務(wù)器(如ping 192. 168. 2. 100), ping報(bào)文在網(wǎng)絡(luò)層查路由可 得192. 168. 2. 0/24網(wǎng)段出接口為虛擬網(wǎng)卡,于是ping報(bào)文的目的IP為 192. 168. 2. 100,源IP為虛擬網(wǎng)卡的IP地址172. 16. O. 2,這個(gè)ping報(bào)文就是業(yè)務(wù)數(shù)據(jù)報(bào)文,也是內(nèi)層報(bào)文。
第五步,VPN客戶端監(jiān)聽到虛擬網(wǎng)卡中有數(shù)據(jù)報(bào)文,于是讀取內(nèi)層IP報(bào)文后,檢查目的IP地址,發(fā)現(xiàn)是屬于代理網(wǎng)段中的地址,于是把目的IP192. 168. 2. 100進(jìn)行地址轉(zhuǎn)換,還原為原始網(wǎng)段地址192. 168.1. 100,由于IP頭內(nèi)容發(fā)生了改變,于是需要重新計(jì)算IP 校驗(yàn)和,再進(jìn)行加密和封裝外層IP頭處理后(外層IP頭源地址192. 168. 1.200,目的地址2.2. 2. 2),再次查路由,匹配默認(rèn)路由走真實(shí)出接口發(fā)出去,經(jīng)過(guò)路由器源NAT處理改變?cè)?IP為1.1.1.1后,傳輸?shù)揭蛱鼐W(wǎng),到達(dá)VPN網(wǎng)關(guān)解密解封裝后,傳輸?shù)綄?duì)端虛擬專用網(wǎng)中了。
第六步,VPN客戶端收到加密報(bào)文,解密解封裝后,得到內(nèi)層報(bào)文,檢查發(fā)現(xiàn)源IP 為192. 168.1. 00,目的IP地址為172. 16. O. 2,查詢代理網(wǎng)段得知需要代理,于是把源IP修改為192. 168. 2. 100,并修改IP校驗(yàn)和。然后寫入虛擬網(wǎng)卡,報(bào)文查路由得知是本機(jī)報(bào)文, 就上送到相應(yīng)的應(yīng)用程序處理,此處為Ping程序,收到回包了,則代表通信路徑正常。
以上是ICMP業(yè)務(wù)的經(jīng)過(guò)VPN的流程,HTTP, FTP等其他業(yè)務(wù)流程也基本一致。
與上述方法相對(duì)應(yīng),本發(fā)明還提供一種訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的裝置,應(yīng)用于用戶主機(jī)上,所述裝置可以包括
VPN建立單元,用于使用用戶主機(jī)的真實(shí)IP地址與VPN服務(wù)端建立隧道連接,并獲取VPN服務(wù)端發(fā)送的虛擬IP地址和可訪問(wèn)的內(nèi)網(wǎng)網(wǎng)段資源;路由處理單元,用于如果VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段重疊,則將VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段轉(zhuǎn)換為與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段不重疊的代理網(wǎng)段,并在路由表中添加代理網(wǎng)段的出接口為所述虛擬IP地址的路由;提示單元,用于當(dāng)用戶需要訪問(wèn)VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段資源時(shí),提示用戶將訪問(wèn)的目的IP地址修改為所述代理網(wǎng)段中的IP地址;
VPN處理單元,用于獲取到達(dá)所述虛擬IP地址的數(shù)據(jù)報(bào)文,數(shù)據(jù)報(bào)文的源IP地址為所述虛擬IP地址,目的IP地址還原為VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段中的IP地址,并將修改后的數(shù)據(jù)報(bào)文封裝為隧道報(bào)文后通過(guò)所述隧道發(fā)送出去。在接收到報(bào)文時(shí)所述VPN處理單元還用于,接收到VPN服務(wù)端發(fā)送的隧道報(bào)文后,獲取所述隧道報(bào)文的內(nèi)層報(bào)文,將所述內(nèi)層報(bào)文的源IP地址修改為所述代理網(wǎng)段中的IP地址后,將修改后的內(nèi)層報(bào)文發(fā)送到所述虛擬IP地址;所述路由處理單元還用于,獲取到達(dá)所述虛擬IP地址的所述內(nèi)層報(bào)文,根據(jù)路由信息將所述內(nèi)層報(bào)文上送到應(yīng)用層處理。其中,所述隧道可以為SSL VPN隧道、IPSec VPN隧道等。綜上所述,根據(jù)本發(fā)明的技術(shù)方案,當(dāng)確定VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段重疊時(shí),可以自動(dòng)將重疊的地址網(wǎng)段轉(zhuǎn)換為代理網(wǎng)端后在路由表中增加相應(yīng)的路由信息,并在用戶訪問(wèn)VPN服務(wù)端的內(nèi)網(wǎng)資源時(shí),提示用戶對(duì)目的IP地址進(jìn)行相應(yīng)的修改,如此,解決了由于VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段重疊造成的、用戶主機(jī)無(wú)法正常訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的問(wèn)題。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的方法,應(yīng)用于用戶主機(jī)上,其特征在于,所述方法包括使用用戶主機(jī)的真實(shí)IP地址與VPN服務(wù)端建立隧道連接,并獲取VPN服務(wù)端發(fā)送的虛擬IP地址和可訪問(wèn)的內(nèi)網(wǎng)網(wǎng)段資源;如果VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段重疊,則將VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段轉(zhuǎn)換為與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段不重疊的代理網(wǎng)段,并在路由表中添加代理網(wǎng)段的出接口為所述虛擬IP地址的路由;當(dāng)用戶需要訪問(wèn)VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段資源時(shí),提示用戶將訪問(wèn)的目的IP地址修改為所述代理網(wǎng)段中的IP地址;獲取到達(dá)所述虛擬IP地址對(duì)應(yīng)的虛擬網(wǎng)卡的數(shù)據(jù)報(bào)文,數(shù)據(jù)報(bào)文的源IP地址為所述虛擬IP地址,目的IP地址還原為VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段中的IP地址,并將修改后的數(shù)據(jù)報(bào)文加密封裝為隧道報(bào)文后通過(guò)所述隧道發(fā)送出去。
2.如權(quán)利要求1所述的方法,其特征在于,還包括接收到VPN服務(wù)端發(fā)送的隧道報(bào)文后,獲取所述隧道報(bào)文的內(nèi)層報(bào)文,將所述內(nèi)層報(bào)文的源IP地址修改為所述代理網(wǎng)段中的IP地址后,將修改后的內(nèi)層報(bào)文發(fā)送到所述虛擬網(wǎng)卡;獲取到達(dá)所述虛擬網(wǎng)卡的所述內(nèi)層報(bào)文,根據(jù)路由信息將所述內(nèi)層報(bào)文上送到應(yīng)用層處理。
3.如權(quán)利要求1或2所述的方法,其特征在于所述隧道為SSL VPN隧道。
4.一種訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的裝置,應(yīng)用于用戶主機(jī)上,其特征在于,所述裝置包括 VPN建立單元,用于使用用戶主機(jī)的真實(shí)IP地址與VPN服務(wù)端建立隧道連接,并獲取VPN服務(wù)端發(fā)送的虛擬IP地址和可訪問(wèn)的內(nèi)網(wǎng)網(wǎng)段資源;路由處理單元,用于如果VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段重疊,則將VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段轉(zhuǎn)換為與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段不重疊的代理網(wǎng)段,并在路由表中添加代理網(wǎng)段的出接口為所述虛擬IP地址的路由;提示單元,用于當(dāng)用戶出現(xiàn)訪問(wèn)VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段資源地址重疊時(shí),提示用戶將訪問(wèn)的目的IP地址修改為所述代理網(wǎng)段中的IP地址;VPN處理單元,用于獲取到達(dá)所述虛擬IP地址對(duì)應(yīng)的虛擬網(wǎng)卡的數(shù)據(jù)報(bào)文,數(shù)據(jù)報(bào)文的源IP地址為所述虛擬IP地址,目的IP地址還原為VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段中的IP地址, 并將修改后的數(shù)據(jù)報(bào)文加密封裝為隧道報(bào)文后通過(guò)所述隧道發(fā)送出去。
5.如權(quán)利要求1所述的裝置,其特征在于所述VPN處理單元還用于,接收到VPN服務(wù)端發(fā)送的隧道報(bào)文后,獲取所述隧道報(bào)文的內(nèi)層報(bào)文,將所述內(nèi)層報(bào)文的源IP地址修改為所述代理網(wǎng)段中的IP地址后,將修改后的內(nèi)層報(bào)文發(fā)送到所述虛擬網(wǎng)卡;所述路由處理單元還用于,獲取到達(dá)所述虛擬網(wǎng)卡的所述內(nèi)層報(bào)文,根據(jù)路由信息將所述內(nèi)層報(bào)文上送到應(yīng)用層處理。
6.如權(quán)利要求4或5所述的裝置,其特征在于所述隧道為SSL VPN隧道。
全文摘要
本發(fā)明提供一種訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的方法及裝置,方法包括使用真實(shí)IP地址與VPN服務(wù)端建立隧道連接,并獲取VPN服務(wù)端發(fā)送的虛擬IP地址和可訪問(wèn)的內(nèi)網(wǎng)網(wǎng)段資源;VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段重疊,則將VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段轉(zhuǎn)換為與主機(jī)側(cè)的內(nèi)網(wǎng)網(wǎng)段不重疊的代理網(wǎng)段,并在路由表中添加代理網(wǎng)段的出接口為虛擬IP的路由;若地址重疊,提示用戶將訪問(wèn)的目的IP地址修改為代理網(wǎng)段中的IP地址;獲取到達(dá)虛擬網(wǎng)卡的數(shù)據(jù)報(bào)文,將其目的IP地址還原為VPN服務(wù)端的內(nèi)網(wǎng)網(wǎng)段中的IP地址,并封裝為隧道報(bào)文后通過(guò)隧道發(fā)送出去。本發(fā)明能夠解決由于地址重疊造成的用戶主機(jī)無(wú)法正常訪問(wèn)VPN服務(wù)端內(nèi)網(wǎng)資源的問(wèn)題。
文檔編號(hào)H04L12/46GK103023898SQ20121051266
公開日2013年4月3日 申請(qǐng)日期2012年12月3日 優(yōu)先權(quán)日2012年12月3日
發(fā)明者李志 申請(qǐng)人:杭州迪普科技有限公司