本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種報文處理方法及裝置。
背景技術(shù):
如圖1所示,在分布式數(shù)據(jù)中心網(wǎng)絡(luò)中,包括多個數(shù)據(jù)中心,每個數(shù)據(jù)中心包括內(nèi)部VTEP(Virtual eXtensible Local Area Network Tunnel End Point,可擴(kuò)展虛擬局域網(wǎng)絡(luò)隧道端點(diǎn)),如數(shù)據(jù)中心1中的VTEP100、VTEP110、數(shù)據(jù)中心2中的VTEP200和VTEP210,每個數(shù)據(jù)中心還包括邊界VTEP,如數(shù)據(jù)中心1中的VTEP120、數(shù)據(jù)中心2中的VTEP220,每個數(shù)據(jù)中心還包括路由反射器和主機(jī),如數(shù)據(jù)中心1中的設(shè)備路由反射器300、主機(jī)400、主機(jī)410,如數(shù)據(jù)中心2中的路由反射器310、主機(jī)500、主機(jī)510。
這些數(shù)據(jù)中心可以分布在不同的地點(diǎn),為便于數(shù)據(jù)中心間通信,這些數(shù)據(jù)中心間可以采用DCI(Data Center Interconnection,數(shù)據(jù)中心二層互聯(lián))的方式連接,也就是,不同數(shù)據(jù)中心間的邊界VTEP間運(yùn)行MP-EBGP(Multiple Protocol-External Border Gateway Protocol)建立EVPN(Ethernet Virtual Private Network,以太網(wǎng)虛擬專用網(wǎng)絡(luò))隧道,不同數(shù)據(jù)中心間通過邊界VTEP間建立的EVPN隧道進(jìn)行通信。
目前,不同數(shù)據(jù)中心間的通信時,邊界VTEP將接收到的報文進(jìn)行EVPN隧道封裝后,通過EVPN隧道發(fā)送至公網(wǎng),EVPN隧道封裝后的報文在公網(wǎng)的設(shè)備上進(jìn)行傳輸,此時,EVPN隧道封裝后的報文很容易被公網(wǎng)的設(shè)備截取,而一旦被截取,該EVPN隧道封裝后的報文很容易被恢復(fù)出報文的原始信息,從而導(dǎo)致數(shù)據(jù)中心間數(shù)據(jù)的外泄。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種報文處理方法及裝置,以避免數(shù)據(jù)中心間的數(shù)據(jù)外泄。具體技術(shù)方案如下:
一方面,本發(fā)明實(shí)施例公開了一種報文處理方法,應(yīng)用于第一數(shù)據(jù)中心的邊界VTEP,所述方法包括:
接收所述第一數(shù)據(jù)中心的主機(jī)發(fā)送的第一報文;
在轉(zhuǎn)發(fā)表中查找所述第一報文的目的地址,確定所述第一報文對應(yīng)的出接口,其中,所述轉(zhuǎn)發(fā)表中包括:地址和出接口的對應(yīng)關(guān)系;
若所述第一報文對應(yīng)的出接口為所述第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,則根據(jù)預(yù)設(shè)密鑰對所述第一報文進(jìn)行加密,其中,所述預(yù)設(shè)密鑰為第一數(shù)據(jù)中心的邊界VTEP與所述第二數(shù)據(jù)中心的邊界VTEP預(yù)先協(xié)商的;
對加密后的所述第一報文進(jìn)行EVPN隧道封裝;
通過EVPN隧道,將EVPN隧道封裝后的所述第一報文發(fā)送至所述第二數(shù)據(jù)中心的邊界VTEP。
另一方面,本發(fā)明實(shí)施例公開了一種報文處理裝置,應(yīng)用于第一數(shù)據(jù)中心的邊界VTEP,所述裝置包括:
第一接收單元,用于接收所述第一數(shù)據(jù)中心的主機(jī)發(fā)送的第一報文;
確定單元,用于在轉(zhuǎn)發(fā)表中查找所述第一報文的目的地址,確定所述第一報文對應(yīng)的出接口,其中,所述轉(zhuǎn)發(fā)表中包括:地址和出接口的對應(yīng)關(guān)系;
加密單元,用于若所述第一報文對應(yīng)的出接口為所述第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,則根據(jù)預(yù)設(shè)密鑰對所述第一報文進(jìn)行加密,其中,所述預(yù)設(shè)密鑰為第一數(shù)據(jù)中心的邊界VTEP與所述第二數(shù)據(jù)中心的邊界VTEP預(yù)先協(xié)商的;
封裝單元,用于對加密后的所述第一報文進(jìn)行EVPN隧道封裝;
第一發(fā)送單元,用于通過EVPN隧道,將EVPN隧道封裝后的所述第一報文發(fā)送至所述第二數(shù)據(jù)中心的邊界VTEP。
本發(fā)明實(shí)施例提供了一種報文處理方法及裝置,在第一數(shù)據(jù)中心邊界VTEP接收到第一報文后,若確定該第一報文的出接口為第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,也就是,確定第一報文需要在公網(wǎng)設(shè)備上傳輸,則根據(jù)預(yù)設(shè)密鑰對該第一報文進(jìn)行加密,再對加密后的第一報文進(jìn)行EVPN隧道封裝,將EVPN隧道封裝后的第一報文發(fā)送至第二數(shù)據(jù)中心的邊界VTEP。可見,本發(fā)明實(shí)施例中,邊界VTEP發(fā)送至公網(wǎng)的報文為加密處理后的報文,即使報文被公網(wǎng)的設(shè)備截取,也很難被恢復(fù)出報文的原始信息,有效地避免了數(shù)據(jù)中心間的數(shù)據(jù)外泄。當(dāng)然,實(shí)施本發(fā)明的任一產(chǎn)品或方法必不一定需要同時達(dá)到以上所述的所有優(yōu)點(diǎn)。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為分布式數(shù)據(jù)中心網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例提供的一種報文處理方法的一種流程示意圖;
圖3為本發(fā)明實(shí)施例中使用的一種EVPN隧道封裝后的報文的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例提供的一種報文處理方法的另一種流程示意圖;
圖5為本發(fā)明實(shí)施例提供的一種報文處理裝置的一種結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例提供的一種報文處理裝置的另一種結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
下面通過具體實(shí)施例,對本發(fā)明進(jìn)行詳細(xì)說明。
參考圖2,圖2為本發(fā)明實(shí)施例提供的一種報文處理方法的一種流程示意圖,該方法可以應(yīng)用于分布式數(shù)據(jù)中心網(wǎng)絡(luò)中的任一數(shù)據(jù)中心的邊界VTEP,為便于描述,以下以分布式數(shù)據(jù)中心網(wǎng)絡(luò)中第一數(shù)據(jù)中心的邊界VTEP為例進(jìn)行說明。具體地,該方法包括:
S201:接收第一數(shù)據(jù)中心的主機(jī)發(fā)送的第一報文;
這里,第一數(shù)據(jù)中心的主機(jī)可以為與邊界VTEP直接連接的設(shè)備,也可以為通過第一數(shù)據(jù)中心的內(nèi)部VTEP與邊界VTEP直接連接的設(shè)備。
S202:在轉(zhuǎn)發(fā)表中查找第一報文的目的地址,確定第一報文對應(yīng)的出接口;
其中,地址包括:IP(Internet Protocol,網(wǎng)絡(luò)協(xié)議)地址和MAC(Media Access Control,媒體訪問控制)地址,VTEP的轉(zhuǎn)發(fā)表中包括的地址和出接口的對應(yīng)關(guān)系可以分為:IP地址與出接口的對應(yīng)關(guān)系和MAC地址與出接口的對應(yīng)關(guān)系。
第一數(shù)據(jù)中心的邊界VTEP在接收到第一報文后,可以根據(jù)第一報文的目的IP地址在轉(zhuǎn)發(fā)表中查找對應(yīng)的出接口,也可以根據(jù)第一報文的目的MAC地址在轉(zhuǎn)發(fā)表中查找對應(yīng)的出接口,本發(fā)明實(shí)施例對此不進(jìn)行限定。當(dāng)查找到第一報文的目的IP地址和/或目的MAC地址對應(yīng)的出接口時,將這個查找到的出接口確定為第一報文對應(yīng)的出接口。
S203:若第一報文對應(yīng)的出接口為第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,則根據(jù)預(yù)設(shè)密鑰對第一報文進(jìn)行加密;
其中,第二數(shù)據(jù)中心與第一數(shù)據(jù)中心位于同一分布式數(shù)據(jù)中心網(wǎng)絡(luò)中;上述預(yù)設(shè)密鑰為第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP預(yù)先協(xié)商的,以便于第一數(shù)據(jù)中心和第二數(shù)據(jù)中心的邊界VTEP能夠?qū)碜詫Χ说倪吔鏥TEP的報文進(jìn)行解密。一般的,密鑰可以預(yù)先通過IKE(Internet Key Exchange,互聯(lián)網(wǎng)密鑰交換)協(xié)商獲得。
若確定第一報文對應(yīng)的出接口為第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,也就是確定第一報文需要在公網(wǎng)的設(shè)備上進(jìn)行傳輸,則根據(jù)預(yù)設(shè)密鑰對第一報文進(jìn)行加密。
在本發(fā)明的一個實(shí)施例中,為了提高報文加密的靈活性,減輕邊界VTEP加密或解密的負(fù)擔(dān),邊界VTEP可以僅對攜帶重要數(shù)據(jù)的報文進(jìn)行加密處理,而對攜帶普通數(shù)據(jù)的報文則不進(jìn)行加密處理。實(shí)際應(yīng)用中,重要數(shù)據(jù)的報文一般為特定的主機(jī)接收的,因此可以通過接收報文的主機(jī)來區(qū)分重要數(shù)據(jù)的報文和普通數(shù)據(jù)的報文。
這種情況下,邊界VTEP中可以預(yù)先存儲地址和安全標(biāo)記的對應(yīng)關(guān)系,將接收重要數(shù)據(jù)的報文的主機(jī)的地址對應(yīng)的安全標(biāo)記設(shè)置為預(yù)設(shè)標(biāo)記;該預(yù)設(shè)標(biāo)記用于表示目的地址為這個主機(jī)的地址的報文攜帶有重要數(shù)據(jù),需要對報文進(jìn)行加密。此時,若第一報文對應(yīng)的出接口為第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,則根據(jù)預(yù)先存儲的地址和安全標(biāo)記的對應(yīng)關(guān)系,確定第一報文的目的地址對應(yīng)的安全標(biāo)記;若第一報文的目的地址對應(yīng)的安全標(biāo)記為上述預(yù)設(shè)標(biāo)記,則根據(jù)預(yù)設(shè)密鑰對對第一報文進(jìn)行加密。
在本發(fā)明的其他實(shí)施例中,一個主機(jī)發(fā)送的報文也可以為重要數(shù)據(jù)的報文,此時,可以將發(fā)送重要數(shù)據(jù)的報文的主機(jī)的地址對應(yīng)的安全標(biāo)記設(shè)置為預(yù)設(shè)標(biāo)記,上述預(yù)設(shè)標(biāo)記還可以用于表示源地址為這個主機(jī)的地址的報文攜帶有重要數(shù)據(jù),需要對報文進(jìn)行加密。這種情況下,若第一報文對應(yīng)的出接口為第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,則根據(jù)預(yù)先存儲的地址和安全標(biāo)記的對應(yīng)關(guān)系,確定第一報文的源地址對應(yīng)的安全標(biāo)記;若第一報文的源地址對應(yīng)的安全標(biāo)記為上述預(yù)設(shè)標(biāo)記,則根據(jù)預(yù)設(shè)密鑰對第一報文進(jìn)行加密。
需要說明的是,上述對報文進(jìn)行加密的條件可以結(jié)合使用,也就是,若第一報文對應(yīng)的出接口為第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,且第一報文的目的地址、源地址中任一一個地址對應(yīng)的安全標(biāo)記為上述預(yù)設(shè)標(biāo)記,則根據(jù)預(yù)設(shè)密鑰對該第一報文進(jìn)行加密;否則,不對第一報文進(jìn)行加密。
在本發(fā)明的一個實(shí)施例中,各個數(shù)據(jù)中心的邊界VTEP中的轉(zhuǎn)發(fā)表和地址和安全標(biāo)記的對應(yīng)關(guān)系,在各個數(shù)據(jù)中心的邊界VTEP間學(xué)習(xí)路由信息時生成。具體地,以第一數(shù)據(jù)中心的邊界VTEP為例,該過程可以包括:
S01、在接收第一數(shù)據(jù)中心的主機(jī)發(fā)送的第一報文之前,通過第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,接收第二數(shù)據(jù)中心的邊界VTEP發(fā)送的第一路由通告消息;
其中,第一路由通告消息中包括第二數(shù)據(jù)中心中的主機(jī)的地址和安全標(biāo)記的對應(yīng)關(guān)系。
S02、根據(jù)第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道和第一路由通告消息中包括的地址,生成轉(zhuǎn)發(fā)表;
S03、存儲第一路由通告消息中包括的地址和安全標(biāo)記的對應(yīng)關(guān)系。
這種情況下,第一數(shù)據(jù)中心的邊界VTEP就可以根據(jù)存儲的這個對應(yīng)關(guān)系,確定向第二數(shù)據(jù)中心的邊界VTEP發(fā)送的報文的目的地址對應(yīng)的安全標(biāo)記,進(jìn)而確定報文是否需要加密。
另外,第一數(shù)據(jù)中心的邊界VTEP也會向第二數(shù)據(jù)中心的邊界VTEP發(fā)送路由通告消息,具體地:
S11、在接收第一數(shù)據(jù)中心的主機(jī)發(fā)送的第一報文之前,獲取第一數(shù)據(jù)中心中的主機(jī)的地址對應(yīng)的安全標(biāo)記,并存儲;
一般的,在邊界VTEP中預(yù)先配置有需要進(jìn)行加密的報文對應(yīng)的主機(jī)信息,如MAC地址、主機(jī)標(biāo)識等,根據(jù)這些主機(jī)信息,可以確定需要加密的主機(jī)的地址,進(jìn)而獲取到第一數(shù)據(jù)中心中的主機(jī)的地址對應(yīng)的安全標(biāo)記。
第一數(shù)據(jù)中心的邊界VTEP在存儲了第一數(shù)據(jù)中心中的主機(jī)的地址與安全標(biāo)記的對應(yīng)關(guān)系后,就可以根據(jù)存儲的這個對應(yīng)關(guān)系,確定向第二數(shù)據(jù)中心的邊界VTEP發(fā)送的報文的源地址對應(yīng)的安全標(biāo)記,進(jìn)而確定報文是否需要加密。
S12、根據(jù)第一數(shù)據(jù)中心中的主機(jī)的地址和安全標(biāo)記的對應(yīng)關(guān)系,生成第二路由通告消息,并通過EVPN隧道發(fā)送給第二數(shù)據(jù)中心的邊界VTEP。
這樣,第二數(shù)據(jù)中心的邊界VTEP就可以根據(jù)第二路由通告消息生成轉(zhuǎn)發(fā)表,并存儲第二路由通告消息中包括的地址和安全標(biāo)記的對應(yīng)關(guān)系。此時,第二數(shù)據(jù)中心的邊界VTEP就可以根據(jù)存儲的這個對應(yīng)關(guān)系,確定向第一數(shù)據(jù)中心的邊界VTEP發(fā)送的報文的目的地址對應(yīng)的安全標(biāo)記,進(jìn)而確定報文是否需要加密。
S204:對加密后的第一報文進(jìn)行EVPN隧道封裝;
在本發(fā)明的一個實(shí)施例中,第一數(shù)據(jù)中心的邊界VTEP并不是對所有接收到的報文都進(jìn)行加密,如S203中所述,第一數(shù)據(jù)中心的邊界VTEP在第一報文對應(yīng)的出接口為第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,且第一報文的目的地址、源地址中任一一個地址對應(yīng)的安全標(biāo)記為預(yù)設(shè)標(biāo)記時,才對該第一報文進(jìn)行加密。這種情況下,為了便于接收報文側(cè)的邊界VTEP區(qū)分出EVPN隧道封裝后的第一報文是否為加密處理后的報文,可以在EVPN隧道封裝頭中添加安全標(biāo)識,該安全標(biāo)識用于標(biāo)識EVPN隧道封裝后的報文中的原始報文已被加密處理。這種情況下,接收報文側(cè)的邊界VTEP接收到EVPN隧道封裝后的第一報文后,若檢測到EVPN隧道封裝頭中添加安全標(biāo)識,則可以確定EVPN隧道封裝后的第一報文中的第一報文為加密處理后的報文,在解封裝EVPN隧道封裝后的第一報文,獲得第一報文后,需要對該第一報文進(jìn)行解密。
需要說明的是,如圖3所示,EVPN隧道封裝頭中包括VXLAN(Virtual eXtensible Local Area Network,可擴(kuò)展虛擬局域網(wǎng)絡(luò))頭,安全標(biāo)識可以位于該VXLAN頭的“R”、Reserved1和Reserved2中的任一保留字段中。如圖3所示,安全標(biāo)識“S”位于“R”字段。
S205:通過EVPN隧道,將EVPN隧道封裝后的第一報文發(fā)送至第二數(shù)據(jù)中心的邊界VTEP。
在本發(fā)明的一個實(shí)施例中,第一數(shù)據(jù)中心的邊界VTEP還可以接收第二數(shù)據(jù)中心的邊界VTEP通過公網(wǎng)發(fā)送來的EVPN隧道封裝后的報文,具體地,參考圖4,在圖2的基礎(chǔ)上,報文處理方法還可以包括:
S401:接收EVPN隧道封裝后的第二報文;
其中,EVPN隧道封裝后的第二報文為第二數(shù)據(jù)中心的主機(jī)通過第二數(shù)據(jù)中心的邊界VTEP發(fā)送的。
S402:解封裝EVPN隧道封裝后的第二報文,獲得第二報文;
S403:根據(jù)預(yù)設(shè)密鑰對第二報文解密,并將解密后的第二報文發(fā)送給第二報文對應(yīng)的目的主機(jī)。
在本發(fā)明的一個實(shí)施例中,并不是所有的EVPN隧道封裝后的報文都進(jìn)行加密處理的,邊界VTEP可以通過EVPN隧道封裝頭中是否添加有安全標(biāo)識,確定EVPN隧道封裝后的報文是否為加密處理后的報文。
這種情況下,第一數(shù)據(jù)中心的邊界VTEP若確定EVPN隧道封裝后的第二報文的EVPN隧道封裝頭中包括安全標(biāo)識,則確定第二報文為加密處理后的報文,根據(jù)預(yù)設(shè)密鑰對第二報文解密,并將解密后的第二報文發(fā)送給第二報文對應(yīng)的目的主機(jī)。
下面結(jié)合圖1所示分布式數(shù)據(jù)中心網(wǎng)絡(luò),詳細(xì)說明邊界VTEP對報文的處理過程,具體地:
1、邊界VTEP120將主機(jī)400和主機(jī)410的路由信息和地址和安全標(biāo)記的對應(yīng)關(guān)系通過路由通告信息1告知邊界VTEP220;另外,邊界VTEP220將主機(jī)500和主機(jī)510的路由信息和地址和安全標(biāo)記的對應(yīng)關(guān)系通過路由通告信息2告知邊界VTEP120,邊界VTEP120和邊界VTEP220中生成對應(yīng)的轉(zhuǎn)發(fā)表,并存儲主機(jī)400、主機(jī)410、主機(jī)500和主機(jī)510的地址和安全標(biāo)記的對應(yīng)關(guān)系;其中,對應(yīng)主機(jī)400或主機(jī)500的報文需要被加密,也就是,主機(jī)400的地址對應(yīng)的安全標(biāo)記為預(yù)設(shè)標(biāo)記,如:“1”,主機(jī)500的地址的安全標(biāo)記為“1”;
2、邊界VTEP120接收到主機(jī)400發(fā)送給主機(jī)500的報文1,根據(jù)報文1的目的地址(主機(jī)500的地址)查找轉(zhuǎn)發(fā)表,確定該報文1的出接口為邊界VTEP120和邊界VTEP220間的EVPN隧道,并且根據(jù)預(yù)先存儲的地址和安全標(biāo)記的對應(yīng)關(guān)系,確定報文1的目的地址的安全標(biāo)記為“1”,則根據(jù)邊界VTEP220和邊界VTEP120間協(xié)商好的密鑰Y,對報文1進(jìn)行加密得到加密報文1后,再進(jìn)行EVPN隧道封裝,將EVPN隧道封裝后的加密報文1發(fā)送至公網(wǎng),該EVPN隧道封裝后的加密報文1的EVPN隧道封裝頭中包括安全標(biāo)識“S”;
公網(wǎng)中的設(shè)備根據(jù)EVPN隧道封裝后的加密報文1的外層IP頭,將EVPN隧道封裝后的加密報文1轉(zhuǎn)發(fā)給邊界VTEP220;
邊界VTEP220接收到EVPN隧道封裝后的加密報文1后,解封裝該EVPN隧道封裝后的加密報文1,獲得加密報文1;根據(jù)EVPN隧道封裝頭中的安全標(biāo)識“S”,確定加密報文1為加密處理后的報文;根據(jù)邊界VTEP220和邊界VTEP120間協(xié)商好的密鑰Y,對加密報文1解密,恢復(fù)出原始的報文1,將該恢復(fù)出的報文1轉(zhuǎn)發(fā)給主機(jī)500;
3、邊界VTEP120接收到主機(jī)400發(fā)送給主機(jī)510的報文2,根據(jù)報文2的目的地址(主機(jī)510的地址)查找轉(zhuǎn)發(fā)表,確定該報文2的出接口為邊界VTEP120和邊界VTEP220間的EVPN隧道,根據(jù)預(yù)先存儲的地址和安全標(biāo)記的對應(yīng)關(guān)系,確定報文2的源地址(主機(jī)400的地址)的安全標(biāo)記為“1”;這種情況下,根據(jù)邊界VTEP220和邊界VTEP120間協(xié)商好的密鑰Y,對報文2進(jìn)行加密得到加密報文2后,再進(jìn)行EVPN隧道封裝,將EVPN隧道封裝后的加密報文2發(fā)送至公網(wǎng),該EVPN隧道封裝后的加密報文2的EVPN隧道封裝頭中包括安全標(biāo)識“S”;
公網(wǎng)中的設(shè)備根據(jù)EVPN隧道封裝后的加密報文2的外層IP頭,將EVPN隧道封裝后的加密報文2轉(zhuǎn)發(fā)給邊界VTEP220;
邊界VTEP220接收到EVPN隧道封裝后的加密報文2后,解封裝該EVPN隧道封裝后的加密報文2,獲得加密報文2;根據(jù)EVPN隧道封裝頭中的安全標(biāo)識“S”,確定加密報文2為加密處理后的報文;根據(jù)邊界VTEP220和邊界VTEP120間協(xié)商好的密鑰Y,對加密報文2解密,恢復(fù)出原始的報文2,將該恢復(fù)出的報文2轉(zhuǎn)發(fā)給主機(jī)510。
4、邊界VTEP120接收到主機(jī)410發(fā)送給主機(jī)510的報文3,根據(jù)報文3的目的地址(主機(jī)510的地址)查找轉(zhuǎn)發(fā)表,確定該報文3的出接口為邊界VTEP120和邊界VTEP220間EVPN隧道,但根據(jù)預(yù)先存儲的地址和安全標(biāo)記的對應(yīng)關(guān)系,確定報文3的目的地址的安全標(biāo)記不為“1”,報文3的源地址(主機(jī)410的地址)的安全標(biāo)記也不為“1”;這種情況下,不對報文3進(jìn)行加密,直接進(jìn)行EVPN隧道封裝,將EVPN隧道封裝后的報文3發(fā)送至公網(wǎng),該EVPN隧道封裝后的報文3的EVPN隧道封裝頭中不包括安全標(biāo)識“S”;
公網(wǎng)中的設(shè)備根據(jù)EVPN隧道封裝后的報文3的外層IP頭,將EVPN隧道封裝后的報文3轉(zhuǎn)發(fā)給邊界VTEP220;
邊界VTEP220接收到EVPN隧道封裝后的報文3后,解封裝該EVPN隧道封裝后的報文3,獲得報文3;根據(jù)EVPN隧道封裝頭中不包括的安全標(biāo)識“S”,確定報文3為未加密處理后的報文,直接將該報文3轉(zhuǎn)發(fā)給主機(jī)510。
應(yīng)用上述實(shí)施例,在第一數(shù)據(jù)中心邊界VTEP接收到第一報文后,若確定該第一報文的出接口為第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,也就是,確定第一報文需要在公網(wǎng)設(shè)備上傳輸,則根據(jù)預(yù)設(shè)密鑰對該第一報文進(jìn)行加密,再對加密后的第一報文進(jìn)行EVPN隧道封裝,將EVPN隧道封裝后的第一報文發(fā)送至第二數(shù)據(jù)中心的邊界VTEP??梢?,本發(fā)明實(shí)施例中,邊界VTEP發(fā)送至公網(wǎng)的報文為加密處理后的報文,即使報文被公網(wǎng)的設(shè)備截取,也很難被恢復(fù)出報文的原始信息,有效地避免了數(shù)據(jù)中心間的數(shù)據(jù)外泄。
參考圖5,圖5為本發(fā)明實(shí)施例提供的一種報文處理裝置的一種結(jié)構(gòu)示意圖,應(yīng)用于第一數(shù)據(jù)中心的邊界VTEP,該裝置包括:
第一接收單元501,用于接收所述第一數(shù)據(jù)中心的主機(jī)發(fā)送的第一報文;
確定單元502,用于在轉(zhuǎn)發(fā)表中查找所述第一報文的目的地址,確定所述第一報文對應(yīng)的出接口,其中,所述轉(zhuǎn)發(fā)表中包括:地址和出接口的對應(yīng)關(guān)系;
加密單元503,用于若所述第一報文對應(yīng)的出接口為所述第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,則根據(jù)預(yù)設(shè)密鑰對所述第一報文進(jìn)行加密,其中,所述預(yù)設(shè)密鑰為第一數(shù)據(jù)中心的邊界VTEP與所述第二數(shù)據(jù)中心的邊界VTEP預(yù)先協(xié)商的;
封裝單元504,用于對加密后的所述第一報文進(jìn)行EVPN隧道封裝;
第一發(fā)送單元505,用于通過EVPN隧道,將EVPN隧道封裝后的所述第一報文發(fā)送至所述第二數(shù)據(jù)中心的邊界VTEP。
在本發(fā)明的一個實(shí)施例中,所述加密單元503,具體可以用于:
若所述第一報文對應(yīng)的出接口為所述第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,則根據(jù)預(yù)先存儲的地址和安全標(biāo)記的對應(yīng)關(guān)系,確定所述第一報文的目的地址對應(yīng)的安全標(biāo)記;
若所述第一報文的目的地址對應(yīng)的安全標(biāo)記為預(yù)設(shè)標(biāo)記,則根據(jù)預(yù)設(shè)密鑰對所述第一報文進(jìn)行加密。
在本發(fā)明的一個實(shí)施例中,所述報文處理裝置還可以包括:
第二接收單元(圖5中未示出),用于在接收所述第一數(shù)據(jù)中心的主機(jī)發(fā)送的第一報文之前,通過所述第一數(shù)據(jù)中心的邊界VTEP與所述第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,接收所述第二數(shù)據(jù)中心的邊界VTEP發(fā)送的第一路由通告消息,所述第一路由通告消息中包括所述第二數(shù)據(jù)中心中的主機(jī)的地址和安全標(biāo)記的對應(yīng)關(guān)系;
生成單元(圖5中未示出),用于根據(jù)所述第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道和所述第一路由通告消息中包括的地址,生成轉(zhuǎn)發(fā)表;
存儲單元(圖5中未示出),用于存儲所述第一路由通告消息中包括的地址和安全標(biāo)記的對應(yīng)關(guān)系。
在本發(fā)明的一個實(shí)施例中,所述加密單元503,具體可以用于:
若所述第一報文對應(yīng)的出接口為所述第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,則根據(jù)預(yù)先存儲的地址和安全標(biāo)記的對應(yīng)關(guān)系,確定所述第一報文的源地址對應(yīng)的安全標(biāo)記;
若所述第一報文的源地址對應(yīng)的安全標(biāo)記為預(yù)設(shè)標(biāo)記,則根據(jù)預(yù)設(shè)密鑰對所述第一報文進(jìn)行加密。
在本發(fā)明的一個實(shí)施例中,所述報文處理裝置還可以包括:
獲取單元(圖5中未示出),用于在接收所述第一數(shù)據(jù)中心的主機(jī)發(fā)送的第一報文之前,獲取所述第一數(shù)據(jù)中心中的主機(jī)的地址對應(yīng)的安全標(biāo)記,并存儲;
第二發(fā)送單元(圖5中未示出),用于根據(jù)所述第一數(shù)據(jù)中心中的主機(jī)的地址和安全標(biāo)記的對應(yīng)關(guān)系,生成第二路由通告消息,并通過所述EVPN隧道發(fā)送給所述第二數(shù)據(jù)中心的邊界VTEP,以使所述第二數(shù)據(jù)中心的邊界VTEP根據(jù)所述第二路由通告消息生成轉(zhuǎn)發(fā)表,并存儲所述第二路由通告消息中包括的地址和安全標(biāo)記的對應(yīng)關(guān)系。
在本發(fā)明的一個實(shí)施例中,參考圖6,在圖5的基礎(chǔ)上,所述報文處理裝置還可以包括:
第三接收單元601,用于接收EVPN隧道封裝后的第二報文,其中,所述EVPN隧道封裝后的第二報文為所述第二數(shù)據(jù)中心的主機(jī)通過所述第二數(shù)據(jù)中心的邊界VTEP發(fā)送的;
解封裝單元602,用于解封裝所述EVPN隧道封裝后的第二報文,獲得所述第二報文;
解密單元603,用于根據(jù)所述預(yù)設(shè)密鑰對所述第二報文解密,并將解密后的所述第二報文發(fā)送給所述第二報文對應(yīng)的目的主機(jī)。
在本發(fā)明的一個實(shí)施例中,所述封裝單元504,具體可以用于:
對加密后的所述第一報文進(jìn)行EVPN隧道封裝,并在EVPN隧道封裝頭中添加安全標(biāo)識,其中,所述安全標(biāo)識用于標(biāo)識EVPN隧道封裝后的報文中的原始報文已被加密處理。
在本發(fā)明的一個實(shí)施例中,所述解密單元603,具體可以用于:
若所述EVPN隧道封裝后的第二報文的EVPN隧道封裝頭中包括所述安全標(biāo)識,則根據(jù)所述預(yù)設(shè)密鑰對所述第二報文解密,并將解密后的所述第二報文發(fā)送給所述第二報文對應(yīng)的目的主機(jī)。
應(yīng)用上述實(shí)施例,在第一數(shù)據(jù)中心邊界VTEP接收到第一報文后,若確定該第一報文的出接口為第一數(shù)據(jù)中心的邊界VTEP與第二數(shù)據(jù)中心的邊界VTEP間的EVPN隧道,也就是,確定第一報文需要在公網(wǎng)設(shè)備上傳輸,則根據(jù)預(yù)設(shè)密鑰對該第一報文進(jìn)行加密,再對加密后的第一報文進(jìn)行EVPN隧道封裝,將EVPN隧道封裝后的第一報文發(fā)送至第二數(shù)據(jù)中心的邊界VTEP??梢姡景l(fā)明實(shí)施例中,邊界VTEP發(fā)送至公網(wǎng)的報文為加密處理后的報文,即使報文被公網(wǎng)的設(shè)備截取,也很難被恢復(fù)出報文的原始信息,有效地避免了數(shù)據(jù)中心間的數(shù)據(jù)外泄。
對于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個實(shí)施例均采用相關(guān)的方式描述,各個實(shí)施例之間相同相似的部分互相參見即可,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。