本發(fā)明實(shí)施例涉及通信技術(shù),尤其涉及一種跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法、裝置及系統(tǒng)。
背景技術(shù):
虛擬機(jī)(virtualmachine,簡(jiǎn)稱:vm)技術(shù)要求虛擬機(jī)遷移前后的網(wǎng)絡(luò)協(xié)議(internetprotocol,簡(jiǎn)稱:ip)和媒體介入控制層(mediaaccesscontrol,簡(jiǎn)稱:mac)地址不能變化,這樣就需要遷移的范圍是在同一個(gè)二層網(wǎng)絡(luò)內(nèi)部。而數(shù)據(jù)中心(datacenter,簡(jiǎn)稱:dc)往往都是通過虛擬局域網(wǎng)(virtuallocalareanetwork,簡(jiǎn)稱:vlan)隔離完成業(yè)務(wù)區(qū)分的,處于不同地理位置的dc之間通過三層網(wǎng)絡(luò)互訪,這樣一方面起到隔離的目的,另一方面也是防止廣播域過大,容易出現(xiàn)網(wǎng)絡(luò)故障或者安全問題。在這樣的dc群之間,或者是大型三層網(wǎng)絡(luò)dc內(nèi),vm的遷移是無法實(shí)現(xiàn)的,因此就出現(xiàn)了以下兩種跨dc的數(shù)據(jù)傳輸方法。
一種是虛擬專用局域網(wǎng)業(yè)務(wù)(virtualprivatelanservice,簡(jiǎn)稱:vpls),其有效地結(jié)合了ip、多協(xié)議標(biāo)簽交換(multi-protocollabelswitching,簡(jiǎn)稱:mpls)、虛擬專用網(wǎng)絡(luò)(virtualprivatenetwork,簡(jiǎn)稱:vpn)和以太網(wǎng)交換等多種技術(shù),支持廣域范圍內(nèi)多點(diǎn)到多點(diǎn)的局域網(wǎng)(localareanetwork,簡(jiǎn)稱:lan)互連,其核心思想是利用信令協(xié)議在vpls實(shí)例中的運(yùn)營商邊緣路由器之間建立并維護(hù)偽線,將二層協(xié)議幀封裝后在偽線上傳輸、交換,使廣域范圍內(nèi)多個(gè)局域網(wǎng)在數(shù)據(jù)鏈路層面被整合為一張網(wǎng)絡(luò),向用戶提供虛擬的以太網(wǎng)服務(wù)。
但是,vpls組網(wǎng)方案技術(shù)比較復(fù)雜,要求dc之間的互聯(lián)網(wǎng)絡(luò)是已部署為mpls技術(shù)的核心網(wǎng),每個(gè)vpls實(shí)例都需要在該實(shí)例中的n個(gè)運(yùn)營商邊緣路由器之間建立全網(wǎng)狀的標(biāo)記交換路徑(labelswitchingpath,簡(jiǎn)稱:lsp)隧道,因此vpls的部署及運(yùn)維管理難度較大,只有大型運(yùn)營商客戶擁有運(yùn)維能力。
另一種是通過在硬件交換機(jī)上,采用擴(kuò)展鏈路層網(wǎng)絡(luò)的技術(shù),實(shí)現(xiàn)二層網(wǎng)跨越dc的數(shù)據(jù)傳輸,該方案通過采用“macinip”隧道封裝的方式實(shí)現(xiàn)。
但是,該方案需要特殊硬件設(shè)備的支持,且主要是一些設(shè)備商自己提出的私有協(xié)議,無法與其它設(shè)備互聯(lián)互通。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法、裝置及系統(tǒng),以實(shí)現(xiàn)相同網(wǎng)絡(luò)中的vm之間跨dc的數(shù)據(jù)傳輸。
第一方面,本發(fā)明實(shí)施例提供一種跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法,所述方法應(yīng)用于控制器,所述控制器包括網(wǎng)絡(luò)路由信息維護(hù)模塊,所述方法包括:
接收第一虛擬機(jī)發(fā)送的待轉(zhuǎn)發(fā)數(shù)據(jù),所述待轉(zhuǎn)發(fā)數(shù)據(jù)包括目的網(wǎng)絡(luò)協(xié)議ip地址和媒體介入控制層mac地址;
根據(jù)所述目的ip地址和預(yù)先獲取的網(wǎng)絡(luò)路由信息確定所述待轉(zhuǎn)發(fā)數(shù)據(jù)的轉(zhuǎn)發(fā)路徑,所述網(wǎng)絡(luò)路由信息包括至少一個(gè)數(shù)據(jù)中心中的虛擬機(jī)的路由信息;
將所述轉(zhuǎn)發(fā)路徑和所述待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第一網(wǎng)絡(luò)節(jié)點(diǎn),以使所述第一網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)所述轉(zhuǎn)發(fā)路徑將所述待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn),進(jìn)而轉(zhuǎn)發(fā)至所述目的ip地址對(duì)應(yīng)的第二虛擬機(jī)。
結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述目的ip地址和預(yù)先獲取的網(wǎng)絡(luò)路由信息確定所述待轉(zhuǎn)發(fā)數(shù)據(jù)的轉(zhuǎn)發(fā)路徑,包括:
根據(jù)所述目的ip地址和所述網(wǎng)絡(luò)路由信息確定所述第二虛擬機(jī)與所述第一虛擬機(jī)是否位于同一網(wǎng)絡(luò);
若所述第二虛擬機(jī)與所述第一虛擬機(jī)位于同一網(wǎng)絡(luò),則根據(jù)所述目的ip地址確定所述轉(zhuǎn)發(fā)路徑,所述轉(zhuǎn)發(fā)路徑用于指示所述第一網(wǎng)絡(luò)節(jié)點(diǎn)將所述待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給所述第二網(wǎng)絡(luò)節(jié)點(diǎn)。
結(jié)合第一方面,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述目的ip地址和預(yù)先獲取的網(wǎng)絡(luò)路由信息確定所述待轉(zhuǎn)發(fā)數(shù)據(jù)的轉(zhuǎn)發(fā)路徑,包括:
根據(jù)所述目的ip地址和所述網(wǎng)絡(luò)路由信息確定所述第二虛擬機(jī)與所述第一虛擬機(jī)是否位于同一網(wǎng)絡(luò);
若所述第二虛擬機(jī)與所述第一虛擬機(jī)沒有位于同一網(wǎng)絡(luò),則根據(jù)所述目的ip地址確定所述轉(zhuǎn)發(fā)路徑,所述轉(zhuǎn)發(fā)路徑用于指示所述第一網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行由所述第一虛擬機(jī)所在網(wǎng)絡(luò)至所述第二虛擬機(jī)所在網(wǎng)絡(luò)的網(wǎng)關(guān)處理,并將處理后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給所述第二網(wǎng)絡(luò)節(jié)點(diǎn)。
結(jié)合第一方面,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述目的ip地址和預(yù)先獲取的網(wǎng)絡(luò)路由信息確定所述待轉(zhuǎn)發(fā)數(shù)據(jù)的轉(zhuǎn)發(fā)路徑,包括:
根據(jù)所述目的ip地址和所述網(wǎng)絡(luò)路由信息確定所述轉(zhuǎn)發(fā)路徑,所述轉(zhuǎn)發(fā)路徑用于指示所述第一網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行復(fù)制,并將復(fù)制后的待轉(zhuǎn)發(fā)數(shù)據(jù)逐一發(fā)送給至少一個(gè)第二網(wǎng)路節(jié)點(diǎn)。
結(jié)合第一方面、第一方面的第一種至第三種中任一種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述接收第一虛擬機(jī)發(fā)送的待轉(zhuǎn)發(fā)數(shù)據(jù)之前,還包括:
與至少一個(gè)控制器進(jìn)行mac信息同步,獲取所述網(wǎng)絡(luò)路由信息,所述網(wǎng)絡(luò)路由信息包括所述至少一個(gè)控制器分別對(duì)應(yīng)的數(shù)據(jù)中心中的虛擬機(jī)的路由信息。
結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述與至少一個(gè)控制器進(jìn)行mac信息同步,獲取所述網(wǎng)絡(luò)路由信息之后,還包括:
接收所述第一虛擬機(jī)發(fā)送的地址請(qǐng)求,所述地址請(qǐng)求包括第二虛擬機(jī)的ip地址;
根據(jù)所述第二虛擬機(jī)的ip地址查詢所述網(wǎng)絡(luò)路由信息,確定所述第二虛擬機(jī)對(duì)應(yīng)的mac地址;
將所述第二虛擬機(jī)對(duì)應(yīng)的mac地址發(fā)送給所述第一虛擬機(jī)。
第二方面,本發(fā)明實(shí)施例提供一種跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法,所述方法應(yīng)用于網(wǎng)絡(luò)節(jié)點(diǎn),所述網(wǎng)絡(luò)節(jié)點(diǎn)包括交換機(jī)模塊、網(wǎng)關(guān)模塊以及二層網(wǎng)絡(luò)代理模塊,所述方法包括:
接收控制器發(fā)送的轉(zhuǎn)發(fā)路徑和第一虛擬機(jī)的待轉(zhuǎn)發(fā)數(shù)據(jù),所述待轉(zhuǎn)發(fā)數(shù)據(jù)包括目的網(wǎng)絡(luò)協(xié)議ip地址和媒體介入控制層mac地址;
根據(jù)所述轉(zhuǎn)發(fā)路徑和所述目的ip地址對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行隧道協(xié)議的 包頭封裝,封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)包括跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息;
根據(jù)所述跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息將所述封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn),以使所述第二網(wǎng)絡(luò)節(jié)點(diǎn)解封裝所述封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù),并將解封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給所述目的ip地址對(duì)應(yīng)的第二虛擬機(jī)。
結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述轉(zhuǎn)發(fā)路徑和所述目的ip地址對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行隧道協(xié)議的包頭封裝之前,還包括:
根據(jù)所述轉(zhuǎn)發(fā)路徑和所述目的ip地址對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行由所述第一虛擬機(jī)所在網(wǎng)絡(luò)至所述第二虛擬機(jī)所在網(wǎng)絡(luò)的網(wǎng)關(guān)處理。
結(jié)合第二方面,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述轉(zhuǎn)發(fā)路徑和所述目的ip地址對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行隧道協(xié)議的包頭封裝之前,還包括:
對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行復(fù)制;
所述根據(jù)所述轉(zhuǎn)發(fā)路徑和所述目的ip地址對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行隧道協(xié)議的包頭封裝,包括:
根據(jù)所述轉(zhuǎn)發(fā)路徑和所述目的ip地址對(duì)復(fù)制后的待轉(zhuǎn)發(fā)數(shù)據(jù)逐一進(jìn)行所述隧道協(xié)議的包頭封裝;
所述根據(jù)所述跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息將所述封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn),包括:
根據(jù)所述跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息分別將封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)逐一發(fā)送給至少一個(gè)第二網(wǎng)絡(luò)節(jié)點(diǎn)。
第三方面,本發(fā)明實(shí)施例提供一種控制器,包括:
接收模塊,用于接收第一虛擬機(jī)發(fā)送的待轉(zhuǎn)發(fā)數(shù)據(jù),所述待轉(zhuǎn)發(fā)數(shù)據(jù)包括目的網(wǎng)絡(luò)協(xié)議ip地址和媒體介入控制層mac地址;
網(wǎng)絡(luò)路由信息維護(hù)模塊,用于根據(jù)所述目的ip地址和預(yù)先獲取的網(wǎng)絡(luò)路由信息確定所述待轉(zhuǎn)發(fā)數(shù)據(jù)的轉(zhuǎn)發(fā)路徑,所述網(wǎng)絡(luò)路由信息包括至少一個(gè)數(shù)據(jù)中心中的虛擬機(jī)的路由信息;
發(fā)送模塊,用于將所述轉(zhuǎn)發(fā)路徑和所述待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第一網(wǎng)絡(luò)節(jié)點(diǎn),以使所述第一網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)所述轉(zhuǎn)發(fā)路徑將所述待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn),進(jìn)而轉(zhuǎn)發(fā)至所述目的ip地址對(duì)應(yīng)的第二虛擬機(jī)。
結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述網(wǎng)絡(luò)路由信息維護(hù)模塊,具體用于根據(jù)所述目的ip地址和所述網(wǎng)絡(luò)路由信息確定所述第二虛擬機(jī)與所述第一虛擬機(jī)是否位于同一網(wǎng)絡(luò);若所述第二虛擬機(jī)與所述第一虛擬機(jī)位于同一網(wǎng)絡(luò),則根據(jù)所述目的ip地址確定所述轉(zhuǎn)發(fā)路徑,所述轉(zhuǎn)發(fā)路徑用于指示所述第一網(wǎng)絡(luò)節(jié)點(diǎn)將所述待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給所述第二網(wǎng)絡(luò)節(jié)點(diǎn)。
結(jié)合第三方面,在第三方面的第二種可能的實(shí)現(xiàn)方式中,所述網(wǎng)絡(luò)路由信息維護(hù)模塊,具體用于根據(jù)所述目的ip地址和所述網(wǎng)絡(luò)路由信息確定所述第二虛擬機(jī)與所述第一虛擬機(jī)是否位于同一網(wǎng)絡(luò);若所述第二虛擬機(jī)與所述第一虛擬機(jī)沒有位于同一網(wǎng)絡(luò),則根據(jù)所述目的ip地址確定所述轉(zhuǎn)發(fā)路徑,所述轉(zhuǎn)發(fā)路徑用于指示所述第一網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行由所述第一虛擬機(jī)所在網(wǎng)絡(luò)至所述第二虛擬機(jī)所在網(wǎng)絡(luò)的網(wǎng)關(guān)處理,并將處理后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給所述第二網(wǎng)絡(luò)節(jié)點(diǎn)。
結(jié)合第三方面,在第三方面的第三種可能的實(shí)現(xiàn)方式中,所述網(wǎng)絡(luò)路由信息維護(hù)模塊,具體用于根據(jù)所述目的ip地址和所述網(wǎng)絡(luò)路由信息確定所述轉(zhuǎn)發(fā)路徑,所述轉(zhuǎn)發(fā)路徑用于指示所述第一網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行復(fù)制,并將復(fù)制后的待轉(zhuǎn)發(fā)數(shù)據(jù)逐一發(fā)送給至少一個(gè)第二網(wǎng)路節(jié)點(diǎn)。
結(jié)合第三方面、第三方面的第一種至第三種中任一種可能的實(shí)現(xiàn)方式,在第三方面的第四種可能的實(shí)現(xiàn)方式中,所述網(wǎng)絡(luò)路由信息維護(hù)模塊,還用于與至少一個(gè)控制器進(jìn)行mac信息同步,獲取所述網(wǎng)絡(luò)路由信息,所述網(wǎng)絡(luò)路由信息包括所述至少一個(gè)控制器分別對(duì)應(yīng)的數(shù)據(jù)中心中的虛擬機(jī)的路由信息。
結(jié)合第三方面的第四種可能的實(shí)現(xiàn)方式,在第三方面的第五種可能的實(shí)現(xiàn)方式中,所述網(wǎng)絡(luò)路由信息維護(hù)模塊,還用于接收所述第一虛擬機(jī)發(fā)送的地址請(qǐng)求,所述地址請(qǐng)求包括第二虛擬機(jī)的ip地址;根據(jù)所述第二虛擬機(jī)的ip地址查詢所述網(wǎng)絡(luò)路由信息,確定所述第二虛擬機(jī)對(duì)應(yīng)的mac地址;將所述第二虛擬機(jī)對(duì)應(yīng)的mac地址發(fā)送給所述第一虛擬機(jī)。
第四方面,本發(fā)明實(shí)施例提供一種網(wǎng)絡(luò)節(jié)點(diǎn),包括:
交換機(jī)模塊,用于接收控制器發(fā)送的轉(zhuǎn)發(fā)路徑和第一虛擬機(jī)的待轉(zhuǎn)發(fā)數(shù)據(jù),所述待轉(zhuǎn)發(fā)數(shù)據(jù)包括目的網(wǎng)絡(luò)協(xié)議ip地址和媒體介入控制層mac地址;
二層網(wǎng)絡(luò)代理模塊,用于根據(jù)所述轉(zhuǎn)發(fā)路徑和所述目的ip地址對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行隧道協(xié)議的包頭封裝,封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)包括跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息;
發(fā)送模塊,用于根據(jù)所述跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息將所述封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn),以使所述第二網(wǎng)絡(luò)節(jié)點(diǎn)解封裝所述封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù),并將解封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給所述目的ip地址對(duì)應(yīng)的第二虛擬機(jī)。
結(jié)合第四方面,在第四方面的第一種可能的實(shí)現(xiàn)方式中,還包括:
網(wǎng)關(guān)模塊,用于根據(jù)所述轉(zhuǎn)發(fā)路徑和所述目的ip地址對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行由所述第一虛擬機(jī)所在網(wǎng)絡(luò)至所述第二虛擬機(jī)所在網(wǎng)絡(luò)的網(wǎng)關(guān)處理。
結(jié)合第四方面,在第四方面的第二種可能的實(shí)現(xiàn)方式中,所述二層網(wǎng)絡(luò)代理模塊,還用于對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行復(fù)制;根據(jù)所述轉(zhuǎn)發(fā)路徑和所述目的ip地址對(duì)復(fù)制后的待轉(zhuǎn)發(fā)數(shù)據(jù)逐一進(jìn)行所述隧道協(xié)議的包頭封裝;
所述發(fā)送模塊,具體用于根據(jù)所述跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息分別將封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)逐一發(fā)送給至少一個(gè)第二網(wǎng)絡(luò)節(jié)點(diǎn)。
第五方面,本發(fā)明實(shí)施例提供一種通信系統(tǒng),包括:控制器、網(wǎng)絡(luò)節(jié)點(diǎn)以及虛擬機(jī);其中,所述控制器采用第三方面、第三方面的第一種至第五種中任一種可能的實(shí)現(xiàn)方式所述的控制器;所述網(wǎng)絡(luò)節(jié)點(diǎn)采用第四方面、第四方面的第一種至第二種中任一種可能的實(shí)現(xiàn)方式所述的網(wǎng)絡(luò)節(jié)點(diǎn)。
本發(fā)明實(shí)施例跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法、裝置及系統(tǒng),通過控制器和網(wǎng)絡(luò)節(jié)點(diǎn)中相應(yīng)的模塊對(duì)待傳輸數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)處理,實(shí)現(xiàn)相同網(wǎng)絡(luò)中的vm之間跨dc的數(shù)據(jù)傳輸,該方法對(duì)dc之間的承載網(wǎng)無要求,只需ip聯(lián)通即可,而且無需特殊硬件設(shè)備,方便實(shí)施和維護(hù),其利用sdn的特性,實(shí)現(xiàn)控制平面與數(shù)據(jù)平面分離,可以適用于虛擬網(wǎng)絡(luò)與物理網(wǎng)絡(luò)多種環(huán)境。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明通信系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
圖2為本發(fā)明跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法的一個(gè)實(shí)施例的流程圖;
圖3為本發(fā)明跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法的另一個(gè)實(shí)施例的流程圖;
圖4為本發(fā)明跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法的再一個(gè)實(shí)施例的流程圖;
圖5為本發(fā)明跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法的第四個(gè)實(shí)施例的流程圖;
圖6為本發(fā)明控制器的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
圖7為本發(fā)明網(wǎng)絡(luò)節(jié)點(diǎn)的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
圖8為本發(fā)明網(wǎng)絡(luò)節(jié)點(diǎn)的另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1為本發(fā)明通信系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,如圖1所示,該通信系統(tǒng)包括控制器、網(wǎng)絡(luò)節(jié)點(diǎn)以及vm,其中,控制器包括第一控制器和第二控制器,第一控制器和第二控制器分別屬于不同的dc,兩個(gè)控制器之間可以進(jìn)行mac信息同步,在第一控制器和第二控制器上均包括網(wǎng)絡(luò)路由信息維護(hù)模塊,該網(wǎng)絡(luò)路由信息維護(hù)模塊用于通過邊界網(wǎng)關(guān)協(xié)議(bordergatewayprotocol,簡(jiǎn)稱:bgp)、mp-bgp等協(xié)議與至少一個(gè)相鄰dc的控制器進(jìn)行mac信息同步,獲取至少一個(gè)相鄰dc中的vm的路由信息;響應(yīng)vm發(fā)起的地址解析協(xié)議(addressresolutionprotocol,簡(jiǎn)稱:arp)請(qǐng)求,返回相應(yīng)的mac地址;vpn中相鄰dc之間的鄰居關(guān)系建立和維護(hù);網(wǎng)絡(luò)標(biāo)識(shí)與跨dc時(shí)的隧道標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系的維護(hù);網(wǎng)絡(luò)節(jié)點(diǎn)包括第一網(wǎng)絡(luò)節(jié)點(diǎn)和第二網(wǎng)絡(luò)節(jié)點(diǎn),第一網(wǎng)絡(luò)節(jié)點(diǎn)和第二網(wǎng)絡(luò)節(jié)點(diǎn)分別屬于不同的dc,兩個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)之間可以建立專用隧道,例如,vxlan隧道、通用路由封裝(genericroutingencapsulation,簡(jiǎn)稱:gre)隧道等,第一網(wǎng)絡(luò)節(jié)點(diǎn)和第二網(wǎng)絡(luò)節(jié)點(diǎn)均包括交換機(jī)模塊、網(wǎng)關(guān)模塊以及二層網(wǎng)絡(luò)代理模塊,該二層網(wǎng)絡(luò)代理模塊用于對(duì)待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行隧道協(xié)議的包頭封裝和解封裝;識(shí)別bum流量,將廣播或組 播報(bào)文轉(zhuǎn)換為多個(gè)單播報(bào)文;接收和轉(zhuǎn)發(fā)報(bào)文;vm包括第一vm、第二vm以及第三vm,第一vm和第二vm位于相同網(wǎng)絡(luò),但分別屬于不同的dc,第一vm和第三vm位于不同的網(wǎng)絡(luò),但屬于相同的dc,在vm中還可以包括交換機(jī)。
本發(fā)明的跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法可以應(yīng)用于屬于不同dc的vm之間進(jìn)行數(shù)據(jù)傳輸?shù)膱?chǎng)景,例如,第一vm和第二vm之間的數(shù)據(jù)傳輸,第三vm和第二vm之間的數(shù)據(jù)傳輸。還可以應(yīng)用于廣播或組播報(bào)文在不同dc的vm之間進(jìn)行數(shù)據(jù)傳輸?shù)膱?chǎng)景。以下通過實(shí)施例對(duì)本發(fā)明的方法進(jìn)行說明。
圖2為本發(fā)明跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法的一個(gè)實(shí)施例的流程圖,如圖2所示,本實(shí)施例的方法可以適用于圖1所示的通信系統(tǒng),進(jìn)行數(shù)據(jù)傳輸?shù)膬蓚€(gè)vm位于同一網(wǎng)絡(luò),但屬于不同dc,例如第一vm向第二vm發(fā)送數(shù)據(jù)。該方法可以包括:
s101、第一控制器接收第一vm發(fā)送的待轉(zhuǎn)發(fā)數(shù)據(jù),該待轉(zhuǎn)發(fā)數(shù)據(jù)包括第二vm的ip地址和mac地址;
第一vm要向第二vm發(fā)送數(shù)據(jù),待轉(zhuǎn)發(fā)數(shù)據(jù)可以通過第一vm的交換機(jī)傳輸給第一控制器。由于第一vm和第二vm是位于同一網(wǎng)絡(luò)的,因此待轉(zhuǎn)發(fā)數(shù)據(jù)中的mac地址是第二vm的mac地址。
s102、第一控制器根據(jù)第二vm的ip地址和網(wǎng)絡(luò)路由信息確定第一vm與第二vm是否位于同一網(wǎng)絡(luò);
第一控制器通過網(wǎng)絡(luò)路由信息維護(hù)模塊預(yù)先獲取了網(wǎng)絡(luò)路由信息,該網(wǎng)絡(luò)路由信息包括至少一個(gè)dc中的vm的路由信息,該路由信息可以包括各vm的ip地址、mac地址以及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)等信息,基于網(wǎng)絡(luò)路由信息第一控制器即可掌握整個(gè)網(wǎng)絡(luò)的部署情況。第一控制器根據(jù)第二vm的ip地址和網(wǎng)絡(luò)路由信息可以確定出第一vm和第二vm是否位于同一網(wǎng)絡(luò)。
s103、若第一vm與第二vm位于同一網(wǎng)絡(luò),則第一控制器根據(jù)第二vm的ip地址確定轉(zhuǎn)發(fā)路徑,該轉(zhuǎn)發(fā)路徑用于指示第一網(wǎng)絡(luò)節(jié)點(diǎn)將待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn);
第一控制器在確定第一vm和第二vm位于同一網(wǎng)絡(luò)后,根據(jù)待轉(zhuǎn)發(fā)數(shù)據(jù)的目的ip地址(即第二vm的ip地址)確定出待轉(zhuǎn)發(fā)數(shù)據(jù)的轉(zhuǎn)發(fā)路徑,該轉(zhuǎn)發(fā)路徑可以以軟件定義網(wǎng)絡(luò)(softwaredefinednetwork,簡(jiǎn)稱:sdn) 中的openflow消息進(jìn)行下發(fā),第一控制器通過轉(zhuǎn)發(fā)路徑指示第一網(wǎng)絡(luò)節(jié)點(diǎn)將待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn)。
s104、第一控制器將轉(zhuǎn)發(fā)路徑和待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第一網(wǎng)絡(luò)節(jié)點(diǎn);
第一網(wǎng)絡(luò)節(jié)點(diǎn)與第一vm屬于同一dc,第一控制器將轉(zhuǎn)發(fā)路徑和待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第一網(wǎng)絡(luò)節(jié)點(diǎn)。
s105、第一網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)轉(zhuǎn)發(fā)路徑和第二vm的ip地址對(duì)待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行隧道協(xié)議的包頭封裝,封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)包括跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息;
第一網(wǎng)絡(luò)節(jié)點(diǎn)通過二層網(wǎng)絡(luò)代理模塊根據(jù)轉(zhuǎn)發(fā)路徑和第二vm的ip地址對(duì)待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行隧道協(xié)議的包頭封裝,例如,執(zhí)行vxlan封裝、gre封裝等,在待轉(zhuǎn)發(fā)數(shù)據(jù)中增加外層包頭,該外層包頭可以是跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息,該路由信息與隧道協(xié)議相匹配,以符合隧道協(xié)議的數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則。
s106、第一網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息將封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn);
第一網(wǎng)絡(luò)節(jié)點(diǎn)通過二層網(wǎng)絡(luò)代理模塊將封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn),第二網(wǎng)絡(luò)節(jié)點(diǎn)與第二vm屬于同一個(gè)dc中,第一網(wǎng)絡(luò)節(jié)點(diǎn)和第二網(wǎng)絡(luò)節(jié)點(diǎn)之間已經(jīng)預(yù)先建立起隧道,建立該隧道可以是vxlan隧道、gre隧道等。
s107、第二網(wǎng)絡(luò)節(jié)點(diǎn)解封裝上述封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù),并將解封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二vm。
第二網(wǎng)絡(luò)節(jié)點(diǎn)解封裝收到的數(shù)據(jù),將其最外層的包頭去掉,然后根據(jù)解封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)中的目的ip地址(即第二vm的ip地址)將其發(fā)送至目的地(即第二vm),至此從第一vm至第二vm的數(shù)據(jù)傳輸即發(fā)送完畢。
本實(shí)施例,通過控制器和網(wǎng)絡(luò)節(jié)點(diǎn)中相應(yīng)的模塊對(duì)待傳輸數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)處理,實(shí)現(xiàn)相同網(wǎng)絡(luò)中的vm之間跨dc的數(shù)據(jù)傳輸,該方法對(duì)dc之間的承載網(wǎng)無要求,只需ip聯(lián)通即可,而且無需特殊硬件設(shè)備,方便實(shí)施和維護(hù),其利用sdn的特性,實(shí)現(xiàn)控制平面與數(shù)據(jù)平面分離,可以適用于虛擬網(wǎng)絡(luò)與物理網(wǎng)絡(luò)多種環(huán)境。
圖3為本發(fā)明跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法的另一個(gè)實(shí)施例的流程圖,如圖3所示,本實(shí)施例的方法可以適用于圖1所示的通信系統(tǒng),進(jìn)行數(shù)據(jù)傳輸 的兩個(gè)vm沒有位于同一網(wǎng)絡(luò),且屬于不同dc,例如第三vm向第二vm發(fā)送數(shù)據(jù)。該方法可以包括:
s201、第一控制器接收第三vm發(fā)送的待轉(zhuǎn)發(fā)數(shù)據(jù),該待轉(zhuǎn)發(fā)數(shù)據(jù)包括第二vm的ip地址和mac地址;
第三vm要向第二vm發(fā)送數(shù)據(jù),待轉(zhuǎn)發(fā)數(shù)據(jù)可以通過第三vm的交換機(jī)傳輸給第一控制器。由于第三vm和第二vm沒有位于同一網(wǎng)絡(luò),因此待轉(zhuǎn)發(fā)數(shù)據(jù)中的mac地址是第三vm所在網(wǎng)絡(luò)的網(wǎng)關(guān)的mac地址。
s202、第一控制器根據(jù)第二vm的ip地址和網(wǎng)絡(luò)路由信息確定第三vm與第二vm是否位于同一網(wǎng)絡(luò);
第一控制器通過網(wǎng)絡(luò)路由信息維護(hù)模塊預(yù)先獲取了網(wǎng)絡(luò)路由信息,該網(wǎng)絡(luò)路由信息包括至少一個(gè)dc中的vm的路由信息,該路由信息可以包括各vm的ip地址、mac地址以及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)等信息,基于網(wǎng)絡(luò)路由信息第一控制器即可掌握整個(gè)網(wǎng)絡(luò)的部署情況。第一控制器根據(jù)第二vm的ip地址和網(wǎng)絡(luò)路由信息可以確定出第三vm和第二vm是否位于同一網(wǎng)絡(luò)。
s203、若第三vm與第二vm沒有位于同一網(wǎng)絡(luò),則第一控制器根據(jù)第二vm的ip地址確定轉(zhuǎn)發(fā)路徑,轉(zhuǎn)發(fā)路徑用于指示第一網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行由第三vm所在網(wǎng)絡(luò)至第二vm所在網(wǎng)絡(luò)的網(wǎng)關(guān)處理,并將處理后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn);
第一控制器在確定第三vm和第二vm沒有位于同一網(wǎng)絡(luò)后,根據(jù)待轉(zhuǎn)發(fā)數(shù)據(jù)的目的ip地址(即第二vm的ip地址)確定出待轉(zhuǎn)發(fā)數(shù)據(jù)的轉(zhuǎn)發(fā)路徑,該轉(zhuǎn)發(fā)路徑可以以sdn中的openflow消息進(jìn)行下發(fā),第一控制器通過轉(zhuǎn)發(fā)路徑指示第一網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行由第三vm所在網(wǎng)絡(luò)至第二vm所在網(wǎng)絡(luò)的網(wǎng)關(guān)處理,并將待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn)。
s204、第一控制器將轉(zhuǎn)發(fā)路徑和待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第一網(wǎng)絡(luò)節(jié)點(diǎn);
第一網(wǎng)絡(luò)節(jié)點(diǎn)與第三vm屬于同一dc,第一控制器將轉(zhuǎn)發(fā)路徑和待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第一網(wǎng)絡(luò)節(jié)點(diǎn)。
s205、第一網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)轉(zhuǎn)發(fā)路徑和第二vm的ip地址對(duì)待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行由第一vm所在網(wǎng)絡(luò)至第二vm所在網(wǎng)絡(luò)的網(wǎng)關(guān)處理;
網(wǎng)管處理包括第一網(wǎng)絡(luò)節(jié)點(diǎn)將待轉(zhuǎn)發(fā)數(shù)據(jù)中的mac地址由第三vm所在網(wǎng)絡(luò)的網(wǎng)關(guān)的mac地址改為第二vm所在網(wǎng)絡(luò)的網(wǎng)關(guān)的mac地址,并將 該待轉(zhuǎn)發(fā)數(shù)據(jù)的輸出接口調(diào)整至第二vm所在網(wǎng)絡(luò)對(duì)應(yīng)的輸出接口,再由第二vm所在網(wǎng)絡(luò)的網(wǎng)關(guān)將待傳輸數(shù)據(jù)中的mac地址改為第二vm的mac地址。
s206、第一網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)轉(zhuǎn)發(fā)路徑和第二vm的ip地址對(duì)待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行隧道協(xié)議的包頭封裝,封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)包括跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息;
第一網(wǎng)絡(luò)節(jié)點(diǎn)通過二層網(wǎng)絡(luò)代理模塊根據(jù)轉(zhuǎn)發(fā)路徑和第二vm的ip地址對(duì)待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行隧道協(xié)議的包頭封裝,例如,執(zhí)行vxlan封裝、gre封裝等,在待轉(zhuǎn)發(fā)數(shù)據(jù)中增加外層包頭,該外層包頭可以是跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息,該路由信息與隧道協(xié)議相匹配,以符合隧道協(xié)議的數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則。
s207、第一網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息將封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn);
第一網(wǎng)絡(luò)節(jié)點(diǎn)通過二層網(wǎng)絡(luò)代理模塊將封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn),第二網(wǎng)絡(luò)節(jié)點(diǎn)與第二vm屬于同一個(gè)dc中,第一網(wǎng)絡(luò)節(jié)點(diǎn)和第二網(wǎng)絡(luò)節(jié)點(diǎn)之間已經(jīng)預(yù)先建立起隧道,建立該隧道可以是vxlan隧道、gre隧道等。
s208、第二網(wǎng)絡(luò)節(jié)點(diǎn)解封裝上述封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù),并將解封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二vm。
第二網(wǎng)絡(luò)節(jié)點(diǎn)解封裝收到的數(shù)據(jù),將其最外層的包頭去掉,然后根據(jù)解封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)中的目的ip地址(即第二vm的ip地址)將其發(fā)送至目的地(即第二vm),至此從第三vm至第二vm的數(shù)據(jù)傳輸即發(fā)送完畢。
本實(shí)施例,通過控制器和網(wǎng)絡(luò)節(jié)點(diǎn)中相應(yīng)的模塊對(duì)待傳輸數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)處理,實(shí)現(xiàn)不同網(wǎng)絡(luò)中的vm之間跨dc的數(shù)據(jù)傳輸,該方法對(duì)dc之間的承載網(wǎng)無要求,只需ip聯(lián)通即可,而且無需特殊硬件設(shè)備,方便實(shí)施和維護(hù),其利用sdn的特性,實(shí)現(xiàn)控制平面與數(shù)據(jù)平面分離,可以適用于虛擬網(wǎng)絡(luò)與物理網(wǎng)絡(luò)多種環(huán)境。
圖4為本發(fā)明跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法的再一個(gè)實(shí)施例的流程圖,如圖4所示,本實(shí)施例的方法可以適用于圖1所示的通信系統(tǒng),其中一個(gè)vm發(fā)出廣播或組播報(bào)文,例如第一vm發(fā)出廣播或組播報(bào)文。該方法可以包括:
s301、第一控制器接收第一vm發(fā)送的待轉(zhuǎn)發(fā)數(shù)據(jù);
第一vm發(fā)出廣播或組播報(bào)文,該待轉(zhuǎn)發(fā)數(shù)據(jù)中有可能沒有明確的目的ip地址和mac地址,第一控制器需要制定出以單播形式發(fā)送廣播或組播的轉(zhuǎn)發(fā)路徑。
s302、第一控制器根據(jù)網(wǎng)絡(luò)路由信息確定轉(zhuǎn)發(fā)路徑,轉(zhuǎn)發(fā)路徑用于指示第一網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行復(fù)制,并將復(fù)制后的待轉(zhuǎn)發(fā)數(shù)據(jù)逐一發(fā)送給至少一個(gè)第二網(wǎng)路節(jié)點(diǎn);
第一控制器通過網(wǎng)絡(luò)路由信息維護(hù)模塊預(yù)先獲取了網(wǎng)絡(luò)路由信息,該網(wǎng)絡(luò)路由信息包括至少一個(gè)dc中的vm的路由信息,該路由信息可以包括各vm的ip地址、mac地址以及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)等信息,基于網(wǎng)絡(luò)路由信息第一控制器即可掌握整個(gè)網(wǎng)絡(luò)的部署情況。第一控制器根據(jù)接收到的待轉(zhuǎn)發(fā)數(shù)據(jù)可以確定出第一vm發(fā)送的數(shù)據(jù)可能需要發(fā)送給多個(gè)dc中的vm,因此第一控制器需要指示第一網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行復(fù)制,并將復(fù)制后的數(shù)據(jù)逐一轉(zhuǎn)發(fā)給多個(gè)dc中的第二網(wǎng)絡(luò)節(jié)點(diǎn)。
s303、第一控制器將轉(zhuǎn)發(fā)路徑和待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第一網(wǎng)絡(luò)節(jié)點(diǎn);
第一網(wǎng)絡(luò)節(jié)點(diǎn)與第一vm屬于同一dc,第一控制器將轉(zhuǎn)發(fā)路徑和待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第一網(wǎng)絡(luò)節(jié)點(diǎn)。
s304、第一網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行復(fù)制;
s305、第一網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)轉(zhuǎn)發(fā)路徑和目的ip地址對(duì)復(fù)制后的待轉(zhuǎn)發(fā)數(shù)據(jù)逐一進(jìn)行隧道協(xié)議的包頭封裝;
第一網(wǎng)絡(luò)節(jié)點(diǎn)通過二層網(wǎng)絡(luò)代理模塊根據(jù)轉(zhuǎn)發(fā)路徑和第二vm的ip地址對(duì)待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行隧道協(xié)議的包頭封裝,例如,執(zhí)行vxlan封裝、gre封裝等,在待轉(zhuǎn)發(fā)數(shù)據(jù)中增加外層包頭,該外層包頭可以是跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息,該路由信息與隧道協(xié)議相匹配,以符合隧道協(xié)議的數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則。
s306、第一網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息分別將封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)逐一發(fā)送給至少一個(gè)第二網(wǎng)絡(luò)節(jié)點(diǎn);
第一網(wǎng)絡(luò)節(jié)點(diǎn)通過二層網(wǎng)絡(luò)代理模塊將封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn),第二網(wǎng)絡(luò)節(jié)點(diǎn)與第二vm屬于同一個(gè)dc中,第一網(wǎng)絡(luò)節(jié)點(diǎn)和第二網(wǎng)絡(luò)節(jié)點(diǎn)之間已經(jīng)預(yù)先建立起隧道,建立該隧道可以是vxlan隧道、gre隧道等。
s307、第二網(wǎng)絡(luò)節(jié)點(diǎn)解封裝上述封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù),并將解封裝后的 待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二vm。
多個(gè)接收到數(shù)據(jù)的第二網(wǎng)絡(luò)節(jié)點(diǎn)解封裝收到的數(shù)據(jù),將其最外層的包頭去掉,然后將解封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送至屬于同一dc的vm。
本實(shí)施例,通過控制器和網(wǎng)絡(luò)節(jié)點(diǎn)中相應(yīng)的模塊對(duì)待傳輸數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)處理,將廣播或組播報(bào)文轉(zhuǎn)換為多個(gè)單播報(bào)文進(jìn)行發(fā)送,實(shí)現(xiàn)跨dc的廣播或組播方式的數(shù)據(jù)傳輸,該方法對(duì)dc之間的承載網(wǎng)無要求,只需ip聯(lián)通即可,而且無需特殊硬件設(shè)備,方便實(shí)施和維護(hù),其利用sdn的特性,實(shí)現(xiàn)控制平面與數(shù)據(jù)平面分離,可以適用于虛擬網(wǎng)絡(luò)與物理網(wǎng)絡(luò)多種環(huán)境。
圖5為本發(fā)明跨數(shù)據(jù)中心的數(shù)據(jù)傳輸方法的第四個(gè)實(shí)施例的流程圖,如圖5所示,本實(shí)施例的方法可以適用于圖1所示的通信系統(tǒng),該方法的步驟在上述方法實(shí)施例的第一個(gè)步驟之前,主要實(shí)現(xiàn)vm請(qǐng)求獲取其它vm的mac地址。該方法可以包括:
s401、第一控制器與至少一個(gè)控制器進(jìn)行mac信息同步,獲取網(wǎng)絡(luò)路由信息,網(wǎng)絡(luò)路由信息包括至少一個(gè)控制器分別對(duì)應(yīng)的數(shù)據(jù)中心中的虛擬機(jī)的路由信息;
各控制器中可以擁有本地dc中各vm的mac地址和ip地址,控制器還可以通過網(wǎng)絡(luò)路由信息維護(hù)模塊與其他控制器的網(wǎng)絡(luò)路由信息維護(hù)模塊進(jìn)行mac信息同步,獲取其他控制器分別對(duì)應(yīng)的dc中的vm的路由信息,可以將這些路由信息存儲(chǔ)到數(shù)據(jù)庫中。
s402、第一控制器接收第一vm發(fā)送的地址請(qǐng)求,地址請(qǐng)求包括第二vm的ip地址;
某個(gè)vm,例如第一vm15希望可以獲取到第二vm16的mac地址,因此第一vm即可發(fā)出地址請(qǐng)求,該地址請(qǐng)求例如可以是arp請(qǐng)求,并在地址請(qǐng)求中攜帶第二vm的ip地址。
s403、第一控制器根據(jù)第二vm的ip地址查詢網(wǎng)絡(luò)路由信息,確定第二vm對(duì)應(yīng)的mac地址;
第一控制器根據(jù)第二vm的ip地址查詢預(yù)先獲取的網(wǎng)絡(luò)路由信息,確定第二vm的mac地址,這里如果第一vm和第二vm位于同一網(wǎng)絡(luò),那么第二vm的mac地址即為第二vm的真實(shí)mac地址,如果第一vm和第二vm沒有位于同一網(wǎng)絡(luò),那么第二vm的mac地址即為第一vm所在網(wǎng) 絡(luò)的網(wǎng)關(guān)的mac地址。
s404、第一控制器將第二vm對(duì)應(yīng)的mac地址發(fā)送給第一虛擬機(jī)。
本實(shí)施例,通過多個(gè)控制器之間的mac信息同步,可以使得各控制器獲取到真?zhèn)€網(wǎng)絡(luò)的部署情況和路由信息,實(shí)現(xiàn)vm的地址請(qǐng)求響應(yīng),其利用sdn的特性,實(shí)現(xiàn)控制平面與數(shù)據(jù)平面分離,可以適用于虛擬網(wǎng)絡(luò)與物理網(wǎng)絡(luò)多種環(huán)境。
圖6為本發(fā)明控制器的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,如圖6所示,本實(shí)施例的裝置可以包括:接收模塊11、網(wǎng)絡(luò)路由信息維護(hù)模塊12以及發(fā)送模塊13,其中,接收模塊11,用于接收第一虛擬機(jī)發(fā)送的待轉(zhuǎn)發(fā)數(shù)據(jù),所述待轉(zhuǎn)發(fā)數(shù)據(jù)包括目的網(wǎng)絡(luò)協(xié)議ip地址和媒體介入控制層mac地址;網(wǎng)絡(luò)路由信息維護(hù)模塊12,用于根據(jù)所述目的ip地址和預(yù)先獲取的網(wǎng)絡(luò)路由信息確定所述待轉(zhuǎn)發(fā)數(shù)據(jù)的轉(zhuǎn)發(fā)路徑,所述網(wǎng)絡(luò)路由信息包括至少一個(gè)數(shù)據(jù)中心中的虛擬機(jī)的路由信息;發(fā)送模塊13,用于將所述轉(zhuǎn)發(fā)路徑和所述待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第一網(wǎng)絡(luò)節(jié)點(diǎn),以使所述第一網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)所述轉(zhuǎn)發(fā)路徑將所述待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn),進(jìn)而轉(zhuǎn)發(fā)至所述目的ip地址對(duì)應(yīng)的第二虛擬機(jī)。
本實(shí)施例的裝置,可以用于執(zhí)行圖2~圖5所示所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
進(jìn)一步的,所述網(wǎng)絡(luò)路由信息維護(hù)模塊12,具體用于根據(jù)所述目的ip地址和所述網(wǎng)絡(luò)路由信息確定所述第二虛擬機(jī)與所述第一虛擬機(jī)是否位于同一網(wǎng)絡(luò);若所述第二虛擬機(jī)與所述第一虛擬機(jī)位于同一網(wǎng)絡(luò),則根據(jù)所述目的ip地址確定所述轉(zhuǎn)發(fā)路徑,所述轉(zhuǎn)發(fā)路徑用于指示所述第一網(wǎng)絡(luò)節(jié)點(diǎn)將所述待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給所述第二網(wǎng)絡(luò)節(jié)點(diǎn)。
進(jìn)一步的,所述網(wǎng)絡(luò)路由信息維護(hù)模塊12,具體用于根據(jù)所述目的ip地址和所述網(wǎng)絡(luò)路由信息確定所述第二虛擬機(jī)與所述第一虛擬機(jī)是否位于同一網(wǎng)絡(luò);若所述第二虛擬機(jī)與所述第一虛擬機(jī)沒有位于同一網(wǎng)絡(luò),則根據(jù)所述目的ip地址確定所述轉(zhuǎn)發(fā)路徑,所述轉(zhuǎn)發(fā)路徑用于指示所述第一網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行由所述第一虛擬機(jī)所在網(wǎng)絡(luò)至所述第二虛擬機(jī)所在網(wǎng)絡(luò)的網(wǎng)關(guān)處理,并將處理后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給所述第二網(wǎng)絡(luò)節(jié)點(diǎn)。
進(jìn)一步的,所述網(wǎng)絡(luò)路由信息維護(hù)模塊12,具體用于根據(jù)所述目的ip地址和所述網(wǎng)絡(luò)路由信息確定所述轉(zhuǎn)發(fā)路徑,所述轉(zhuǎn)發(fā)路徑用于指示所述第 一網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行復(fù)制,并將復(fù)制后的待轉(zhuǎn)發(fā)數(shù)據(jù)逐一發(fā)送給至少一個(gè)第二網(wǎng)路節(jié)點(diǎn)。
進(jìn)一步的,所述網(wǎng)絡(luò)路由信息維護(hù)模塊12,還用于與至少一個(gè)控制器進(jìn)行mac信息同步,獲取所述網(wǎng)絡(luò)路由信息,所述網(wǎng)絡(luò)路由信息包括所述至少一個(gè)控制器分別對(duì)應(yīng)的數(shù)據(jù)中心中的虛擬機(jī)的路由信息。
進(jìn)一步的,所述網(wǎng)絡(luò)路由信息維護(hù)模塊12,還用于接收所述第一虛擬機(jī)發(fā)送的地址請(qǐng)求,所述地址請(qǐng)求包括第二虛擬機(jī)的ip地址;根據(jù)所述第二虛擬機(jī)的ip地址查詢所述網(wǎng)絡(luò)路由信息,確定所述第二虛擬機(jī)對(duì)應(yīng)的mac地址;將所述第二虛擬機(jī)對(duì)應(yīng)的mac地址發(fā)送給所述第一虛擬機(jī)。
圖7為本發(fā)明網(wǎng)絡(luò)節(jié)點(diǎn)的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,如圖7所示,本實(shí)施例的裝置可以包括:交換機(jī)模塊21、二層網(wǎng)絡(luò)代理模塊22以及發(fā)送模塊23,其中,交換機(jī)模塊21,用于接收控制器發(fā)送的轉(zhuǎn)發(fā)路徑和第一虛擬機(jī)的待轉(zhuǎn)發(fā)數(shù)據(jù),所述待轉(zhuǎn)發(fā)數(shù)據(jù)包括目的網(wǎng)絡(luò)協(xié)議ip地址和媒體介入控制層mac地址;二層網(wǎng)絡(luò)代理模塊22,用于根據(jù)所述轉(zhuǎn)發(fā)路徑和所述目的ip地址對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行隧道協(xié)議的包頭封裝,封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)包括跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息;發(fā)送模塊23,用于根據(jù)所述跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息將所述封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給第二網(wǎng)絡(luò)節(jié)點(diǎn),以使所述第二網(wǎng)絡(luò)節(jié)點(diǎn)解封裝所述封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù),并將解封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)發(fā)送給所述目的ip地址對(duì)應(yīng)的第二虛擬機(jī)。
本實(shí)施例的裝置,可以用于執(zhí)行圖2~圖5所示所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
圖8為本發(fā)明網(wǎng)絡(luò)節(jié)點(diǎn)的另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,如圖8所示,本實(shí)施例的裝置在圖7所示裝置結(jié)構(gòu)的基礎(chǔ)上,進(jìn)一步地,還可以包括:網(wǎng)關(guān)模塊24,該網(wǎng)關(guān)模塊24用于根據(jù)所述轉(zhuǎn)發(fā)路徑和所述目的ip地址對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行由所述第一虛擬機(jī)所在網(wǎng)絡(luò)至所述第二虛擬機(jī)所在網(wǎng)絡(luò)的網(wǎng)關(guān)處理。
本實(shí)施例的裝置,可以用于執(zhí)行圖2~圖5所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
進(jìn)一步的,所述二層網(wǎng)絡(luò)代理模塊22,還用于對(duì)所述待轉(zhuǎn)發(fā)數(shù)據(jù)進(jìn)行復(fù)制;根據(jù)所述轉(zhuǎn)發(fā)路徑和所述目的ip地址對(duì)復(fù)制后的待轉(zhuǎn)發(fā)數(shù)據(jù)逐一進(jìn)行所 述隧道協(xié)議的包頭封裝;所述發(fā)送模塊23,具體用于根據(jù)所述跨數(shù)據(jù)中心的網(wǎng)絡(luò)路由信息分別將封裝后的待轉(zhuǎn)發(fā)數(shù)據(jù)逐一發(fā)送給至少一個(gè)第二網(wǎng)絡(luò)節(jié)點(diǎn)。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。