本申請涉及網(wǎng)絡(luò)通信
技術(shù)領(lǐng)域:
,特別涉及一種報(bào)文轉(zhuǎn)發(fā)方法及裝置。
背景技術(shù):
:為了實(shí)現(xiàn)高可靠性和冗余部署,提供更好的服務(wù),大多數(shù)企業(yè)網(wǎng)絡(luò)及其數(shù)據(jù)中心或服務(wù)提供商通常在異地部署多個(gè)數(shù)據(jù)中心,實(shí)現(xiàn)負(fù)載分擔(dān)和高可靠性,并實(shí)現(xiàn)虛擬機(jī)(VirtualMachine,虛擬機(jī))在數(shù)據(jù)中心之間的自由遷移。如圖1所示,數(shù)據(jù)中心1、數(shù)據(jù)中心2和數(shù)據(jù)中心3處于不同地域,GW1、GW2和GW3分別是數(shù)據(jù)中心1、數(shù)據(jù)中心2和數(shù)據(jù)中心3的網(wǎng)關(guān)設(shè)備,GW1、GW2和GW3都接入互聯(lián)網(wǎng),通過互聯(lián)網(wǎng)實(shí)現(xiàn)數(shù)據(jù)中心之間的數(shù)據(jù)通信。SSL(SecureSocketsLayer,安全套接層)VPN(VirtualPrivateNetwork,虛擬專用網(wǎng)絡(luò))是以SSL為基礎(chǔ)的VPN技術(shù)。SSLVPN充分利用了SSL協(xié)議提供的基于證書的身份認(rèn)證、數(shù)據(jù)加密和消息完整性驗(yàn)證機(jī)制,能夠?yàn)閼?yīng)用層之間的通信建立安全連接。目前,SSLVPN技術(shù)主要應(yīng)用于遠(yuǎn)程用戶主機(jī)接入企業(yè)網(wǎng)絡(luò)。當(dāng)SSLVPN技術(shù)應(yīng)用于如圖1所示的多數(shù)據(jù)中心網(wǎng)絡(luò)時(shí),由于數(shù)據(jù)中心內(nèi)部存在多個(gè)VPN,因此,需要在兩個(gè)數(shù)據(jù)中心的網(wǎng)關(guān)設(shè)備之間為每個(gè)VPN均建立對應(yīng)的SSLVPN隧道,從而,占用了較多的隧道資源和公網(wǎng)IP地址資源。技術(shù)實(shí)現(xiàn)要素:有鑒于此,本申請?zhí)峁┮环N報(bào)文轉(zhuǎn)發(fā)方法及裝置。具體地,本申請是通過如下技術(shù)方案實(shí)現(xiàn)的:一方面,提供了一種報(bào)文轉(zhuǎn)發(fā)方法,該方法應(yīng)用于數(shù)據(jù)中心的網(wǎng)關(guān)設(shè)備,該方法包括:接收本數(shù)據(jù)中心內(nèi)的本地VM發(fā)來的第一用戶報(bào)文;確定第一用戶報(bào)文所屬的第一VPN實(shí)例,根據(jù)第一用戶報(bào)文的目的地址,在第一VPN實(shí)例對應(yīng)的轉(zhuǎn)發(fā)表中查找用于轉(zhuǎn)發(fā)第一用戶報(bào)文的SSLVPN隧道;用于轉(zhuǎn)發(fā)第一用戶報(bào)文的SSLVPN隧道還用于轉(zhuǎn)發(fā)屬于除第一VPN實(shí)例之外的其它VPN實(shí)例的用戶報(bào)文;在第一用戶報(bào)文中封裝第一VPN實(shí)例對應(yīng)的VPN標(biāo)簽后進(jìn)行SSLVPN隧道封裝得到第一隧道封裝報(bào)文,通過用于轉(zhuǎn)發(fā)第一用戶報(bào)文的SSLVPN隧道轉(zhuǎn)發(fā)第一隧道封裝報(bào)文,以使接收到第一隧道封裝報(bào)文的遠(yuǎn)端網(wǎng)關(guān)設(shè)備,對第一隧道封裝報(bào)文進(jìn)行SSLVPN隧道解封裝后得到第一用戶報(bào)文,根據(jù)第一用戶報(bào)文攜帶的VPN標(biāo)簽,將第一用戶報(bào)文在第一VPN實(shí)例內(nèi)進(jìn)行本地轉(zhuǎn)發(fā)。另一方面,還提供了一種報(bào)文轉(zhuǎn)發(fā)裝置,該裝置應(yīng)用于數(shù)據(jù)中心的網(wǎng)關(guān)設(shè)備中,該裝置包括:接收單元,用于接收本數(shù)據(jù)中心內(nèi)的本地VM發(fā)來的第一用戶報(bào)文;查找單元,用于確定第一用戶報(bào)文所屬的第一VPN實(shí)例,根據(jù)第一用戶報(bào)文的目的地址,在第一VPN實(shí)例對應(yīng)的轉(zhuǎn)發(fā)表中查找用于轉(zhuǎn)發(fā)第一用戶報(bào)文的SSLVPN隧道;用于轉(zhuǎn)發(fā)第一用戶報(bào)文的SSLVPN隧道還用于轉(zhuǎn)發(fā)屬于除第一VPN實(shí)例之外的其它VPN實(shí)例的用戶報(bào)文;發(fā)送單元,用于在第一用戶報(bào)文中封裝第一VPN實(shí)例對應(yīng)的VPN標(biāo)簽后進(jìn)行SSLVPN隧道封裝得到第一隧道封裝報(bào)文,通過查找單元查找到的用于轉(zhuǎn)發(fā)第一用戶報(bào)文的SSLVPN隧道轉(zhuǎn)發(fā)第一隧道封裝報(bào)文,以使接收到第一隧道封裝報(bào)文的遠(yuǎn)端網(wǎng)關(guān)設(shè)備,對第一隧道封裝報(bào)文進(jìn)行SSLVPN隧道解封裝后得到第一用戶報(bào)文,根據(jù)第一用戶報(bào)文攜帶的VPN標(biāo)簽,將第一用戶報(bào)文在第一VPN實(shí)例內(nèi)進(jìn)行本地轉(zhuǎn)發(fā)。通過本申請的以上技術(shù)方案,不同數(shù)據(jù)中心的網(wǎng)關(guān)設(shè)備之間建立SSLVPN隧道,網(wǎng)關(guān)設(shè)備接收到某一VPN實(shí)例內(nèi)的本地VM發(fā)來的用戶報(bào)文后,會將該VPN實(shí)例對應(yīng)的VPN標(biāo)簽攜帶在該用戶報(bào)文中,然后通過該SSLVPN隧道發(fā)送給遠(yuǎn)端網(wǎng)關(guān)設(shè)備,遠(yuǎn)端網(wǎng)關(guān)設(shè)備通過該報(bào)文中攜帶的VPN標(biāo)簽即可確定出對應(yīng)的VPN實(shí)例,從而將該用戶報(bào)文在該VPN實(shí)例內(nèi)進(jìn)行本地轉(zhuǎn)發(fā),這樣,數(shù)據(jù)中心內(nèi)的多個(gè)VPN實(shí)例可以共享同一SSLVPN隧道,無需在網(wǎng)關(guān)設(shè)備之間為每個(gè)VPN均建立對應(yīng)的SSLVPN隧道,從而節(jié)約了隧道資源和公網(wǎng)IP地址資源。而且,由于通過SSLVPN隧道進(jìn)行數(shù)據(jù)中心之間的數(shù)據(jù)通信,從而確保了數(shù)據(jù)中心之間數(shù)據(jù)通信的可靠性。附圖說明圖1是包含有多個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)架構(gòu)示意圖;圖2是本申請一示例性實(shí)施例示出的報(bào)文轉(zhuǎn)發(fā)方法的流程圖;圖3是本申請一示例性實(shí)施例示出的建立SSLVPN隧道的流程圖;圖4是本申請一示例性實(shí)施例示出的建立了SSLVPN隧道的網(wǎng)絡(luò)架構(gòu)示意圖;圖5是本申請實(shí)施例一示出的用戶報(bào)文與隧道封裝報(bào)文的格式對比示意圖;圖6是本申請一示例性實(shí)施例示出的報(bào)文轉(zhuǎn)發(fā)裝置所在網(wǎng)關(guān)設(shè)備的硬件結(jié)構(gòu)示意圖;圖7是本申請一示例性實(shí)施例示出的報(bào)文轉(zhuǎn)發(fā)裝置的一種結(jié)構(gòu)示意圖;圖8是本申請一示例性實(shí)施例示出的報(bào)文轉(zhuǎn)發(fā)裝置的另一種結(jié)構(gòu)示意圖。具體實(shí)施方式這里將詳細(xì)地對示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本申請相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。在本申請使用的術(shù)語是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本申請。在本申請和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。應(yīng)當(dāng)理解,盡管在本申請可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”。本申請以下實(shí)施例中提供了一種報(bào)文轉(zhuǎn)發(fā)方法,以及一種可以實(shí)現(xiàn)該方法的報(bào)文轉(zhuǎn)發(fā)裝置,可以基于SSLVPN隧道實(shí)現(xiàn)跨數(shù)據(jù)中心的數(shù)據(jù)通信。本申請實(shí)施例的報(bào)文轉(zhuǎn)發(fā)方法可以由如圖1所示的任一數(shù)據(jù)中心的網(wǎng)關(guān)設(shè)備來執(zhí)行,如圖2所示,該方法中包括以下步驟:步驟S101,接收本數(shù)據(jù)中心內(nèi)的本地VM發(fā)來的第一用戶報(bào)文;步驟S102,確定第一用戶報(bào)文所屬的第一VPN實(shí)例,根據(jù)第一用戶報(bào)文的目的地址,在第一VPN實(shí)例對應(yīng)的轉(zhuǎn)發(fā)表中查找用于轉(zhuǎn)發(fā)第一用戶報(bào)文的SSLVPN隧道;用于轉(zhuǎn)發(fā)第一用戶報(bào)文的SSLVPN隧道還用于轉(zhuǎn)發(fā)屬于除第一VPN實(shí)例之外的其它VPN實(shí)例的用戶報(bào)文;步驟S103,在第一用戶報(bào)文中封裝第一VPN實(shí)例對應(yīng)的VPN標(biāo)簽后進(jìn)行SSLVPN隧道封裝得到第一隧道封裝報(bào)文,通過用于轉(zhuǎn)發(fā)第一用戶報(bào)文的SSLVPN隧道轉(zhuǎn)發(fā)第一隧道封裝報(bào)文,以使接收到第一隧道封裝報(bào)文的遠(yuǎn)端網(wǎng)關(guān)設(shè)備,對第一隧道封裝報(bào)文進(jìn)行SSLVPN隧道解封裝后得到第一用戶報(bào)文,根據(jù)第一用戶報(bào)文攜帶的VPN標(biāo)簽,將第一用戶報(bào)文在第一VPN實(shí)例內(nèi)進(jìn)行本地轉(zhuǎn)發(fā)。另外,本端網(wǎng)關(guān)設(shè)備也會接收遠(yuǎn)端網(wǎng)關(guān)設(shè)備通過SSLVPN隧道發(fā)來的第二隧道封裝報(bào)文,對接收到的第二隧道封裝報(bào)文進(jìn)行SSLVPN隧道解封裝后得到第二用戶報(bào)文,然后,確定與該第二用戶報(bào)文攜帶的VPN標(biāo)簽對應(yīng)的第二VPN實(shí)例,將該第二用戶報(bào)文在該第二VPN實(shí)例內(nèi)進(jìn)行本地轉(zhuǎn)發(fā),最終發(fā)送給本地VM。在本端網(wǎng)關(guān)設(shè)備與遠(yuǎn)端網(wǎng)關(guān)設(shè)備進(jìn)行數(shù)據(jù)通信之前,需要建立本端網(wǎng)關(guān)設(shè)備與遠(yuǎn)端網(wǎng)關(guān)設(shè)備之間的SSLVPN隧道,隧道建立過程如下:當(dāng)本設(shè)備作為SSLVPN客戶端時(shí),向作為SSLVPN服務(wù)器的遠(yuǎn)端網(wǎng)關(guān)設(shè)備發(fā)送SSLVPN連接請求消息,以使該遠(yuǎn)端網(wǎng)關(guān)設(shè)備對本設(shè)備進(jìn)行身份認(rèn)證,在認(rèn)證通過后,將該遠(yuǎn)端網(wǎng)關(guān)設(shè)備所屬的遠(yuǎn)端數(shù)據(jù)中心內(nèi)的多個(gè)遠(yuǎn)端VM的地址和多個(gè)遠(yuǎn)端VM所屬VPN實(shí)例對應(yīng)的VPN標(biāo)簽攜帶在資源授權(quán)報(bào)文中發(fā)送給本端網(wǎng)關(guān)設(shè)備;接收該作為SSLVPN服務(wù)器的遠(yuǎn)端網(wǎng)關(guān)設(shè)備發(fā)來的資源授權(quán)報(bào)文。至此,本端網(wǎng)關(guān)設(shè)備作為SSLVPN客戶端、遠(yuǎn)端網(wǎng)關(guān)設(shè)備作為SSLVPN服務(wù)器的SSLVPN隧道建立完成。本端網(wǎng)關(guān)設(shè)備確認(rèn)本設(shè)備與該作為SSLVPN服務(wù)器的遠(yuǎn)端網(wǎng)關(guān)設(shè)備之間的SSLVPN隧道建立成功后,根據(jù)該遠(yuǎn)端網(wǎng)關(guān)設(shè)備發(fā)來的資源授權(quán)報(bào)文中攜帶的多個(gè)遠(yuǎn)端VM的地址和多個(gè)遠(yuǎn)端VM所屬VPN實(shí)例對應(yīng)的VPN標(biāo)簽,針對該多個(gè)遠(yuǎn)端VM中的每個(gè)遠(yuǎn)端VM,將建立成功的SSLVPN隧道與該遠(yuǎn)端VM的地址的對應(yīng)關(guān)系配置到該遠(yuǎn)端VM所屬VPN實(shí)例對應(yīng)的轉(zhuǎn)發(fā)表中。從而,在多個(gè)VPN實(shí)例對應(yīng)的轉(zhuǎn)發(fā)表中,同一遠(yuǎn)端數(shù)據(jù)中心內(nèi)的所有遠(yuǎn)端VM的地址對應(yīng)于同一SSLVPN隧道。另外,當(dāng)本設(shè)備作為SSLVPN服務(wù)器時(shí),本端網(wǎng)關(guān)設(shè)備接收作為SSLVPN客戶端的遠(yuǎn)端網(wǎng)關(guān)設(shè)備發(fā)來的SSLVPN連接請求消息;對該作為SSLVPN客戶端的遠(yuǎn)端網(wǎng)關(guān)設(shè)備進(jìn)行身份認(rèn)證,在認(rèn)證通過后,將多個(gè)本地VM的地址和多個(gè)本地VM所屬VPN實(shí)例對應(yīng)的VPN標(biāo)簽攜帶在資源授權(quán)報(bào)文中發(fā)送給該作為SSLVPN客戶端的遠(yuǎn)端網(wǎng)關(guān)設(shè)備。從而,實(shí)現(xiàn)了不同數(shù)據(jù)中心之間的VM地址以及該VM所屬VPN實(shí)例對應(yīng)的VPN標(biāo)簽的同步。在實(shí)際實(shí)施過程中,每一個(gè)網(wǎng)關(guān)設(shè)備上均保存有VPN實(shí)例與VPN標(biāo)簽的對應(yīng)關(guān)系,并且,還保存有需要建立SSLVPN隧道的網(wǎng)關(guān)設(shè)備的地址列表,上述對應(yīng)關(guān)系和地址列表可以通過手動靜態(tài)配置的方式配置每一個(gè)網(wǎng)關(guān)設(shè)備上,或者,也可以由控制器將VPN實(shí)例與VPN標(biāo)簽的對應(yīng)關(guān)系、以及需要建立SSLVPN隧道的網(wǎng)關(guān)設(shè)備的地址列表發(fā)送給每一個(gè)網(wǎng)關(guān)設(shè)備。其中,當(dāng)由控制器發(fā)送時(shí),網(wǎng)關(guān)設(shè)備在接收到控制器發(fā)來的需要建立SSLVPN隧道的網(wǎng)關(guān)設(shè)備的地址列表,以及VPN實(shí)例與VPN標(biāo)簽的對應(yīng)關(guān)系后,保存該地址列表和對應(yīng)關(guān)系;判斷該地址列表中是否存在本設(shè)備的地址,若存在,則針對該地址列表中除本設(shè)備的地址以外的其它地址,將本設(shè)備作為SSLVPN客戶端,將地址為該其它地址的遠(yuǎn)端網(wǎng)關(guān)設(shè)備作為SSLVPN服務(wù)器,向作為SSLVPN服務(wù)器的遠(yuǎn)端網(wǎng)關(guān)設(shè)備發(fā)送SSLVPN連接請求消息,以建立本設(shè)備與作為SSLVPN服務(wù)器的遠(yuǎn)端網(wǎng)關(guān)設(shè)備之間的SSLVPN隧道。本申請上述實(shí)施例的方法中,不同數(shù)據(jù)中心的網(wǎng)關(guān)設(shè)備之間建立SSLVPN隧道,網(wǎng)關(guān)設(shè)備接收到某一VPN實(shí)例內(nèi)的本地VM發(fā)來的用戶報(bào)文后,會將該VPN實(shí)例對應(yīng)的VPN標(biāo)簽攜帶在該用戶報(bào)文中,然后通過該SSLVPN隧道發(fā)送給遠(yuǎn)端網(wǎng)關(guān)設(shè)備,遠(yuǎn)端網(wǎng)關(guān)設(shè)備通過該報(bào)文中攜帶的VPN標(biāo)簽即可確定出對應(yīng)的VPN實(shí)例,從而將該用戶報(bào)文在該VPN實(shí)例內(nèi)進(jìn)行本地轉(zhuǎn)發(fā),這樣,數(shù)據(jù)中心內(nèi)的多個(gè)VPN實(shí)例可以共享同一SSLVPN隧道,無需在網(wǎng)關(guān)設(shè)備之間為每個(gè)VPN均建立對應(yīng)的SSLVPN隧道,從而節(jié)約了隧道資源和公網(wǎng)IP地址資源。而且,由于通過SSLVPN隧道進(jìn)行數(shù)據(jù)中心之間的數(shù)據(jù)通信,從而確保了數(shù)據(jù)中心之間數(shù)據(jù)通信的可靠性。下面以如圖1所示的網(wǎng)絡(luò)為例,對本申請上述實(shí)施例的方法進(jìn)行詳細(xì)說明。在如圖1所示的網(wǎng)絡(luò)中,數(shù)據(jù)中心1、數(shù)據(jù)中心2和數(shù)據(jù)中心3處于不同地域,GW1、GW2和GW3分別是數(shù)據(jù)中心1、數(shù)據(jù)中心2和數(shù)據(jù)中心3的網(wǎng)關(guān)設(shè)備,GW1、GW2和GW3都接入互聯(lián)網(wǎng),通過互聯(lián)網(wǎng)實(shí)現(xiàn)數(shù)據(jù)中心之間的數(shù)據(jù)通信。其中,各個(gè)GW的IP地址記為GW-IP,各個(gè)VM的IP地址記為VM-IP。每一個(gè)數(shù)據(jù)中心內(nèi)劃分多個(gè)VPN。假設(shè),VM11、VM12和VM13屬于VPN實(shí)例1,VM21和VM22屬于VPN實(shí)例2。VPN實(shí)例1與VPN標(biāo)簽LABEL1對應(yīng),VPN實(shí)例2與VPN標(biāo)簽LABEL2對應(yīng)。GW1、GW2和GW3中保存有需要建立SSLVPN隧道的網(wǎng)關(guān)設(shè)備的地址列表,以及,VPN實(shí)例與VPN標(biāo)簽的對應(yīng)關(guān)系。當(dāng)如圖1所示的網(wǎng)絡(luò)為SDN(SoftDefineNetwork,軟件定義網(wǎng)絡(luò))時(shí),可以由SDN控制器對這些數(shù)據(jù)中心進(jìn)行統(tǒng)一管理,SDN控制器確定整個(gè)SDN網(wǎng)絡(luò)中需要建立SSLVPN隧道的網(wǎng)關(guān)設(shè)備,以及對整個(gè)SDN網(wǎng)絡(luò)中的VPN實(shí)例進(jìn)行維護(hù),為每個(gè)VPN實(shí)例分配唯一的VPN標(biāo)簽,由SDN控制器將VPN實(shí)例與VPN標(biāo)簽的對應(yīng)關(guān)系、以及需要建立SSLVPN隧道的網(wǎng)關(guān)設(shè)備的地址列表發(fā)送給所有數(shù)據(jù)中心的網(wǎng)關(guān)設(shè)備。GW1、GW2和GW3接收到控制器發(fā)來的上述對應(yīng)關(guān)系以及地址列表后進(jìn)行保存。顯然,VPN實(shí)例與VPN標(biāo)簽的對應(yīng)關(guān)系、以及需要建立SSLVPN隧道的網(wǎng)關(guān)設(shè)備的地址列表,也可以通過手動靜態(tài)配置的方式配置在所有數(shù)據(jù)中心的網(wǎng)關(guān)設(shè)備上,本申請實(shí)施例對此不做限定。GW1接收并保存SDN控制器發(fā)來的需要建立SSLVPN隧道的網(wǎng)關(guān)設(shè)備的地址列表,假設(shè),此處的地址為IP地址,該地址列表中包括:GW1-IP、GW2-IP、GW3-IP。GW1判斷該地址列表中是否存在本設(shè)備的IP地址GW1-IP,判斷結(jié)果為存在,則針對該地址列表中除本設(shè)備的IP地址GW1-IP以外的其它IP地址GW2-IP,將本設(shè)備作為SSLVPN客戶端,建立本設(shè)備與作為SSLVPN服務(wù)器的IP地址為GW2-IP的遠(yuǎn)端網(wǎng)關(guān)設(shè)備GW2之間的SSLVPN隧道,并且,針對該地址列表中除本設(shè)備的IP地址GW1-IP以外的其它IP地址GW3-IP,將本設(shè)備作為SSLVPN客戶端,建立本設(shè)備與作為SSLVPN服務(wù)器的IP地址為GW3-IP的遠(yuǎn)端網(wǎng)關(guān)設(shè)備GW3之間的SSLVPN隧道。地址列表的作用除了可以判斷本設(shè)備是否需要建立SSLVPN隧道以外,還可以在本設(shè)備作為SSLVPN服務(wù)器時(shí),判斷SSLVPN客戶端是遠(yuǎn)端網(wǎng)關(guān)設(shè)備還是普通的遠(yuǎn)程接入用戶主機(jī)。以GW1建立本設(shè)備與GW2之間的SSLVPN隧道為例,具體的隧道建立過程如圖3所示:步驟S301,當(dāng)本設(shè)備作為SSLVPN客戶端時(shí),GW1向作為SSLVPN服務(wù)器的GW2發(fā)送SSLVPN連接請求消息;其中,該SSLVPN連接請求消息中攜帶有GW1的身份認(rèn)證信息,例如,用戶名和密碼等。步驟S302,GW2接收該SSLVPN連接請求消息,對GW1進(jìn)行身份認(rèn)證;GW2將該SSLVPN連接請求消息中攜帶的身份認(rèn)證信息與本地保存的GW1的身份認(rèn)證信息進(jìn)行匹配,若匹配,則認(rèn)證通過。步驟S303,在認(rèn)證通過后,GW2將本設(shè)備所屬的數(shù)據(jù)中心2內(nèi)的本地VM:VM12的地址以及VM12所屬VPN實(shí)例1對應(yīng)的VPN標(biāo)簽LABEL1攜帶在資源授權(quán)報(bào)文中發(fā)送給GW1。在認(rèn)證通過后,GW2會將本地VM的地址、本地VM所屬VPN實(shí)例對應(yīng)的VPN標(biāo)簽授權(quán)給GW1。GW1可以接收到GW2發(fā)來的資源授權(quán)報(bào)文,從而確認(rèn)本設(shè)備與作為SSLVPN服務(wù)器的GW2之間的SSLVPN隧道建立成功,后續(xù)可以訪問這些VM。另外,在資源授權(quán)報(bào)文中還可以攜帶VM12所屬的VPN實(shí)例1的名稱。通過上述步驟S301至步驟S303,GW1作為SSLVPN客戶端、GW2作為SSLVPN服務(wù)器的SSLVPN隧道建立完成。該SSLVPN隧道的源IP地址為GW1-IP,目的IP地址為GW2-IP。同樣,GW2和GW3也會執(zhí)行與GW1相同的操作。如圖4所示,GW1、GW2和GW3中的任意兩個(gè)GW之間均建立了SSLVPN隧道。在實(shí)際實(shí)施過程中,為了實(shí)現(xiàn)上述如圖3所示的SSLVPN隧道建立過程,GW1、GW2和GW3可以在判斷出上述地址列表中存在本設(shè)備的地址時(shí),啟動一個(gè)SSLVPN服務(wù)器進(jìn)程,等待作為SSLVPN客戶端的遠(yuǎn)端網(wǎng)關(guān)設(shè)備接入,而且,還會針對該地址列表中除本設(shè)備的地址以外的每一個(gè)其它地址,啟動一個(gè)SSLVPN客戶端進(jìn)程,即,每一個(gè)SSLVPN客戶端進(jìn)程對應(yīng)于一個(gè)作為SSLVPN服務(wù)器的遠(yuǎn)端網(wǎng)關(guān)設(shè)備。這樣,由任一SSLVPN客戶端進(jìn)程來執(zhí)行如圖3所示的步驟S301,而該SSLVPN服務(wù)器進(jìn)程執(zhí)行如圖3所示的步驟S302和步驟S303。顯然還可以采用其它方式來實(shí)施,本申請實(shí)施例對此不做限定。GW1、GW2和GW3在接收到遠(yuǎn)端網(wǎng)關(guān)設(shè)備發(fā)來的資源授權(quán)報(bào)文后,從該報(bào)文中獲取VM地址和VPN標(biāo)簽,確定與該VPN標(biāo)簽對應(yīng)的VPN實(shí)例,將該VM地址、本設(shè)備與該遠(yuǎn)端網(wǎng)關(guān)設(shè)備的SSLVPN隧道的對應(yīng)關(guān)系配置到該VPN實(shí)例對應(yīng)的轉(zhuǎn)發(fā)表中。假設(shè),VM的地址為IP地址,則GW1中VPN實(shí)例1對應(yīng)的轉(zhuǎn)發(fā)表如表1-1所示,VPN實(shí)例2對應(yīng)的轉(zhuǎn)發(fā)表如表1-2所示;GW2中VPN實(shí)例1對應(yīng)的轉(zhuǎn)發(fā)表如表2-1所示,VPN實(shí)例2對應(yīng)的轉(zhuǎn)發(fā)表如表2-2所示;GW3中VPN實(shí)例1對應(yīng)的轉(zhuǎn)發(fā)表如表3-1所示,VPN實(shí)例2對應(yīng)的轉(zhuǎn)發(fā)表如表3-2所示。表1-1VM地址出接口VM12-IPGW1—GW2的SSLVPN隧道VM13-IPGW1—GW3的SSLVPN隧道表1-2VM地址出接口VM22-IPGW1—GW3的SSLVPN隧道表2-1VM地址出接口VM11-IPGW2—GW1的SSLVPN隧道VM13-IPGW2—GW3的SSLVPN隧道表2-2VM地址出接口VM21-IPGW2—GW1的SSLVPN隧道VM22-IPGW2—GW3的SSLVPN隧道表3-1VM地址出接口VM11-IPGW3—GW1的SSLVPN隧道VM12-IPGW3—GW2的SSLVPN隧道表3-2VM地址出接口VM21-IPGW3—GW1的SSLVPN隧道在實(shí)際實(shí)施過程中,VPN實(shí)例對應(yīng)的轉(zhuǎn)發(fā)表中還可以包含與該VPN實(shí)例對應(yīng)的VPN標(biāo)簽。當(dāng)數(shù)據(jù)中心1內(nèi)的VM11要訪問數(shù)據(jù)中心3內(nèi)的VM13時(shí),VM11發(fā)出源IP地址為VM11-IP、目的IP地址為VM13-IP的用戶報(bào)文,該用戶報(bào)文的格式可以如圖5所示;GW1接收到該用戶報(bào)文后,確定該用戶報(bào)文屬于VPN實(shí)例1,根據(jù)該用戶報(bào)文的目的IP地址VM13-IP,在VPN實(shí)例1對應(yīng)的轉(zhuǎn)發(fā)表(如表1-1所示)中查找對應(yīng)的出接口為GW1—GW3的SSLVPN隧道,會先在該用戶報(bào)文中封裝VPN實(shí)例1對應(yīng)的LABEL1,如圖5所示,然后,對封裝了LABEL1的用戶報(bào)文進(jìn)行SSLVPN隧道封裝得到隧道封裝報(bào)文,將該隧道封裝報(bào)文通過GW1—GW3的SSLVPN隧道轉(zhuǎn)發(fā)給GW3。隧道封裝報(bào)文的格式如圖5所示,可見,封裝了LABEL1的用戶報(bào)文作為隧道封裝報(bào)文的載荷進(jìn)行加密傳輸。GW3接收到該隧道封裝報(bào)文后,對該隧道封裝報(bào)文進(jìn)行SSLVPN隧道解封裝后再彈出其中的LABEL1得到用戶報(bào)文,確定與LABEL1對應(yīng)的VPN實(shí)例為VPN實(shí)例1,則將該用戶報(bào)文在VPN實(shí)例1內(nèi)進(jìn)行本地轉(zhuǎn)發(fā)給VM13。與前述報(bào)文轉(zhuǎn)發(fā)方法的實(shí)施例相對應(yīng),本申請還提供了報(bào)文轉(zhuǎn)發(fā)裝置的實(shí)施例。本申請報(bào)文轉(zhuǎn)發(fā)裝置60的實(shí)施例可以應(yīng)用在網(wǎng)關(guān)設(shè)備上。裝置實(shí)施例可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過其所在網(wǎng)關(guān)設(shè)備的處理器10將非易失性存儲器50中對應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存40中運(yùn)行形成的。從硬件層面而言,如圖6所示,為本申請報(bào)文轉(zhuǎn)發(fā)裝置60所在網(wǎng)關(guān)設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖6所示的處理器10、內(nèi)部總線20、網(wǎng)絡(luò)接口30、內(nèi)存40、以及非易失性存儲器50之外,實(shí)施例中裝置所在的網(wǎng)關(guān)設(shè)備通常根據(jù)該網(wǎng)關(guān)設(shè)備的實(shí)際功能,還可以包括其他硬件,對此不再贅述。請參考圖7,本申請實(shí)施例的報(bào)文轉(zhuǎn)發(fā)裝置60中包括:建立單元601、接收單元602和發(fā)送單元603,其中:接收單元601,用于接收本數(shù)據(jù)中心內(nèi)的本地VM發(fā)來的第一用戶報(bào)文;查找單元602,用于確定第一用戶報(bào)文所屬的第一VPN實(shí)例,根據(jù)第一用戶報(bào)文的目的地址,在第一VPN實(shí)例對應(yīng)的轉(zhuǎn)發(fā)表中查找用于轉(zhuǎn)發(fā)第一用戶報(bào)文的SSLVPN隧道;用于轉(zhuǎn)發(fā)第一用戶報(bào)文的SSLVPN隧道還用于轉(zhuǎn)發(fā)屬于除第一VPN實(shí)例之外的其它VPN實(shí)例的用戶報(bào)文;發(fā)送單元603,用于在第一用戶報(bào)文中封裝第一VPN實(shí)例對應(yīng)的VPN標(biāo)簽后進(jìn)行SSLVPN隧道封裝得到第一隧道封裝報(bào)文,通過查找單元602查找到的用于轉(zhuǎn)發(fā)第一用戶報(bào)文的SSLVPN隧道轉(zhuǎn)發(fā)第一隧道封裝報(bào)文,以使接收到第一隧道封裝報(bào)文的遠(yuǎn)端網(wǎng)關(guān)設(shè)備,對第一隧道封裝報(bào)文進(jìn)行SSLVPN隧道解封裝后得到第一用戶報(bào)文,根據(jù)第一用戶報(bào)文攜帶的VPN標(biāo)簽,將第一用戶報(bào)文在第一VPN實(shí)例內(nèi)進(jìn)行本地轉(zhuǎn)發(fā)。其中,接收單元601,還用于接收遠(yuǎn)端網(wǎng)關(guān)設(shè)備通過SSLVPN隧道發(fā)來的第二隧道封裝報(bào)文;發(fā)送單元603,還用于對第二隧道封裝報(bào)文進(jìn)行SSLVPN隧道解封裝后得到第二用戶報(bào)文,確定與第二用戶報(bào)文攜帶的VPN標(biāo)簽對應(yīng)的第二VPN實(shí)例,將第二用戶報(bào)文在第二VPN實(shí)例內(nèi)進(jìn)行本地轉(zhuǎn)發(fā)。如圖8所示,上述報(bào)文轉(zhuǎn)發(fā)裝置60中包括:配置單元604,其中:發(fā)送單元603,還用于當(dāng)本設(shè)備作為SSLVPN客戶端時(shí),向作為SSLVPN服務(wù)器的遠(yuǎn)端網(wǎng)關(guān)設(shè)備發(fā)送SSLVPN連接請求消息,以使該作為SSLVPN服務(wù)器的遠(yuǎn)端網(wǎng)關(guān)設(shè)備對本設(shè)備進(jìn)行身份認(rèn)證,在認(rèn)證通過后,將該作為SSLVPN服務(wù)器的遠(yuǎn)端網(wǎng)關(guān)設(shè)備所屬的遠(yuǎn)端數(shù)據(jù)中心內(nèi)的多個(gè)遠(yuǎn)端VM的地址和多個(gè)遠(yuǎn)端VM所屬VPN實(shí)例對應(yīng)的VPN標(biāo)簽,攜帶在資源授權(quán)報(bào)文中發(fā)送給本設(shè)備;接收單元601,還用于接收作為SSLVPN服務(wù)器的遠(yuǎn)端網(wǎng)關(guān)設(shè)備發(fā)來的資源授權(quán)報(bào)文;配置單元604,用于確認(rèn)本設(shè)備與作為SSLVPN服務(wù)器的遠(yuǎn)端網(wǎng)關(guān)設(shè)備之間的SSLVPN隧道建立成功;根據(jù)多個(gè)遠(yuǎn)端VM的地址和多個(gè)遠(yuǎn)端VM所屬VPN實(shí)例對應(yīng)的VPN標(biāo)簽,針對多個(gè)遠(yuǎn)端VM中的每個(gè)遠(yuǎn)端VM,將建立成功的SSLVPN隧道與該遠(yuǎn)端VM的地址的對應(yīng)關(guān)系配置到該遠(yuǎn)端VM所屬VPN實(shí)例對應(yīng)的轉(zhuǎn)發(fā)表中。其中,接收單元601,還用于當(dāng)本設(shè)備作為SSLVPN服務(wù)器時(shí),接收作為SSLVPN客戶端的遠(yuǎn)端網(wǎng)關(guān)設(shè)備發(fā)來的SSLVPN連接請求消息;發(fā)送單元603,還用于對作為SSLVPN客戶端的遠(yuǎn)端網(wǎng)關(guān)設(shè)備進(jìn)行身份認(rèn)證,在認(rèn)證通過后,將多個(gè)本地VM的地址和多個(gè)本地VM所屬VPN實(shí)例對應(yīng)的VPN標(biāo)簽攜帶在資源授權(quán)報(bào)文中發(fā)送給該作為SSLVPN客戶端的遠(yuǎn)端網(wǎng)關(guān)設(shè)備。其中,接收單元601,還用于接收控制器發(fā)來的需要建立SSLVPN隧道的網(wǎng)關(guān)設(shè)備的地址列表,以及VPN實(shí)例與VPN標(biāo)簽的對應(yīng)關(guān)系;發(fā)送單元603用于在判斷出該地址列表中存在本設(shè)備的地址時(shí),針對該地址列表中除本設(shè)備的地址以外的其它地址,將本設(shè)備作為SSLVPN客戶端,將地址為該其它地址的遠(yuǎn)端網(wǎng)關(guān)設(shè)備作為SSLVPN服務(wù)器,向作為SSLVPN服務(wù)器的遠(yuǎn)端網(wǎng)關(guān)設(shè)備發(fā)送SSLVPN連接請求消息,以建立本設(shè)備與該作為SSLVPN服務(wù)器的遠(yuǎn)端網(wǎng)關(guān)設(shè)備之間的SSLVPN隧道。上述裝置中各個(gè)單元的功能和作用的實(shí)現(xiàn)過程具體詳見上述方法中對應(yīng)步驟的實(shí)現(xiàn)過程,在此不再贅述。對于裝置實(shí)施例而言,由于其基本對應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本申請方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實(shí)施。以上所述僅為本申請的較佳實(shí)施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請保護(hù)的范圍之內(nèi)。當(dāng)前第1頁1 2 3