本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)方法和系統(tǒng)。
背景技術(shù):
在現(xiàn)代網(wǎng)絡(luò)信息傳遞過程中,路由器是互聯(lián)網(wǎng)絡(luò)的樞紐,是連接因特網(wǎng)中各局域網(wǎng)、廣域網(wǎng)的設(shè)備,它會根據(jù)信道的情況自動選擇和設(shè)定路由,以最佳路徑發(fā)送網(wǎng)絡(luò)信號。
傳統(tǒng)的集中式路由器在進(jìn)行轉(zhuǎn)發(fā)時,經(jīng)常會出現(xiàn)“發(fā)卡彎路”現(xiàn)象,對網(wǎng)絡(luò)信息傳遞的穩(wěn)定性造成不良影響。為解決傳統(tǒng)的集中式路由器“發(fā)卡彎路”現(xiàn)象,引入分布式虛擬路由器,即不同主機(jī)部署相同的分布式虛擬路由器,使本主機(jī)內(nèi)流量只經(jīng)過本機(jī)路由器,從而避免“發(fā)卡彎路”。
但是,在傳統(tǒng)分布式虛擬路由器的主機(jī)之間進(jìn)行網(wǎng)絡(luò)信息傳遞時,不同主機(jī)的vm(virtualmachine,虛擬機(jī))間在不同子進(jìn)行網(wǎng)跨主機(jī)通信,發(fā)送端報文只經(jīng)過主端主機(jī)dvr(distributedvirtualrouter,分布式虛擬路由器),不經(jīng)過對端主機(jī)的dvr,使報文來回路徑不一致,導(dǎo)致dvr上無法記錄整個流的過程,從而無法實現(xiàn)報文的有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而無法實現(xiàn)alg(applicationlayergateway,應(yīng)用層網(wǎng)關(guān))、acl(accesscontrollist,訪問控制列表)等操作,對網(wǎng)絡(luò)信息傳遞的安全性造成影響。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的在于提出一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)方法和系統(tǒng),旨在實現(xiàn)通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而提高網(wǎng)絡(luò)信息傳遞的安全性。
為實現(xiàn)上述目的,本發(fā)明提供一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)方法,包括:
主端主機(jī)的分布式虛擬路由器創(chuàng)建對應(yīng)的會話表并對報文進(jìn)行轉(zhuǎn)發(fā),由主端 主機(jī)的第二交換機(jī)對所述報文進(jìn)行標(biāo)記后轉(zhuǎn)發(fā)所述報文至對端主機(jī);
所述對端主機(jī)的接收路由器接收所述主端主機(jī)轉(zhuǎn)發(fā)的報文并發(fā)送至所述對端主機(jī)的第一交換機(jī),由所述對端主機(jī)的第一交換機(jī)根據(jù)所述標(biāo)記傳送所述報文至所述對端主機(jī)的分布式虛擬路由器;
所述對端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述對端主機(jī)的第一交換機(jī);
所述對端主機(jī)的第一交換機(jī)傳送所述報文至所述對端主機(jī)的虛擬機(jī);
所述對端主機(jī)將所述報文對應(yīng)的響應(yīng)報文轉(zhuǎn)發(fā)至所述主端主機(jī),所述響應(yīng)報文流經(jīng)所述對端主機(jī)的分布式虛擬路由器和所述主端主機(jī)的分布式虛擬路由器。
優(yōu)選地,所述主端主機(jī)的分布式虛擬路由器創(chuàng)建對應(yīng)的會話表并對報文進(jìn)行轉(zhuǎn)發(fā),由主端主機(jī)的第二交換機(jī)對所述報文進(jìn)行標(biāo)記后轉(zhuǎn)發(fā)所述報文至對端主機(jī)的步驟包括:
所述主端主機(jī)的虛擬機(jī)對所述報文進(jìn)行封裝,傳送至所述主端主機(jī)的第一交換機(jī),由所述主端主機(jī)的第一交換機(jī)傳送所述報文至所述主端主機(jī)的分布式虛擬路由器;
所述主端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述主端主機(jī)的第二交換機(jī);
所述主端主機(jī)的第二交換機(jī)對所述報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過所述隧道轉(zhuǎn)發(fā)至對端主機(jī)。
優(yōu)選地,所述對端主機(jī)將所述報文對應(yīng)的響應(yīng)報文轉(zhuǎn)發(fā)至所述主端主機(jī)的步驟包括:
所述對端主機(jī)的虛擬機(jī)對所述響應(yīng)報文進(jìn)行封裝,傳送至所述對端主機(jī)的第一交換機(jī),由所述對端主機(jī)的第一交換機(jī)傳送所述響應(yīng)報文至所述對端主機(jī)的分布式虛擬路由器;
所述對端主機(jī)的分布式虛擬路由器根據(jù)所述會話表,傳送所述響應(yīng)報文至所述對端主機(jī)的第二交換機(jī);
所述對端主機(jī)的第二交換機(jī)對所述響應(yīng)報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過所述隧道轉(zhuǎn)發(fā)至所述主端主機(jī);
所述主端主機(jī)的接收路由器接收所述對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文并傳送至所述主端主機(jī)的第一交換機(jī),由所述主端主機(jī)的交換機(jī)根據(jù)所述標(biāo)記傳送所述響應(yīng) 報文至所述主端主機(jī)的分布式虛擬路由器;
所述主端主機(jī)的分布式虛擬路由器根據(jù)所述會話表,傳送所述響應(yīng)報文至所述主端主機(jī)的第一交換機(jī);
所述主端主機(jī)的第一交換機(jī)傳送所述響應(yīng)報文至所述主端主機(jī)的虛擬機(jī)。
優(yōu)選地,所述對端主機(jī)的接收路由器接收所述主端主機(jī)轉(zhuǎn)發(fā)的報文并傳送至所述對端主機(jī)的第一交換機(jī),由所述對端主機(jī)的第一交換機(jī)根據(jù)所述標(biāo)記傳送所述報文至所述對端主機(jī)的分布式虛擬路由器的步驟包括:
所述對端主機(jī)的接收路由器接收所述主端主機(jī)轉(zhuǎn)發(fā)的報文,解析所述隧道封裝;
所述對端主機(jī)的接收路由器識別所述報文是否具有所述標(biāo)記;
若所述所述報文具有所述標(biāo)記,則所述對端主機(jī)的接收路由器傳送所述報文至所述對端主機(jī)的第一交換機(jī),由所述對端主機(jī)的第一交換機(jī)傳送所述報文至所述對端主機(jī)的分布式虛擬路由器;
所述主端主機(jī)的接收路由器接收所述對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文并傳送至所述主端主機(jī)的第一交換機(jī),由所述主端主機(jī)的第一交換機(jī)根據(jù)所述標(biāo)記傳送所述響應(yīng)報文至所述主端主機(jī)的分布式虛擬路由器的步驟包括:
所述主端主機(jī)的接收路由器接收所述對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文,解析所述隧道封裝;
所述主端主機(jī)的接收路由器識別所述響應(yīng)報文是否具有所述標(biāo)記;
若所述響應(yīng)報文具有所述標(biāo)記,則所述主端主機(jī)的接收路由器傳送所述響應(yīng)報文至所述主端主機(jī)的第一交換機(jī),由所述主端主機(jī)的第一交換機(jī)傳送所述響應(yīng)報文至所述主端主機(jī)的分布式虛擬路由器。
優(yōu)選地,所述主端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述主端主機(jī)的第二交換機(jī)的步驟包括:
所述主端主機(jī)的分布式虛擬路由器接收所述報文;
所述主端主機(jī)的分布式虛擬路由器檢測所述報文是否存在對應(yīng)的會話表;
若不存在,則所述主端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表;
所述主端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述主端主機(jī)的第二交換機(jī)的步驟包括:
所述對端主機(jī)的分布式虛擬路由器接收所述報文;
所述對端主機(jī)的分布式虛擬路由器檢測所述報文是否存在對應(yīng)的會話表;
若不存在,則所述對端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表。
本發(fā)明還提出一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)系統(tǒng),包括:
主端主機(jī),其中所述主端主機(jī)的分布式虛擬路由器創(chuàng)建對應(yīng)的會話表并對報文進(jìn)行轉(zhuǎn)發(fā),由主端主機(jī)的第二交換機(jī)對所述報文進(jìn)行標(biāo)記后轉(zhuǎn)發(fā)所述報文至對端主機(jī);
對端主機(jī),其中所述對端主機(jī)的接收路由器接收所述主端主機(jī)轉(zhuǎn)發(fā)的報文并發(fā)送至所述對端主機(jī)的第一交換機(jī),由所述對端主機(jī)的第一交換機(jī)根據(jù)所述標(biāo)記傳送所述報文至所述對端主機(jī)的分布式虛擬路由器;所述對端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述對端主機(jī)的第一交換機(jī);所述對端主機(jī)的第一交換機(jī)傳送所述報文至所述對端主機(jī)的虛擬機(jī);所述對端主機(jī)將所述報文對應(yīng)的響應(yīng)報文轉(zhuǎn)發(fā)至所述主端主機(jī),所述響應(yīng)報文流經(jīng)所述對端主機(jī)的分布式虛擬路由器和所述主端主機(jī)的的分布式虛擬路由器。
優(yōu)選地,所述主端主機(jī)中,所述主端主機(jī)的虛擬機(jī)對所述報文進(jìn)行封裝,傳送至所述主端主機(jī)的第一交換機(jī),由所述主端主機(jī)的第一交換機(jī)傳送所述報文至所述主端主機(jī)的分布式虛擬路由器;所述主端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述主端主機(jī)的第二交換機(jī);所述主端主機(jī)的第二交換機(jī)對所述報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過所述隧道轉(zhuǎn)發(fā)至對端主機(jī)。
優(yōu)選地,所述對端主機(jī)中,所述對端主機(jī)的虛擬機(jī)對所述響應(yīng)報文進(jìn)行封裝,傳送至所述對端主機(jī)的第一交換機(jī),由所述對端主機(jī)的第一交換機(jī)傳送所述響應(yīng)報文至所述對端主機(jī)的分布式虛擬路由器;所述對端主機(jī)的分布式虛擬路由器根據(jù)所述會話表,傳送所述響應(yīng)報文至所述對端主機(jī)的第二交換機(jī);所述對端主機(jī)的第二交換機(jī)對所述響應(yīng)報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過所述隧道轉(zhuǎn)發(fā)至所述主端主機(jī);
所述主端主機(jī)中,所述主端主機(jī)的接收路由器接收所述對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文并傳送至所述主端主機(jī)的第一交換機(jī),由所述主端主機(jī)的第一交換機(jī)根據(jù)所 述標(biāo)記傳送所述響應(yīng)報文至所述主端主機(jī)的分布式虛擬路由器;所述主端主機(jī)的分布式虛擬路由器根據(jù)所述會話表,傳送所述響應(yīng)報文至所述主端主機(jī)的第一交換機(jī);所述主端主機(jī)的第一交換機(jī)傳送所述響應(yīng)報文至所述主端主機(jī)的虛擬機(jī)。
優(yōu)選地,所述對端主機(jī)中,所述對端主機(jī)的接收路由器接收所述主端主機(jī)轉(zhuǎn)發(fā)的報文,解析所述隧道封裝;所述對端主機(jī)的接收路由器識別所述報文是否具有所述標(biāo)記;若所述所述報文具有所述標(biāo)記,則所述對端主機(jī)的接收路由器傳送所述報文至所述對端主機(jī)的第一交換機(jī),由所述對端主機(jī)的第一交換機(jī)傳送所述報文至所述對端主機(jī)的分布式虛擬路由器;
所述主端主機(jī)中,所述主端主機(jī)的接收路由器接收所述對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文,解析所述隧道封裝;所述主端主機(jī)的接收路由器識別所述響應(yīng)報文是否具有所述標(biāo)記;若所述響應(yīng)報文具有所述標(biāo)記,則所述主端主機(jī)的接收路由器傳送所述響應(yīng)報文至所述主端主機(jī)的第一交換機(jī),由所述主端主機(jī)的第一交換機(jī)傳送所述響應(yīng)報文至所述主端主機(jī)的分布式虛擬路由器。
優(yōu)選地,所述主端主機(jī)中,所述主端主機(jī)的分布式虛擬路由器接收所述報文;所述主端主機(jī)的分布式虛擬路由器檢測所述報文是否存在對應(yīng)的會話表;若不存在,則所述主端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表;
所述對端主機(jī)中,所述對端主機(jī)的分布式虛擬路由器接收所述報文;所述對端主機(jī)的分布式虛擬路由器檢測所述報文是否存在對應(yīng)的會話表;若不存在,則所述對端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表。
本發(fā)明公開了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)方法和系統(tǒng),通過主端主機(jī)的分布式虛擬路由器創(chuàng)建對應(yīng)的會話表并對報文進(jìn)行轉(zhuǎn)發(fā),由第二交換機(jī)對報文進(jìn)行標(biāo)記后轉(zhuǎn)發(fā)報文至對端主機(jī);對端主機(jī)的接收路由器接收主端主機(jī)轉(zhuǎn)發(fā)的報文并經(jīng)對端主機(jī)的第一交換機(jī)根據(jù)標(biāo)記傳送報文至對端主機(jī)的分布式虛擬路由器;對端主機(jī)的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表,并經(jīng)對端主機(jī)的第一交換機(jī)傳送報文至對端主機(jī)的虛擬機(jī);對端主機(jī)將報文對應(yīng)的響應(yīng)報文轉(zhuǎn)發(fā)至主端主機(jī),響應(yīng)報文流經(jīng)對端主機(jī)的分布式虛擬路由器和主端主機(jī)的分布式虛擬路由器,使報文的轉(zhuǎn)發(fā)過程都經(jīng)過了分布式虛擬路由器,得到了完整的流量回路。
由此,解決了現(xiàn)有技術(shù)中無法對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā)的問題。實現(xiàn)了通過分 布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而提高網(wǎng)絡(luò)信息傳遞的安全性。
附圖說明
圖1是本發(fā)明基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)方法第一實施例的流程示意圖;
圖2是本發(fā)明實施例中所述主端主機(jī)的分布式虛擬路由器對報文進(jìn)行轉(zhuǎn)發(fā),由主端主機(jī)的交換機(jī)對所述報文進(jìn)行標(biāo)記后轉(zhuǎn)發(fā)所述報文至對端主機(jī)的一種流程示意圖;
圖3是本發(fā)明實施例中所述對端主機(jī)將所述報文對應(yīng)的響應(yīng)報文轉(zhuǎn)發(fā)至所述主端主機(jī)的一種流程示意圖;
圖4是本發(fā)明實施例中所述對端主機(jī)的接收路由器接收所述主端主機(jī)轉(zhuǎn)發(fā)的報文并傳送至所述對端主機(jī)的交換機(jī),由所述對端主機(jī)的交換機(jī)根據(jù)所述標(biāo)記傳送所述報文至所述對端主機(jī)的分布式虛擬路由器的一種流程示意圖;
圖5是本發(fā)明實施例中所述主端主機(jī)的接收路由器接收所述對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文并傳送至所述主端主機(jī)的交換機(jī),由所述主端主機(jī)的交換機(jī)根據(jù)所述標(biāo)記傳送所述響應(yīng)報文至所述主端主機(jī)的分布式虛擬路由器的一種流程示意圖;
圖6是本發(fā)明實施例中所述主端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述主端主機(jī)的交換機(jī)的一種流程示意圖;
圖7是本發(fā)明實施例中所述主端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述主端主機(jī)的交換機(jī)的一種流程示意圖;
圖8是本發(fā)明基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)系統(tǒng)第一實施例的結(jié)構(gòu)示意圖;
圖9是本發(fā)明主端主機(jī)和對端主機(jī)進(jìn)行報文轉(zhuǎn)發(fā)的結(jié)構(gòu)示意圖。
本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進(jìn)一步說明。
具體實施方式
應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實施例的主要解決方案是:通過主端主機(jī)的分布式虛擬路由器對報文 進(jìn)行轉(zhuǎn)發(fā),由主端主機(jī)的交換機(jī)對報文標(biāo)記后轉(zhuǎn)發(fā)報文至對端主機(jī);對端主機(jī)的接收路由器接收主端主機(jī)轉(zhuǎn)發(fā)的報文并發(fā)送至對端主機(jī)的交換機(jī),由對端主機(jī)的交換機(jī)根據(jù)標(biāo)記傳送報文至對端主機(jī)的分布式虛擬路由器;對端主機(jī)的分布式虛擬路由器創(chuàng)建會話表,并傳送報文至對端主機(jī)的交換機(jī);對端主機(jī)的交換機(jī)傳送報文至對端主機(jī)的虛擬機(jī);對端主機(jī)將報文對應(yīng)的響應(yīng)報文轉(zhuǎn)發(fā)至主端主機(jī),流經(jīng)對端主機(jī)和主端主機(jī)的分布式虛擬路由器,由此,解決了現(xiàn)有技術(shù)中無法對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā)的問題,實現(xiàn)了通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而提高網(wǎng)絡(luò)信息傳遞的安全性。
如圖1所示,本發(fā)明第一實施例提出一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)方法,包括:
步驟s1,主端主機(jī)的分布式路由器分布式虛擬路由器創(chuàng)建對應(yīng)的會話表并對報文進(jìn)行轉(zhuǎn)發(fā),由主端主機(jī)的第二交換機(jī)對所述報文進(jìn)行標(biāo)記后轉(zhuǎn)發(fā)所述報文至對端主機(jī)。
具體地,本實施例方案主要應(yīng)用于網(wǎng)絡(luò)通信系統(tǒng)中,當(dāng)然也不限于其他能夠?qū)崿F(xiàn)信息傳遞的通信設(shè)備。本實施例以網(wǎng)絡(luò)通信系統(tǒng)進(jìn)行舉例。
其中,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的虛擬機(jī)對報文進(jìn)行封裝,傳送至主端主機(jī)的第二交換機(jī),由主端主機(jī)的第二交換機(jī)傳送報文至主端主機(jī)的分布式虛擬路由器。
其中,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)為信息的主端,可以用于將需要轉(zhuǎn)發(fā)的信息,以報文的形式轉(zhuǎn)發(fā)至對端主機(jī)。
其中,主端主機(jī)設(shè)置有虛擬機(jī)、第一交換機(jī)、第二交換機(jī)、接收路由器和分布式虛擬路由器,在具體實現(xiàn)時,主端主機(jī)可以設(shè)置有vm(virtualmachine,虛擬機(jī))、dvs1(distributedvirtualswitch,分布式虛擬交換機(jī))、dvs2、接收路由器和dvr(distributedvirtualrouter,分布式虛擬路由器)。
其中,主端主機(jī)的vm封裝報文,例如:源ip地址為10.1.1.10,源mac(mediaaccesscontrol,介質(zhì)訪問控制層)地址為主端主機(jī)的vm的網(wǎng)卡mac地址,目的地址ip為10.20.1.22,目的mac地址為對端主機(jī)dvr的mac地址;最后將上述封裝的報文經(jīng)網(wǎng)卡傳送至主端主機(jī)的dvs1。
其中,主端主機(jī)的dvs1接收到主端主機(jī)的vm傳送的報文后,對保存于 dvs1的fdb表(forwardingdatabase,mac地址轉(zhuǎn)發(fā)表)進(jìn)行查詢,若dvs接收到的上述報文為非過濾性報文,則對上述報文進(jìn)行傳送,傳送至主端主機(jī)的dvr。fdb表用于維護(hù)交換機(jī)從它的所有端口接收mac地址信息后所形成mac地址表,當(dāng)dvs1收到報文時,它將根據(jù)自己的fdb表來決定是將該報文進(jìn)行過濾或者轉(zhuǎn)發(fā),同時為防止dvr在dvs1上的fdb表中出現(xiàn)接口變化,dvr與dvs1連接時會下發(fā)靜態(tài)的fdb表。
在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的虛擬機(jī)發(fā)送報文,傳送至主端主機(jī)的第一交換機(jī),由主端主機(jī)的第一交換機(jī)傳送報文至主端主機(jī)的分布式虛擬路由器后,主端主機(jī)的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表,并傳送報文至主端主機(jī)的第二交換機(jī)。
其中,主端主機(jī)的dvr在接收到主端主機(jī)的dvs1傳送的報文后,根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對會話表進(jìn)行查詢,查詢上述報文是否存在對應(yīng)的會話表,在具體實現(xiàn)時,可以采用session表,session表用于記錄轉(zhuǎn)發(fā)信息,例如:五元組信息、nat(networkaddresstranslation,網(wǎng)絡(luò)地址轉(zhuǎn)換)信息、alg(訪問控制列表)信息等。
其中,若主端主機(jī)的dvr檢測到不存在上述報文對應(yīng)的session表,則主端主機(jī)的dvr創(chuàng)建上述報文對應(yīng)的session表,該session表保存有與上述報文對應(yīng)的五元組信息、alg信息和acl信息等,alg信息用于識別本條流應(yīng)用層協(xié)議流量,acl信息用于根據(jù)alg信息實現(xiàn)acl攔截或者放通;當(dāng)有后續(xù)報文需要進(jìn)行轉(zhuǎn)發(fā)時,可以通過直接查找對應(yīng)的session表,根據(jù)已存有的五元組信息,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)的dvs2,同時更新相關(guān)數(shù)據(jù)。
其中,若主端主機(jī)的dvr檢測到存在上述報文對應(yīng)的session表,則可以根據(jù)已存有的五元組信息,通過直接查找對應(yīng)的session表,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)的dvs2,同時更新相關(guān)數(shù)據(jù)。
在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表,并傳送報文至主端主機(jī)的第二交換機(jī)后,主端主機(jī)的第二交換機(jī)對報文進(jìn)行隧道封裝,并標(biāo)記,通過預(yù)設(shè)隧道轉(zhuǎn)發(fā)至對端主機(jī)。
其中,主端主機(jī)的dvs2接收到上述報文后,對保存于dvs2的fdb表進(jìn)行查詢,若dvs2接收到的上述報文為非過濾性報文,則對上述報文進(jìn)行隧道封裝,并在上述報文的頭部打標(biāo)記,例如,可以在上述報文報頭的字段中插入一個 或一段可識別的字符,再經(jīng)過預(yù)設(shè)的隧道轉(zhuǎn)發(fā)至對端主機(jī)中,該預(yù)設(shè)的隧道可以是vxlan隧道、gre隧道或者是其他能夠進(jìn)行報文轉(zhuǎn)發(fā)的信息轉(zhuǎn)發(fā)隧道。
步驟s2,所述對端主機(jī)的接收路由器接收所述主端主機(jī)轉(zhuǎn)發(fā)的報文并發(fā)送至所述對端主機(jī)的第一交換機(jī),由所述對端主機(jī)的第一交換機(jī)根據(jù)所述標(biāo)記傳送所述報文至所述對端主機(jī)的分布式虛擬路由器。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的分布式虛擬路由器對報文進(jìn)行轉(zhuǎn)發(fā),由主端主機(jī)的第二交換機(jī)對報文進(jìn)行標(biāo)記后轉(zhuǎn)發(fā)報文至對端主機(jī)后,網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的接收路由器接收主端主機(jī)轉(zhuǎn)發(fā)的報文并發(fā)送至對端主機(jī)的第一交換機(jī),由對端主機(jī)的第一交換機(jī)根據(jù)標(biāo)記傳送報文至對端主機(jī)的分布式虛擬路由器。
其中,對端主機(jī)設(shè)置有虛擬機(jī)、第一交換機(jī)、第二交換機(jī)、接收路由器和分布式虛擬路由器,在具體實現(xiàn)時,對端主機(jī)可以設(shè)置有vm、dvs1、dvs2、接收路由器和dvr。
其中,對端主機(jī)的接收路由器接收到主端主機(jī)的dvs2傳送的報文后,對該報文進(jìn)行隧道封裝解析,再進(jìn)行識別,若識別上述報文具有上述標(biāo)記,則傳送至對端主機(jī)的dvs1中,再由對端主機(jī)的dvs1傳送至對端主機(jī)的dvr;若識別上述報文不具有上述標(biāo)記,則不進(jìn)行傳送。
步驟s3,所述對端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述對端主機(jī)的第一交換機(jī)。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的接收路由器接收主端主機(jī)轉(zhuǎn)發(fā)的報文并發(fā)送至對端主機(jī)的第一交換機(jī),由對端主機(jī)的第一交換機(jī)根據(jù)標(biāo)記傳送報文至對端主機(jī)的分布式虛擬路由器后,對端主機(jī)的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表,并傳送報文至對端主機(jī)的第一交換機(jī)。
其中,對端主機(jī)的dvr在接收到對端主機(jī)的dvs1傳送的報文后,根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對session表進(jìn)行查詢,查詢上述報文是否存在對應(yīng)的session表。
其中,若對端主機(jī)的dvr檢測到不存在上述報文對應(yīng)的session表,則對端主機(jī)的dvr創(chuàng)建上述報文對應(yīng)的session表。
其中,若對端主機(jī)的dvr檢測到存在上述報文對應(yīng)的session表,則可以根據(jù)已存有的五元組信息,通過直接查找對應(yīng)的session表,實現(xiàn)快速轉(zhuǎn)發(fā)至 對端主機(jī)的dvs1,同時更新相關(guān)數(shù)據(jù)。
步驟s4,所述對端主機(jī)的第一交換機(jī)傳送所述報文至所述對端主機(jī)的虛擬機(jī)。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表,并傳送報文至對端主機(jī)的第一交換機(jī)后,對端主機(jī)的第一交換機(jī)傳送報文至對端主機(jī)的虛擬機(jī)。
其中,對端主機(jī)的dvs1在接收到對端主機(jī)的dvr傳送的報文后,對保存于dvs1的fdb表進(jìn)行查詢,若dvs1接收到的上述報文為非過濾性報文,則將報文傳送至對端主機(jī)的vm。
步驟s5,所述對端主機(jī)將所述報文對應(yīng)的響應(yīng)報文轉(zhuǎn)發(fā)至所述主端主機(jī),所述響應(yīng)報文流經(jīng)所述對端主機(jī)的分布式虛擬路由器和所述主端主機(jī)的分布式虛擬路由器。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的交換機(jī)傳送報文至對端主機(jī)的虛擬機(jī)后,對端主機(jī)將報文對應(yīng)的響應(yīng)報文轉(zhuǎn)發(fā)至主端主機(jī)。
其中,對端主機(jī)的vm在接收到報文后,對端主機(jī)的vm發(fā)送響應(yīng)報文,傳送至對端主機(jī)的dvs1,由對端主機(jī)的dvs1傳送響應(yīng)報文至對端主機(jī)的dvr;然后對端主機(jī)的dvr根據(jù)session表,傳送響應(yīng)報文至對端主機(jī)的dvs2;然后對端主機(jī)的dvs2對響應(yīng)報文進(jìn)行隧道封裝,并標(biāo)記,通過預(yù)設(shè)隧道轉(zhuǎn)發(fā)至主端主機(jī);主端主機(jī)中,首先主端主機(jī)的路由器接收對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文,進(jìn)行隧道解析并識別響應(yīng)報文是否具有標(biāo)記,若響應(yīng)報文具有標(biāo)記,則由主端主機(jī)的dvs2傳送響應(yīng)報文至主端主機(jī)的dvr;然后主端主機(jī)的dvr根據(jù)session表,傳送響應(yīng)報文至主端主機(jī)的dvs1;最后主端主機(jī)dvs1傳送響應(yīng)報文至主端主機(jī)的vm。
其中,如圖9所示,假設(shè)host1的vm與host2的vm進(jìn)行通信,在具體實現(xiàn)時,可以采用如下方法:
1.host1的vm封裝報文,設(shè)源ip地址為10.1.1.10,源mac地址為host1的vm網(wǎng)卡mac地址,目的ip地址為10.20.1.22,目的mac地址為host2的dvr網(wǎng)卡mac地址,經(jīng)host1的vm的網(wǎng)卡將報文傳送至host1的dvs1;
2.host1的dvs1接收到報文后,查fdb表,將報文傳送至host1的dvr;
3.host1的dvr根據(jù)五元組查session表,若報文無對應(yīng)的sesion表, 則建立對應(yīng)的session表,經(jīng)10.20.1.1/24對應(yīng)接口將報文傳送至host1的dvs2,當(dāng)有后續(xù)報文時,直接查找對應(yīng)的session表,更新相關(guān)數(shù)據(jù),實現(xiàn)快速將報文傳送至host1的dvs2;
4.host1的dvs2接收到報文后,查fdb表,在報文頭部打標(biāo)記,經(jīng)vxlan隧道(不限于vxlan隧道)將報文轉(zhuǎn)發(fā)至host2的接收路由器;
5.host2的接收路由器接收所述報文,傳送報文至host2的dvs1中,host2的接收dvs1接收到報文后,由于報文已打標(biāo)記,傳送至host2的dvr1進(jìn)行session表創(chuàng)建返回至host2的dvs1,再由host2的dvs1經(jīng)查fdb表后,將報文傳送至host2的vm;
6.host2的vm2接收到報文后,進(jìn)行響應(yīng)報文操作,封裝報文,源ip地址為10.20.1.22,源mac地址為host2的vm網(wǎng)卡mac地址,目的ip地址為10.1.1.10,目的mac地址為host1的dvr的mac地址,經(jīng)host2的vm的網(wǎng)卡將報文傳送至host2的dvs1;
7.host2的dvs1接收到報文后,查fdb表,將報文傳送至host2的dvr;
8.host2的dvr接收報文到報文后,查session表(步驟5中創(chuàng)建的),更新session表,根據(jù)session表傳送至host2的dvs2;
9.host2的dvs2接收到報文后,查fdb表,在報文頭部打標(biāo)記,經(jīng)vxlan隧道(不限于vxlan隧道)將報文轉(zhuǎn)發(fā)至host1的接收路由器;
10.host1的接收路由器接收響應(yīng)報文,并傳送至host1的dvs1,host1的dvs1接收到報文后,由于報文已打標(biāo)記,傳送至host1的dvr更新session表,session表更新完成后將報文傳送至host1的dvs1;
11.host1的dvs1接收到報文后,查fdb表,將報文傳送至vm。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)方法,通過標(biāo)記報文的方式,將報文從dvs向dvr引流,使來回轉(zhuǎn)發(fā)報文都經(jīng)過dvr,可以保證dvr上報文來回路徑一致,使dvr上有完整的來回流量,因此,可以實現(xiàn)dvr的有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而可以實現(xiàn)alg、acl等功能,即實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而提高了網(wǎng)絡(luò)信息傳遞的安全性。
進(jìn)一步的,為了更好地通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),參照圖2,為本發(fā)明具體實施例中所述主端主機(jī)的分布式虛擬路由器創(chuàng)建對應(yīng)的會話 表并對報文進(jìn)行轉(zhuǎn)發(fā),由主端主機(jī)的第二交換機(jī)對所述報文進(jìn)行標(biāo)記后轉(zhuǎn)發(fā)所述報文至對端主機(jī)的一種流程示意圖。
作為一種實施方式,基于第一實施例中的方法的實施,上述步驟s1包括:
步驟s11,所述主端主機(jī)的虛擬機(jī)對所述報文進(jìn)行封裝,傳送至所述主端主機(jī)的第一交換機(jī),由所述主端主機(jī)的第一交換機(jī)傳送所述報文至所述主端主機(jī)的分布式虛擬路由器。
具體地,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的虛擬機(jī)對報文進(jìn)行封裝,傳送至主端主機(jī)的第一交換機(jī),由主端主機(jī)的第一交換機(jī)傳送報文至主端主機(jī)的分布式虛擬路由器。
其中,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)為信息的主端,可以用于將需要轉(zhuǎn)發(fā)的信息,以報文的形式轉(zhuǎn)發(fā)至對端主機(jī)。
其中,主端主機(jī)設(shè)置有虛擬機(jī)、第一交換機(jī)、第二交換機(jī)、路由器和分布式虛擬路由器,在具體實現(xiàn)時,主端主機(jī)可以設(shè)置有vm、dvs1、dvs2、接收路由器和dvr。
其中,主端主機(jī)的vm封裝發(fā)送報文,例如:源ip地址為10.1.1.10,源mac(mediaaccesscontrol,介質(zhì)訪問控制層)地址為主端主機(jī)的vm的網(wǎng)卡mac地址,目的地址ip為10.20.1.22,目的mac地址為對端主機(jī)dvr的mac地址;最后將上述封裝的報文經(jīng)網(wǎng)卡傳送至主端主機(jī)的dvs1。
其中,主端主機(jī)的dvs1接收到主端主機(jī)的vm傳送的報文后,對保存于dvs1的fdb表進(jìn)行查詢,若dvs1接收到的上述報文為非過濾性報文,則對上述報文進(jìn)行傳送,傳送至主端主機(jī)的dvr。fdb表用于維護(hù)交換機(jī)從它的所有端口接收mac地址信息后所形成mac地址表,當(dāng)dvs1收到報文時,它將根據(jù)自己的fdb表來決定是將該報文進(jìn)行過濾或者轉(zhuǎn)發(fā),同時為防止dvr在dvs1上的fdb表中出現(xiàn)接口變化,dvr與dvs1連接時會下發(fā)靜態(tài)的fdb表。
步驟s12,所述主端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述主端主機(jī)的第二交換機(jī)。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的虛擬機(jī)對報文進(jìn)行封裝,傳送至主端主機(jī)的第一交換機(jī),由主端主機(jī)的第一交換機(jī)傳送報文至主端主機(jī)的分布式虛擬路由器后,主端主機(jī)的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表,并傳送報文至主端主機(jī)的第二交換機(jī)。
其中,主端主機(jī)的dvr在接收到主端主機(jī)的dvs1傳送的報文后,根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對會話表進(jìn)行查詢,查詢上述報文是否存在對應(yīng)的會話表,在具體實現(xiàn)時,可以采用session表,session表用于記錄轉(zhuǎn)發(fā)信息,例如:五元組信息、nat信息、alg信息等。
其中,若主端主機(jī)的dvr檢測到不存在上述報文對應(yīng)的session表,則主端主機(jī)的dvr創(chuàng)建上述報文對應(yīng)的session表,該session表保存有與上述報文對應(yīng)的五元組信息、alg信息和acl信息等,alg信息用于識別本條流應(yīng)用層協(xié)議流量,acl信息用于根據(jù)alg信息實現(xiàn)acl攔截或者放通;當(dāng)有后續(xù)報文需要進(jìn)行轉(zhuǎn)發(fā)時,可以通過直接查找對應(yīng)的session表,根據(jù)已存有的五元組信息,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)的dvs2,同時更新相關(guān)數(shù)據(jù)。
其中,若主端主機(jī)的dvr檢測到存在上述報文對應(yīng)的session表,則可以根據(jù)已存有的五元組信息,通過直接查找對應(yīng)的session表,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)的dvs2,同時更新相關(guān)數(shù)據(jù)。
步驟s13,所述主端主機(jī)的第二交換機(jī)對所述報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過所述隧道轉(zhuǎn)發(fā)至對端主機(jī)。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表,并傳送報文至主端主機(jī)的第二交換機(jī)后,主端主機(jī)的第二交換機(jī)對報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過隧道轉(zhuǎn)發(fā)至對端主機(jī)。
其中,主端主機(jī)的dvs2接收到上述報文后,對保存于dvs2的fdb表進(jìn)行查詢,若dvs2接收到的上述報文為非過濾性報文,則對上述報文進(jìn)行隧道封裝,并在上述報文的頭部打標(biāo)記,例如,可以在上述報文報頭的字段中插入一個或一段可識別的字符,再經(jīng)過預(yù)設(shè)的隧道轉(zhuǎn)發(fā)至對端主機(jī)中,該預(yù)設(shè)的隧道可以是vxlan隧道、gre隧道或者是其他能夠進(jìn)行報文轉(zhuǎn)發(fā)的信息轉(zhuǎn)發(fā)隧道。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)方法,更好地實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而更好地提高了網(wǎng)絡(luò)信息傳遞的安全性。
進(jìn)一步的,為了更好地通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),參照圖3,為本發(fā)明具體實施例中對端主機(jī)將所述報文對應(yīng)的響應(yīng)報文轉(zhuǎn)發(fā)至所述主 端主機(jī)的一種流程示意圖。
作為一種實施方式,基于第一實施例中的方法的實施,上述步驟s5包括:
步驟s51,所述對端主機(jī)的虛擬機(jī)對所述響應(yīng)報文進(jìn)行封裝,傳送至所述對端主機(jī)的第一交換機(jī),由所述對端主機(jī)的第一交換機(jī)傳送所述響應(yīng)報文至所述對端主機(jī)的分布式虛擬路由器。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的第一交換機(jī)傳送響應(yīng)報文至對端主機(jī)的虛擬機(jī)后,對端主機(jī)的虛擬機(jī)對響應(yīng)報文進(jìn)行封裝,傳送至對端主機(jī)的第一交換機(jī),由對端主機(jī)的第一交換機(jī)傳送響應(yīng)報文至對端主機(jī)的分布式虛擬路由器。
其中,對端主機(jī)設(shè)置有虛擬機(jī)、第一交換機(jī)、第二交換機(jī)、接收路由器和分布式虛擬路由器,在具體實現(xiàn)時,對端主機(jī)可以設(shè)置有vm、dvs1、dvs2、接收路由器和dvr。
其中,對端主機(jī)的vm可以首先對響應(yīng)報文進(jìn)行封裝,然后將上述封裝的響應(yīng)報文經(jīng)網(wǎng)卡傳送至對端主機(jī)的dvs1。
其中,對端主機(jī)的dvs1接收到對端主機(jī)的vm傳送的響應(yīng)報文后,對保存于dvs1的fdb表進(jìn)行查詢,若dvs1接收到的上述響應(yīng)報文為非過濾性報文,則對上述響應(yīng)報文進(jìn)行傳送,傳送至對端主機(jī)的dvr。
步驟s52,所述對端主機(jī)的分布式虛擬路由器根據(jù)所述會話表,傳送所述響應(yīng)報文至所述對端主機(jī)的第二交換機(jī)。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的虛擬機(jī)對響應(yīng)報文進(jìn)行封裝,傳送至對端主機(jī)的第一交換機(jī),由對端主機(jī)的第一交換機(jī)傳送響應(yīng)報文至對端主機(jī)的分布式虛擬路由器后,對端主機(jī)的分布式虛擬路由器根據(jù)會話表,傳送響應(yīng)報文至對端主機(jī)的第二交換機(jī)。
其中,對端主機(jī)的dvr在接收到對端主機(jī)的dvs1傳送的響應(yīng)報文后,根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對會話表進(jìn)行查詢,查詢上述響應(yīng)報文是否存在對應(yīng)的會話表,在具體實現(xiàn)時,可以采用session表,session表用于記錄轉(zhuǎn)發(fā)信息,例如:五元組信息、nat信息、alg信息等。
其中,若對端主機(jī)的dvr檢測到存在上述響應(yīng)報文對應(yīng)的session表,則對端主機(jī)的dvr直接查找對應(yīng)的session表,根據(jù)已存有的五元組信息,實現(xiàn) 快速轉(zhuǎn)發(fā)至對端主機(jī)的dvs2,同時更新相關(guān)數(shù)據(jù)。
步驟s53,所述對端主機(jī)的第二交換機(jī)對所述響應(yīng)報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過所述隧道轉(zhuǎn)發(fā)至所述主端主機(jī)。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的分布式虛擬路由器根據(jù)會話表,傳送響應(yīng)報文至對端主機(jī)的第二交換機(jī)后,對端主機(jī)的第二交換機(jī)對響應(yīng)報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過隧道轉(zhuǎn)發(fā)至主端主機(jī)。
其中,對端主機(jī)的dvs2接收到上述響應(yīng)報文后,對保存于dvs2的fdb表進(jìn)行查詢,若dvs2接收到的上述響應(yīng)報文為非過濾性報文,則對上述報文進(jìn)行隧道封裝,并在上述響應(yīng)報文的頭部打標(biāo)記,例如,可以在上述響應(yīng)報文報頭的字段中插入一個或一段可識別的字符,再經(jīng)過預(yù)設(shè)的隧道轉(zhuǎn)發(fā)至對端主機(jī)中,該預(yù)設(shè)的隧道可以是vxlan隧道、gre隧道或者是其他能夠進(jìn)行報文轉(zhuǎn)發(fā)的信息轉(zhuǎn)發(fā)隧道。
步驟s54,所述主端主機(jī)的接收路由器接收所述對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文并傳送至所述主端主機(jī)的第一交換機(jī),由所述主端主機(jī)的第一交換機(jī)根據(jù)所述標(biāo)記傳送所述響應(yīng)報文至所述主端主機(jī)的分布式虛擬路由器。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的交換機(jī)對響應(yīng)報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過隧道轉(zhuǎn)發(fā)至主端主機(jī)后,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的接收路由器接收對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文并傳送至主端主機(jī)的第一交換機(jī),由主端主機(jī)的第一交換機(jī)根據(jù)標(biāo)記傳送響應(yīng)報文至主端主機(jī)的分布式虛擬路由器。
其中,主端主機(jī)設(shè)置有虛擬機(jī)、第一交換機(jī)、第二交換機(jī)、接收路由器和分布式虛擬路由器,在具體實現(xiàn)時,主端主機(jī)可以設(shè)置有vm、dvs1、dvs2、接收路由器和dvr。
其中,主端主機(jī)的路由器接收到對端主機(jī)的dvs2傳送的響應(yīng)報文后,先對該響應(yīng)報文進(jìn)行隧道封裝解析,再對該響應(yīng)報文進(jìn)行識別,若識別上述響應(yīng)報文具有上述標(biāo)記,則傳送至主端主機(jī)的dvs1,由主端主機(jī)的dvs1傳送至主端主機(jī)的dvr中;若識別上述響應(yīng)報文不具有上述標(biāo)記,則不進(jìn)行傳送。
步驟s55,所述主端主機(jī)的分布式虛擬路由器根據(jù)所述會話表,傳送所述響應(yīng)報文至所述主端主機(jī)的第一交換機(jī)。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的接收路由器接收對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文并傳送至主端主機(jī)的第一交換機(jī),由主端主機(jī)的第一交換機(jī)根據(jù)標(biāo)記傳送 響應(yīng)報文至主端主機(jī)的分布式虛擬路由器后,主端主機(jī)的分布式虛擬路由器根據(jù)會話表,傳送響應(yīng)報文至主端主機(jī)的第一交換機(jī)。
其中,主端主機(jī)的dvr在接收到主端主機(jī)的dvs1傳送的響應(yīng)報文后,根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對session表進(jìn)行查詢,查詢上述響應(yīng)報文是否存在對應(yīng)的session表。
其中,若對端主機(jī)的dvr檢測到不存在上述響應(yīng)報文對應(yīng)的session表,則主端主機(jī)控制主端主機(jī)的dvr直接查找對應(yīng)的session表,根據(jù)已存有的五元組信息,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)的dvs1,同時更新相關(guān)數(shù)據(jù)。
步驟s56,所述主端主機(jī)的第一交換機(jī)傳送所述響應(yīng)報文至所述主端主機(jī)的虛擬機(jī)。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的分布式虛擬路由器根據(jù)會話表,傳送響應(yīng)報文至主端主機(jī)的第一交換機(jī)后,主端主機(jī)的第一交換機(jī)傳送響應(yīng)報文至主端主機(jī)的虛擬機(jī)。
其中,主端主機(jī)的dvs1在接收到主端主機(jī)的dvr傳送的響應(yīng)報文后,對保存于dvs1的fdb表進(jìn)行查詢,若dvs1接收到的上述響應(yīng)報文為非過濾性報文,則將響應(yīng)報文傳送至主端主機(jī)的vm。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)方法,更好地實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而更好地提高了網(wǎng)絡(luò)信息傳遞的安全性。
進(jìn)一步的,為了更好地通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),參照圖4,為本發(fā)明實施例中對端主機(jī)的接收路由器接收所述主端主機(jī)轉(zhuǎn)發(fā)的報文并傳送至所述對端主機(jī)的第一交換機(jī),由所述對端主機(jī)的第一交換機(jī)根據(jù)所述標(biāo)記傳送所述報文至所述對端主機(jī)的分布式虛擬路由器的一種流程示意圖。
作為一種實施方式,基于第一實施例中的方法的實施,上述步驟s2包括:
步驟s21,所述對端主機(jī)的接收路由器接收所述主端主機(jī)轉(zhuǎn)發(fā)的報文,解析所述隧道封裝。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的第二交換機(jī)對報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過隧道轉(zhuǎn)發(fā)至對端主機(jī)后,網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的接收路由器接收主端主機(jī)轉(zhuǎn)發(fā)的報文,解析隧道封裝。
步驟s22,所述對端主機(jī)的接收路由器識別所述報文是否具有所述標(biāo)記。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的接收路由器接收主端主機(jī)轉(zhuǎn)發(fā)的報文,解析隧道封裝后,對端主機(jī)的接收路由器識別報文是否具有標(biāo)記。
其中,對端主機(jī)的路由器接收到主端主機(jī)的dvs2傳送的報文后,對該報文進(jìn)行識別,例如:對報文報頭的字段與預(yù)設(shè)的字段進(jìn)行匹配,若成功匹配,則認(rèn)為報文具有標(biāo)記,否則,則認(rèn)為報文不具有標(biāo)記。
步驟s23,若所述所述報文具有所述標(biāo)記,則所述對端主機(jī)的接收路由器傳送所述報文至所述對端主機(jī)的第一交換機(jī),由所述對端主機(jī)的第一交換機(jī)傳送所述報文至所述對端主機(jī)的分布式虛擬路由器。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)識別到報文具有標(biāo)記后,對端主機(jī)傳送報文至對端主機(jī)的第一交換機(jī),由對端主機(jī)的第一交換機(jī)傳送報文至對端主機(jī)的分布式虛擬路由器。
其中,對端主機(jī)的路由器接收到主端主機(jī)的dvs2傳送的報文后,對該報文進(jìn)行識別,若識別上述報文具有上述標(biāo)記,則傳送至對端主機(jī)的dvs1,由對端主機(jī)的dvs1傳送至對端主機(jī)對端主機(jī)的dvr中;若識別上述報文不具有上述標(biāo)記,則不進(jìn)行傳送。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)方法,更好地實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而更好地提高了網(wǎng)絡(luò)信息傳遞的安全性。
進(jìn)一步的,為了更好地通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),參照圖5,為本發(fā)明實施例中主端主機(jī)的接收路由器接收所述對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文并傳送至所述主端主機(jī)的第一交換機(jī),由所述主端主機(jī)的第一交換機(jī)根據(jù)所述標(biāo)記傳送所述響應(yīng)報文至所述主端主機(jī)的分布式虛擬路由器的一種流程示意圖。
作為一種實施方式,基于第一實施例中的方法的實施,上述步驟s54包括:
步驟s541,所述主端主機(jī)的接收路由器接收所述對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文,解析所述隧道封裝。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的第二交換機(jī)對響應(yīng)報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過隧道轉(zhuǎn)發(fā)至主端主機(jī)后,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的接收路由器接收對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文,解析隧道封裝。
步驟s542,所述主端主機(jī)的接收路由器識別所述響應(yīng)報文是否具有所述標(biāo)記。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的接收路由器接收對端主機(jī)轉(zhuǎn)發(fā)的響應(yīng)報文,解析隧道封裝后,主端主機(jī)的接收路由器識別響應(yīng)報文是否具有標(biāo)記。
其中,主端主機(jī)的路由器接收到對端主機(jī)的dvs2傳送的響應(yīng)報文后,對該響應(yīng)報文進(jìn)行識別,例如:對報文報頭的字段與預(yù)設(shè)的字段進(jìn)行匹配,若成功匹配,則認(rèn)為報文具有標(biāo)記,否則,則認(rèn)為報文不具有標(biāo)記。
步驟s543,若所述響應(yīng)報文具有所述標(biāo)記,則所述主端主機(jī)的接收路由器傳送所述響應(yīng)報文至所述主端主機(jī)的第一交換機(jī),由所述主端主機(jī)的第一交換機(jī)傳送所述響應(yīng)報文至所述主端主機(jī)的分布式虛擬路由器。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)識別到響應(yīng)報文具有標(biāo)記后,主端主機(jī)傳送響應(yīng)報文至主端主機(jī)的第一交換機(jī),由主端主機(jī)的第一交換機(jī)傳送響應(yīng)報文至主端主機(jī)的分布式虛擬路由器。
其中,主端主機(jī)的路由器接收到對端主機(jī)的dvs2傳送的響應(yīng)報文后,對該響應(yīng)報文進(jìn)行識別,若識別上述響應(yīng)報文具有上述標(biāo)記,則傳送至主端主機(jī)的dvs1,由主端主機(jī)的dvs1傳送至主端主機(jī)的dvr中;若識別上述響應(yīng)報文不具有上述標(biāo)記,則不進(jìn)行傳送。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)方法,更好地實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而更好地提高了網(wǎng)絡(luò)信息傳遞的安全性。
進(jìn)一步的,為了更好地通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),參照圖6,為本發(fā)明實施例中主端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述主端主機(jī)的第二交換機(jī)的一種流程示意圖。
作為一種實施方式,上述步驟s12包括:
步驟s121,所述主端主機(jī)的分布式虛擬路由器接收所述報文。
具體地,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的分布式虛擬路由器接收報文。
步驟s122,所述主端主機(jī)的分布式虛擬路由器檢測所述報文是否存在對應(yīng)的會話表。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的分布式虛擬路由器接收報文后,主 端主機(jī)的分布式虛擬路由器檢測報文是否存在對應(yīng)的會話表。
其中,主端主機(jī)的dvr根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對session表進(jìn)行查詢,查詢上述報文是否存在對應(yīng)的session表,session表用于記錄轉(zhuǎn)發(fā)信息,例如:五元組信息、nat信息、alg信息等。
步驟s123,若不存在,則所述主端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表。
具體地,若網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)的分布式虛擬路由器檢測到所述報文不存在,則主端主機(jī)的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表。
其中,主端主機(jī)控制主端主機(jī)的dvr創(chuàng)建上述報文對應(yīng)的session表,該session表保存有五元組信息、alg信息和acl信息等,其中,alg信息用于識別本條流應(yīng)用層協(xié)議流量,acl信息用于根據(jù)alg信息實現(xiàn)acl攔截或者放通;當(dāng)有后續(xù)報文需要進(jìn)行轉(zhuǎn)發(fā)時,可以根據(jù)已存有的五元組信息,通過直接查找對應(yīng)的session表,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)的dvs2,同時更新相關(guān)數(shù)據(jù)。
其中,若主端主機(jī)的dvr檢測到所述報文存在,則可以根據(jù)已存有的五元組信息,通過直接查找對應(yīng)的session表,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)的dvs2,同時更新相關(guān)數(shù)據(jù)。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)方法,更好地實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而更好地提高了網(wǎng)絡(luò)信息傳遞的安全性。
進(jìn)一步的,為了更好地通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),參照圖7,為本發(fā)明實施例中主端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述主端主機(jī)的第二交換機(jī)的一種流程示意圖。
作為一種實施方式,上述步驟s3包括:
步驟s31,所述對端主機(jī)的分布式虛擬路由器接收所述報文。
具體地,網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的分布式虛擬路由器接收報文。
步驟s32,所述對端主機(jī)的分布式虛擬路由器檢測所述報文是否存在對應(yīng)的會話表。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的分布式虛擬路由器接收報文后,對 端主機(jī)的分布式虛擬路由器檢測報文是否存在對應(yīng)的會話表。
其中,對端主機(jī)的dvr根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對session表進(jìn)行查詢,查詢上述報文是否存在對應(yīng)的session表,session表用于記錄轉(zhuǎn)發(fā)信息,例如:五元組信息、nat信息、alg信息等。
步驟s33,若不存在,則所述對端主機(jī)的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表。
具體地,若網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)的分布式虛擬路由器檢測到所述報文不存在,則對端主機(jī)的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表。
其中,對端主機(jī)控制對端主機(jī)的dvr創(chuàng)建上述報文對應(yīng)的session表,該session表保存有五元組信息、alg信息和acl信息等,其中,alg信息用于識別本條流應(yīng)用層協(xié)議流量,acl信息用于根據(jù)alg信息實現(xiàn)acl攔截或者放通;當(dāng)有后續(xù)報文需要進(jìn)行轉(zhuǎn)發(fā)時,可以根據(jù)已存有的五元組信息,通過直接查找對應(yīng)的session表,更新相關(guān)數(shù)據(jù),從而實現(xiàn)快速轉(zhuǎn)發(fā)至對端主機(jī)的dvs2。
其中,若對端主機(jī)的dvr檢測到所述報文存在,則可以根據(jù)已存有的五元組信息,通過直接查找對應(yīng)的session表,實現(xiàn)快速轉(zhuǎn)發(fā)至對端主機(jī)的dvs2,同時更新相關(guān)數(shù)據(jù)。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)方法,更好地實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而更好地提高了網(wǎng)絡(luò)信息傳遞的安全性。
基于上述實施例中方法的實施,本發(fā)明還提供了對應(yīng)的系統(tǒng)實施例。
如圖8所示,本發(fā)明第一實施例提出一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)系統(tǒng),包括:主端主機(jī)a和對端主機(jī)b。
其中,上述主端主機(jī)a的特征為:主端主機(jī)a的分布式虛擬路由器創(chuàng)建對應(yīng)的會話表并對報文進(jìn)行轉(zhuǎn)發(fā),由主端主機(jī)a的第二交換機(jī)對所述報文進(jìn)行標(biāo)記后轉(zhuǎn)發(fā)所述報文至對端主機(jī)b;
其中,上述對端主機(jī)b的特征為:對端主機(jī)b的接收路由器接收所述主端主機(jī)a轉(zhuǎn)發(fā)的報文并發(fā)送至所述對端主機(jī)b的第一交換機(jī),由所述對端主機(jī)b的第一交換機(jī)根據(jù)所述標(biāo)記傳送所述報文至所述對端主機(jī)b的分布式虛擬路由 器;所述對端主機(jī)b的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述對端主機(jī)b的第一交換機(jī);所述對端主機(jī)b的第一交換機(jī)傳送所述報文至所述對端主機(jī)b的虛擬機(jī);所述對端主機(jī)b將所述報文對應(yīng)的響應(yīng)報文轉(zhuǎn)發(fā)至所述主端主機(jī)a,所述響應(yīng)報文流經(jīng)所述對端主機(jī)b的分布式虛擬路由器和所述主端主機(jī)a的的分布式虛擬路由器。
具體地,本實施例方案主要應(yīng)用于網(wǎng)絡(luò)通信系統(tǒng)中,當(dāng)然也不限于其他能夠?qū)崿F(xiàn)信息傳遞的通信設(shè)備。本實施例以網(wǎng)絡(luò)通信系統(tǒng)進(jìn)行舉例。
其中,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的虛擬機(jī)對報文進(jìn)行封裝,傳送至主端主機(jī)a的第二交換機(jī),由主端主機(jī)a的第二交換機(jī)傳送報文至主端主機(jī)a的分布式虛擬路由器。
其中,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a為信息的主端,可以用于將需要轉(zhuǎn)發(fā)的信息,以報文的形式轉(zhuǎn)發(fā)至對端主機(jī)b。
其中,主端主機(jī)a設(shè)置有虛擬機(jī)、第一交換機(jī)、第二交換機(jī)、接收路由器和分布式虛擬路由器,在具體實現(xiàn)時,主端主機(jī)a可以設(shè)置有vm(virtualmachine,虛擬機(jī))、dvs1(distributedvirtualswitch,分布式虛擬交換機(jī))、dvs2、接收路由器和dvr(distributedvirtualrouter,分布式虛擬路由器)。
其中,主端主機(jī)a的vm封裝報文,例如:源ip地址為10.1.1.10,源mac(mediaaccesscontrol,介質(zhì)訪問控制層)地址為主端主機(jī)a的vm的網(wǎng)卡mac地址,目的地址ip為10.20.1.22,目的mac地址為對端主機(jī)bdvr的mac地址;最后將上述封裝的報文經(jīng)網(wǎng)卡傳送至主端主機(jī)a的dvs1。
其中,主端主機(jī)a的dvs1接收到主端主機(jī)a的vm傳送的報文后,對保存于dvs1的fdb表(forwardingdatabase,mac地址轉(zhuǎn)發(fā)表)進(jìn)行查詢,若dvs接收到的上述報文為非過濾性報文,則對上述報文進(jìn)行傳送,傳送至主端主機(jī)a的dvr。fdb表用于維護(hù)交換機(jī)從它的所有端口接收mac地址信息后所形成mac地址表,當(dāng)dvs1收到報文時,它將根據(jù)自己的fdb表來決定是將該報文進(jìn)行過濾或者轉(zhuǎn)發(fā),同時為防止dvr在dvs1上的fdb表中出現(xiàn)接口變化,dvr與dvs1連接時會下發(fā)靜態(tài)的fdb表。
在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的虛擬機(jī)發(fā)送報文,傳送至主端主機(jī)a的第一交換機(jī),由主端主機(jī)a的第一交換機(jī)傳送報文至主端主機(jī)a的分布式虛擬路由器后,主端主機(jī)a的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表,并傳送報文 至主端主機(jī)a的第二交換機(jī)。
其中,主端主機(jī)a的dvr在接收到主端主機(jī)a的dvs1傳送的報文后,根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對會話表進(jìn)行查詢,查詢上述報文是否存在對應(yīng)的會話表,在具體實現(xiàn)時,可以采用session表,session表用于記錄轉(zhuǎn)發(fā)信息,例如:五元組信息、nat(networkaddresstranslation,網(wǎng)絡(luò)地址轉(zhuǎn)換)信息、alg(訪問控制列表)信息等。
其中,若主端主機(jī)a的dvr檢測到不存在上述報文對應(yīng)的session表,則主端主機(jī)a的dvr創(chuàng)建上述報文對應(yīng)的session表,該session表保存有與上述報文對應(yīng)的五元組信息、alg信息和acl信息等,alg信息用于識別本條流應(yīng)用層協(xié)議流量,acl信息用于根據(jù)alg信息實現(xiàn)acl攔截或者放通;當(dāng)有后續(xù)報文需要進(jìn)行轉(zhuǎn)發(fā)時,可以通過直接查找對應(yīng)的session表,根據(jù)已存有的五元組信息,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)a的dvs2,同時更新相關(guān)數(shù)據(jù)。
其中,若主端主機(jī)a的dvr檢測到存在上述報文對應(yīng)的session表,則可以根據(jù)已存有的五元組信息,通過直接查找對應(yīng)的session表,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)a的dvs2,同時更新相關(guān)數(shù)據(jù)。
在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表,并傳送報文至主端主機(jī)a的第二交換機(jī)后,主端主機(jī)a的第二交換機(jī)對報文進(jìn)行隧道封裝,并標(biāo)記,通過預(yù)設(shè)隧道轉(zhuǎn)發(fā)至對端主機(jī)b。
其中,主端主機(jī)a的dvs2接收到上述報文后,對保存于dvs2的fdb表進(jìn)行查詢,若dvs2接收到的上述報文為非過濾性報文,則對上述報文進(jìn)行隧道封裝,并在上述報文的頭部打標(biāo)記,例如,可以在上述報文報頭的字段中插入一個或一段可識別的字符,再經(jīng)過預(yù)設(shè)的隧道轉(zhuǎn)發(fā)至對端主機(jī)b中,該預(yù)設(shè)的隧道可以是vxlan隧道、gre隧道或者是其他能夠進(jìn)行報文轉(zhuǎn)發(fā)的信息轉(zhuǎn)發(fā)隧道。
在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的分布式虛擬路由器對報文進(jìn)行轉(zhuǎn)發(fā),由主端主機(jī)a的第二交換機(jī)對報文進(jìn)行標(biāo)記后轉(zhuǎn)發(fā)報文至對端主機(jī)b后,網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的接收路由器接收主端主機(jī)a轉(zhuǎn)發(fā)的報文并發(fā)送至對端主機(jī)b的第一交換機(jī),由對端主機(jī)b的第一交換機(jī)根據(jù)標(biāo)記傳送報文至對端主機(jī)b的分布式虛擬路由器。
其中,對端主機(jī)b設(shè)置有虛擬機(jī)、第一交換機(jī)、第二交換機(jī)、接收路由器和分布式虛擬路由器,在具體實現(xiàn)時,對端主機(jī)b可以設(shè)置有vm、dvs1、dvs2、 接收路由器和dvr。
其中,對端主機(jī)b的接收路由器接收到主端主機(jī)a的dvs2傳送的報文后,對該報文進(jìn)行隧道封裝解析,再進(jìn)行識別,若識別上述報文具有上述標(biāo)記,則傳送至對端主機(jī)b的dvs1中,再由對端主機(jī)b的dvs1傳送至對端主機(jī)b的dvr;若識別上述報文不具有上述標(biāo)記,則不進(jìn)行傳送。
在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的接收路由器接收主端主機(jī)a轉(zhuǎn)發(fā)的報文并發(fā)送至對端主機(jī)b的第一交換機(jī),由對端主機(jī)b的第一交換機(jī)根據(jù)標(biāo)記傳送報文至對端主機(jī)b的分布式虛擬路由器后,對端主機(jī)b的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表,并傳送報文至對端主機(jī)b的第一交換機(jī)。
其中,對端主機(jī)b的dvr在接收到對端主機(jī)b的dvs1傳送的報文后,根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對session表進(jìn)行查詢,查詢上述報文是否存在對應(yīng)的session表。
其中,若對端主機(jī)b的dvr檢測到不存在上述報文對應(yīng)的session表,則對端主機(jī)b的dvr創(chuàng)建上述報文對應(yīng)的session表。
其中,若對端主機(jī)b的dvr檢測到存在上述報文對應(yīng)的session表,則可以根據(jù)已存有的五元組信息,通過直接查找對應(yīng)的session表,實現(xiàn)快速轉(zhuǎn)發(fā)至對端主機(jī)b的dvs1,同時更新相關(guān)數(shù)據(jù)。
在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表,并傳送報文至對端主機(jī)b的第一交換機(jī)后,對端主機(jī)b的第一交換機(jī)傳送報文至對端主機(jī)b的虛擬機(jī)。
其中,對端主機(jī)b的dvs1在接收到對端主機(jī)b的dvr傳送的報文后,對保存于dvs1的fdb表進(jìn)行查詢,若dvs1接收到的上述報文為非過濾性報文,則將報文傳送至對端主機(jī)b的vm。
在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的交換機(jī)傳送報文至對端主機(jī)b的虛擬機(jī)后,對端主機(jī)b將報文對應(yīng)的響應(yīng)報文轉(zhuǎn)發(fā)至主端主機(jī)a。
其中,對端主機(jī)b的vm在接收到報文后,對端主機(jī)b的vm發(fā)送響應(yīng)報文,傳送至對端主機(jī)b的dvs1,由對端主機(jī)b的dvs1傳送響應(yīng)報文至對端主機(jī)b的dvr;然后對端主機(jī)b的dvr根據(jù)session表,傳送響應(yīng)報文至對端主機(jī)b的dvs2;然后對端主機(jī)b的dvs2對響應(yīng)報文進(jìn)行隧道封裝,并標(biāo)記,通過預(yù)設(shè)隧道轉(zhuǎn)發(fā)至主端主機(jī)a;主端主機(jī)a中,首先主端主機(jī)a的路由器接 收對端主機(jī)b轉(zhuǎn)發(fā)的響應(yīng)報文,進(jìn)行隧道解析并識別響應(yīng)報文是否具有標(biāo)記,若響應(yīng)報文具有標(biāo)記,則由主端主機(jī)a的dvs2傳送響應(yīng)報文至主端主機(jī)a的dvr;然后主端主機(jī)a的dvr根據(jù)session表,傳送響應(yīng)報文至主端主機(jī)a的dvs1;最后主端主機(jī)advs1傳送響應(yīng)報文至主端主機(jī)a的vm。
其中,如圖9所示,假設(shè)host1的vm與host2的vm進(jìn)行通信,在具體實現(xiàn)時,可以采用如下方法:
1.host1的vm封裝報文,設(shè)源ip地址為10.1.1.10,源mac地址為host1的vm網(wǎng)卡mac地址,目的ip地址為10.20.1.22,目的mac地址為host2的dvr網(wǎng)卡mac地址,經(jīng)host1的vm的網(wǎng)卡將報文傳送至host1的dvs1;
2.host1的dvs1接收到報文后,查fdb表,將報文傳送至host1的dvr;
3.host1的dvr根據(jù)五元組查session表,若報文無對應(yīng)的sesion表,則建立對應(yīng)的session表,經(jīng)10.20.1.1/24對應(yīng)接口將報文傳送至host1的dvs2,當(dāng)有后續(xù)報文時,直接查找對應(yīng)的session表,更新相關(guān)數(shù)據(jù),實現(xiàn)快速將報文傳送至host1的dvs2;
4.host1的dvs2接收到報文后,查fdb表,在報文頭部打標(biāo)記,經(jīng)vxlan隧道(不限于vxlan隧道)將報文轉(zhuǎn)發(fā)至host2的接收路由器;
5.host2的接收路由器接收所述報文,傳送報文至host2的dvs1中,host2的接收dvs1接收到報文后,由于報文已打標(biāo)記,傳送至host2的dvr1進(jìn)行session表創(chuàng)建返回至host2的dvs1,再由host2的dvs1經(jīng)查fdb表后,將報文傳送至host2的vm;
6.host2的vm2接收到報文后,進(jìn)行響應(yīng)報文操作,封裝報文,源ip地址為10.20.1.22,源mac地址為host2的vm網(wǎng)卡mac地址,目的ip地址為10.1.1.10,目的mac地址為host1的dvr的mac地址,經(jīng)host2的vm的網(wǎng)卡將報文傳送至host2的dvs1;
7.host2的dvs1接收到報文后,查fdb表,將報文傳送至host2的dvr;
8.host2的dvr接收報文到報文后,查session表(步驟5中創(chuàng)建的),更新session表,根據(jù)session表傳送至host2的dvs2;
9.host2的dvs2接收到報文后,查fdb表,在報文頭部打標(biāo)記,經(jīng)vxlan隧道(不限于vxlan隧道)將報文轉(zhuǎn)發(fā)至host1的接收路由器;
10.host1的接收路由器接收響應(yīng)報文,并傳送至host1的dvs1,host1 的dvs1接收到報文后,由于報文已打標(biāo)記,傳送至host1的dvr更新session表,session表更新完成后將報文傳送至host1的dvs1;
11.host1的dvs1接收到報文后,查fdb表,將報文傳送至vm。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)系統(tǒng),通過標(biāo)記報文的方式,將報文從dvs向dvr引流,使來回轉(zhuǎn)發(fā)報文都經(jīng)過dvr,可以保證dvr上報文來回路徑一致,使dvr上有完整的來回流量,因此,可以實現(xiàn)dvr的有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而可以實現(xiàn)alg、acl等功能,即實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而提高了網(wǎng)絡(luò)信息傳遞的安全性。
進(jìn)一步的,為了更好地通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),上述述主端主機(jī)a還包括以下特征,所述主端主機(jī)a的虛擬機(jī)對所述報文進(jìn)行封裝,傳送至所述主端主機(jī)a的第一交換機(jī),由所述主端主機(jī)a的第一交換機(jī)傳送所述報文至所述主端主機(jī)a的分布式虛擬路由器;所述主端主機(jī)a的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表,并傳送所述報文至所述主端主機(jī)a的第二交換機(jī);所述主端主機(jī)a的第二交換機(jī)對所述報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過所述隧道轉(zhuǎn)發(fā)至對端主機(jī)b。
具體地,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的虛擬機(jī)對報文進(jìn)行封裝,傳送至主端主機(jī)a的第一交換機(jī),由主端主機(jī)a的第一交換機(jī)傳送報文至主端主機(jī)a的分布式虛擬路由器。
其中,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a為信息的主端,可以用于將需要轉(zhuǎn)發(fā)的信息,以報文的形式轉(zhuǎn)發(fā)至對端主機(jī)b。
其中,主端主機(jī)a設(shè)置有虛擬機(jī)、第一交換機(jī)、第二交換機(jī)、路由器和分布式虛擬路由器,在具體實現(xiàn)時,主端主機(jī)a可以設(shè)置有vm、dvs1、dvs2、接收路由器和dvr。
其中,主端主機(jī)a的vm封裝發(fā)送報文,例如:源ip地址為10.1.1.10,源mac(mediaaccesscontrol,介質(zhì)訪問控制層)地址為主端主機(jī)a的vm的網(wǎng)卡mac地址,目的地址ip為10.20.1.22,目的mac地址為對端主機(jī)bdvr的mac地址;最后將上述封裝的報文經(jīng)網(wǎng)卡傳送至主端主機(jī)a的dvs1。
其中,主端主機(jī)a的dvs1接收到主端主機(jī)a的vm傳送的報文后,對保存于dvs1的fdb表進(jìn)行查詢,若dvs1接收到的上述報文為非過濾性報文, 則對上述報文進(jìn)行傳送,傳送至主端主機(jī)a的dvr。fdb表用于維護(hù)交換機(jī)從它的所有端口接收mac地址信息后所形成mac地址表,當(dāng)dvs1收到報文時,它將根據(jù)自己的fdb表來決定是將該報文進(jìn)行過濾或者轉(zhuǎn)發(fā),同時為防止dvr在dvs1上的fdb表中出現(xiàn)接口變化,dvr與dvs1連接時會下發(fā)靜態(tài)的fdb表。
在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的虛擬機(jī)對報文進(jìn)行封裝,傳送至主端主機(jī)a的第一交換機(jī),由主端主機(jī)a的第一交換機(jī)傳送報文至主端主機(jī)a的分布式虛擬路由器后,主端主機(jī)a的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表,并傳送報文至主端主機(jī)a的第二交換機(jī)。
其中,主端主機(jī)a的dvr在接收到主端主機(jī)a的dvs1傳送的報文后,根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對會話表進(jìn)行查詢,查詢上述報文是否存在對應(yīng)的會話表,在具體實現(xiàn)時,可以采用session表,session表用于記錄轉(zhuǎn)發(fā)信息,例如:五元組信息、nat信息、alg信息等。
其中,若主端主機(jī)a的dvr檢測到不存在上述報文對應(yīng)的session表,則主端主機(jī)a的dvr創(chuàng)建上述報文對應(yīng)的session表,該session表保存有與上述報文對應(yīng)的五元組信息、alg信息和acl信息等,alg信息用于識別本條流應(yīng)用層協(xié)議流量,acl信息用于根據(jù)alg信息實現(xiàn)acl攔截或者放通;當(dāng)有后續(xù)報文需要進(jìn)行轉(zhuǎn)發(fā)時,可以通過直接查找對應(yīng)的session表,根據(jù)已存有的五元組信息,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)a的dvs2,同時更新相關(guān)數(shù)據(jù)。
其中,若主端主機(jī)a的dvr檢測到存在上述報文對應(yīng)的session表,則可以根據(jù)已存有的五元組信息,通過直接查找對應(yīng)的session表,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)a的dvs2,同時更新相關(guān)數(shù)據(jù)。
在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表,并傳送報文至主端主機(jī)a的第二交換機(jī)后,主端主機(jī)a的第二交換機(jī)對報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過隧道轉(zhuǎn)發(fā)至對端主機(jī)b。
其中,主端主機(jī)a的dvs2接收到上述報文后,對保存于dvs2的fdb表進(jìn)行查詢,若dvs2接收到的上述報文為非過濾性報文,則對上述報文進(jìn)行隧道封裝,并在上述報文的頭部打標(biāo)記,例如,可以在上述報文報頭的字段中插入一個或一段可識別的字符,再經(jīng)過預(yù)設(shè)的隧道轉(zhuǎn)發(fā)至對端主機(jī)b中,該預(yù)設(shè)的隧道 可以是vxlan隧道、gre隧道或者是其他能夠進(jìn)行報文轉(zhuǎn)發(fā)的信息轉(zhuǎn)發(fā)隧道。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)系統(tǒng),更好地實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而更好地提高了網(wǎng)絡(luò)信息傳遞的安全性。
進(jìn)一步的,為了更好地通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),上述對端主機(jī)b還包括以下特征:所述對端主機(jī)b的虛擬機(jī)對所述響應(yīng)報文進(jìn)行封裝,傳送至所述對端主機(jī)b的第一交換機(jī),由所述對端主機(jī)b的第一交換機(jī)傳送所述響應(yīng)報文至所述對端主機(jī)b的分布式虛擬路由器;所述對端主機(jī)b的分布式虛擬路由器根據(jù)所述會話表,傳送所述響應(yīng)報文至所述對端主機(jī)b的第二交換機(jī);所述對端主機(jī)b的第二交換機(jī)對所述響應(yīng)報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過所述隧道轉(zhuǎn)發(fā)至所述主端主機(jī)a。
上述主端主機(jī)a還包括以下特征:所述主端主機(jī)a的接收路由器接收所述對端主機(jī)b轉(zhuǎn)發(fā)的響應(yīng)報文并傳送至所述主端主機(jī)a的第一交換機(jī),由所述主端主機(jī)a的第一交換機(jī)根據(jù)所述標(biāo)記傳送所述響應(yīng)報文至所述主端主機(jī)a的分布式虛擬路由器;所述主端主機(jī)a的分布式虛擬路由器根據(jù)所述會話表,傳送所述響應(yīng)報文至所述主端主機(jī)a的第一交換機(jī);所述主端主機(jī)a的第一交換機(jī)傳送所述響應(yīng)報文至所述主端主機(jī)a的虛擬機(jī)。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的第一交換機(jī)傳送響應(yīng)報文至對端主機(jī)b的虛擬機(jī)后,對端主機(jī)b的虛擬機(jī)對響應(yīng)報文進(jìn)行封裝,傳送至對端主機(jī)b的第一交換機(jī),由對端主機(jī)b的第一交換機(jī)傳送響應(yīng)報文至對端主機(jī)b的分布式虛擬路由器。
其中,對端主機(jī)b設(shè)置有虛擬機(jī)、第一交換機(jī)、第二交換機(jī)、接收路由器和分布式虛擬路由器,在具體實現(xiàn)時,對端主機(jī)b可以設(shè)置有vm、dvs1、dvs2、接收路由器和dvr。
其中,對端主機(jī)b的vm可以首先對響應(yīng)報文進(jìn)行封裝,然后將上述封裝的響應(yīng)報文經(jīng)網(wǎng)卡傳送至對端主機(jī)b的dvs1。
其中,對端主機(jī)b的dvs1接收到對端主機(jī)b的vm傳送的響應(yīng)報文后,對保存于dvs1的fdb表進(jìn)行查詢,若dvs1接收到的上述響應(yīng)報文為非過濾性報文,則對上述響應(yīng)報文進(jìn)行傳送,傳送至對端主機(jī)b的dvr。
在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的虛擬機(jī)對響應(yīng)報文進(jìn)行封裝,傳送至對端主機(jī)b的第一交換機(jī),由對端主機(jī)b的第一交換機(jī)傳送響應(yīng)報文至對端主機(jī)b的分布式虛擬路由器后,對端主機(jī)b的分布式虛擬路由器根據(jù)會話表,傳送響應(yīng)報文至對端主機(jī)b的第二交換機(jī)。
其中,對端主機(jī)b的dvr在接收到對端主機(jī)b的dvs1傳送的響應(yīng)報文后,根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對會話表進(jìn)行查詢,查詢上述響應(yīng)報文是否存在對應(yīng)的會話表,在具體實現(xiàn)時,可以采用session表,session表用于記錄轉(zhuǎn)發(fā)信息,例如:五元組信息、nat信息、alg信息等。
其中,若對端主機(jī)b的dvr檢測到存在上述響應(yīng)報文對應(yīng)的session表,則對端主機(jī)b的dvr直接查找對應(yīng)的session表,根據(jù)已存有的五元組信息,實現(xiàn)快速轉(zhuǎn)發(fā)至對端主機(jī)b的dvs2,同時更新相關(guān)數(shù)據(jù)。
在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的分布式虛擬路由器根據(jù)會話表,傳送響應(yīng)報文至對端主機(jī)b的第二交換機(jī)后,對端主機(jī)b的第二交換機(jī)對響應(yīng)報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過隧道轉(zhuǎn)發(fā)至主端主機(jī)a。
其中,對端主機(jī)b的dvs2接收到上述響應(yīng)報文后,對保存于dvs2的fdb表進(jìn)行查詢,若dvs2接收到的上述響應(yīng)報文為非過濾性報文,則對上述報文進(jìn)行隧道封裝,并在上述響應(yīng)報文的頭部打標(biāo)記,例如,可以在上述響應(yīng)報文報頭的字段中插入一個或一段可識別的字符,再經(jīng)過預(yù)設(shè)的隧道轉(zhuǎn)發(fā)至對端主機(jī)b中,該預(yù)設(shè)的隧道可以是vxlan隧道、gre隧道或者是其他能夠進(jìn)行報文轉(zhuǎn)發(fā)的信息轉(zhuǎn)發(fā)隧道。
在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的交換機(jī)對響應(yīng)報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過隧道轉(zhuǎn)發(fā)至主端主機(jī)a后,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的接收路由器接收對端主機(jī)b轉(zhuǎn)發(fā)的響應(yīng)報文并傳送至主端主機(jī)a的第一交換機(jī),由主端主機(jī)a的第一交換機(jī)根據(jù)標(biāo)記傳送響應(yīng)報文至主端主機(jī)a的分布式虛擬路由器。
其中,主端主機(jī)a設(shè)置有虛擬機(jī)、第一交換機(jī)、第二交換機(jī)、接收路由器和分布式虛擬路由器,在具體實現(xiàn)時,主端主機(jī)a可以設(shè)置有vm、dvs1、dvs2、接收路由器和dvr。
其中,主端主機(jī)a的路由器接收到對端主機(jī)b的dvs2傳送的響應(yīng)報文后, 先對該響應(yīng)報文進(jìn)行隧道封裝解析,再對該響應(yīng)報文進(jìn)行識別,若識別上述響應(yīng)報文具有上述標(biāo)記,則傳送至主端主機(jī)a的dvs1,由主端主機(jī)a的dvs1傳送至主端主機(jī)a的dvr中;若識別上述響應(yīng)報文不具有上述標(biāo)記,則不進(jìn)行傳送。
在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的接收路由器接收對端主機(jī)b轉(zhuǎn)發(fā)的響應(yīng)報文并傳送至主端主機(jī)a的第一交換機(jī),由主端主機(jī)a的第一交換機(jī)根據(jù)標(biāo)記傳送響應(yīng)報文至主端主機(jī)a的分布式虛擬路由器后,主端主機(jī)a的分布式虛擬路由器根據(jù)會話表,傳送響應(yīng)報文至主端主機(jī)a的第一交換機(jī)。
其中,主端主機(jī)a的dvr在接收到主端主機(jī)a的dvs1傳送的響應(yīng)報文后,根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對session表進(jìn)行查詢,查詢上述響應(yīng)報文是否存在對應(yīng)的session表。
其中,若對端主機(jī)b的dvr檢測到不存在上述響應(yīng)報文對應(yīng)的session表,則主端主機(jī)a控制主端主機(jī)a的dvr直接查找對應(yīng)的session表,根據(jù)已存有的五元組信息,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)a的dvs1,同時更新相關(guān)數(shù)據(jù)。
在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的分布式虛擬路由器根據(jù)會話表,傳送響應(yīng)報文至主端主機(jī)a的第一交換機(jī)后,主端主機(jī)a的第一交換機(jī)傳送響應(yīng)報文至主端主機(jī)a的虛擬機(jī)。
其中,主端主機(jī)a的dvs1在接收到主端主機(jī)a的dvr傳送的響應(yīng)報文后,對保存于dvs1的fdb表進(jìn)行查詢,若dvs1接收到的上述響應(yīng)報文為非過濾性報文,則將響應(yīng)報文傳送至主端主機(jī)a的vm。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)系統(tǒng),更好地實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而更好地提高了網(wǎng)絡(luò)信息傳遞的安全性。
進(jìn)一步的,為了更好地通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),上述對端主機(jī)b還包括以下特征:所述對端主機(jī)b的接收路由器接收所述主端主機(jī)a轉(zhuǎn)發(fā)的報文,解析所述隧道封裝;所述對端主機(jī)b的接收路由器識別所述報文是否具有所述標(biāo)記;若所述所述報文具有所述標(biāo)記,則所述對端主機(jī)b的接收路由器傳送所述報文至所述對端主機(jī)b的第一交換機(jī),由所述對端主機(jī)b的第一交換機(jī)傳送所述報文至所述對端主機(jī)b的分布式虛擬路由器。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的第二交換機(jī)對報文進(jìn)行隧道封 裝,并進(jìn)行標(biāo)記,通過隧道轉(zhuǎn)發(fā)至對端主機(jī)b后,網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的接收路由器接收主端主機(jī)a轉(zhuǎn)發(fā)的報文,解析隧道封裝。
在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的接收路由器接收主端主機(jī)a轉(zhuǎn)發(fā)的報文,解析隧道封裝后,對端主機(jī)b的接收路由器識別報文是否具有標(biāo)記。
其中,對端主機(jī)b的路由器接收到主端主機(jī)a的dvs2傳送的報文后,對該報文進(jìn)行識別,例如:對報文報頭的字段與預(yù)設(shè)的字段進(jìn)行匹配,若成功匹配,則認(rèn)為報文具有標(biāo)記,否則,則認(rèn)為報文不具有標(biāo)記。
在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b識別到報文具有標(biāo)記后,對端主機(jī)b傳送報文至對端主機(jī)b的第一交換機(jī),由對端主機(jī)b的第一交換機(jī)傳送報文至對端主機(jī)b的分布式虛擬路由器。
其中,對端主機(jī)b的路由器接收到主端主機(jī)a的dvs2傳送的報文后,對該報文進(jìn)行識別,若識別上述報文具有上述標(biāo)記,則傳送至對端主機(jī)b的dvs1,由對端主機(jī)b的dvs1傳送至對端主機(jī)b對端主機(jī)b的dvr中;若識別上述報文不具有上述標(biāo)記,則不進(jìn)行傳送。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)系統(tǒng),更好地實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而更好地提高了網(wǎng)絡(luò)信息傳遞的安全性。
進(jìn)一步的,為了更好地通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),上述主端主機(jī)a還包括以下特征:所述主端主機(jī)a的接收路由器接收所述對端主機(jī)b轉(zhuǎn)發(fā)的響應(yīng)報文,解析所述隧道封裝;所述主端主機(jī)a的接收路由器識別所述響應(yīng)報文是否具有所述標(biāo)記;若所述響應(yīng)報文具有所述標(biāo)記,則所述主端主機(jī)a的接收路由器傳送所述響應(yīng)報文至所述主端主機(jī)a的第一交換機(jī),由所述主端主機(jī)a的第一交換機(jī)傳送所述響應(yīng)報文至所述主端主機(jī)a的分布式虛擬路由器。
具體地,在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的第二交換機(jī)對響應(yīng)報文進(jìn)行隧道封裝,并進(jìn)行標(biāo)記,通過隧道轉(zhuǎn)發(fā)至主端主機(jī)a后,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的接收路由器接收對端主機(jī)b轉(zhuǎn)發(fā)的響應(yīng)報文,解析隧道封裝。
在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的接收路由器接收對端主機(jī)b轉(zhuǎn)發(fā)的響應(yīng)報文,解析隧道封裝后,主端主機(jī)a的接收路由器識別響應(yīng)報文是否具有標(biāo)記。
其中,主端主機(jī)a的路由器接收到對端主機(jī)b的dvs2傳送的響應(yīng)報文后, 對該響應(yīng)報文進(jìn)行識別,例如:對報文報頭的字段與預(yù)設(shè)的字段進(jìn)行匹配,若成功匹配,則認(rèn)為報文具有標(biāo)記,否則,則認(rèn)為報文不具有標(biāo)記。
在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a識別到響應(yīng)報文具有標(biāo)記后,主端主機(jī)a傳送響應(yīng)報文至主端主機(jī)a的第一交換機(jī),由主端主機(jī)a的第一交換機(jī)傳送響應(yīng)報文至主端主機(jī)a的分布式虛擬路由器。
其中,主端主機(jī)a的路由器接收到對端主機(jī)b的dvs2傳送的響應(yīng)報文后,對該響應(yīng)報文進(jìn)行識別,若識別上述響應(yīng)報文具有上述標(biāo)記,則傳送至主端主機(jī)a的dvs1,由主端主機(jī)a的dvs1傳送至主端主機(jī)a的dvr中;若識別上述響應(yīng)報文不具有上述標(biāo)記,則不進(jìn)行傳送。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)系統(tǒng),更好地實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而更好地提高了網(wǎng)絡(luò)信息傳遞的安全性。
進(jìn)一步的,為了更好地通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),上述主端主機(jī)a還包括以下特征:所述主端主機(jī)a的分布式虛擬路由器接收所述報文;所述主端主機(jī)a的分布式虛擬路由器檢測所述報文是否存在對應(yīng)的會話表;若不存在,則所述主端主機(jī)a的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表。
具體地,網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的分布式虛擬路由器接收報文。
在網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的分布式虛擬路由器接收報文后,主端主機(jī)a的分布式虛擬路由器檢測報文是否存在對應(yīng)的會話表。
其中,主端主機(jī)a的dvr根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對session表進(jìn)行查詢,查詢上述報文是否存在對應(yīng)的session表,session表用于記錄轉(zhuǎn)發(fā)信息,例如:五元組信息、nat信息、alg信息等。
若網(wǎng)絡(luò)通信系統(tǒng)中的主端主機(jī)a的分布式虛擬路由器檢測到所述報文不存在,則主端主機(jī)a的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表。
其中,主端主機(jī)a控制主端主機(jī)a的dvr創(chuàng)建上述報文對應(yīng)的session表,該session表保存有五元組信息、alg信息和acl信息等,其中,alg信息用于識別本條流應(yīng)用層協(xié)議流量,acl信息用于根據(jù)alg信息實現(xiàn)acl攔截或者放通;當(dāng)有后續(xù)報文需要進(jìn)行轉(zhuǎn)發(fā)時,可以根據(jù)已存有的五元組信息, 通過直接查找對應(yīng)的session表,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)a的dvs2,同時更新相關(guān)數(shù)據(jù)。
其中,若主端主機(jī)a的dvr檢測到所述報文存在,則可以根據(jù)已存有的五元組信息,通過直接查找對應(yīng)的session表,實現(xiàn)快速轉(zhuǎn)發(fā)至主端主機(jī)a的dvs2,同時更新相關(guān)數(shù)據(jù)。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)系統(tǒng),更好地實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而更好地提高了網(wǎng)絡(luò)信息傳遞的安全性。
進(jìn)一步的,為了更好地通過分布式虛擬路由器對報文進(jìn)行有狀態(tài)轉(zhuǎn)發(fā),上述對端主機(jī)b還包括以下特征:所述對端主機(jī)b的分布式虛擬路由器接收所述報文;所述對端主機(jī)b的分布式虛擬路由器檢測所述報文是否存在對應(yīng)的會話表;若不存在,則所述對端主機(jī)b的分布式虛擬路由器創(chuàng)建所述報文對應(yīng)的會話表。
具體地,網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的分布式虛擬路由器接收報文。
在網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的分布式虛擬路由器接收報文后,對端主機(jī)b的分布式虛擬路由器檢測報文是否存在對應(yīng)的會話表。
其中,對端主機(jī)b的dvr根據(jù)五元組(指源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議)對session表進(jìn)行查詢,查詢上述報文是否存在對應(yīng)的session表,session表用于記錄轉(zhuǎn)發(fā)信息,例如:五元組信息、nat信息、alg信息等。
若網(wǎng)絡(luò)通信系統(tǒng)中的對端主機(jī)b的分布式虛擬路由器檢測到所述報文不存在,則對端主機(jī)b的分布式虛擬路由器創(chuàng)建報文對應(yīng)的會話表。
其中,對端主機(jī)b控制對端主機(jī)b的dvr創(chuàng)建上述報文對應(yīng)的session表,該session表保存有五元組信息、alg信息和acl信息等,其中,alg信息用于識別本條流應(yīng)用層協(xié)議流量,acl信息用于根據(jù)alg信息實現(xiàn)acl攔截或者放通;當(dāng)有后續(xù)報文需要進(jìn)行轉(zhuǎn)發(fā)時,可以根據(jù)已存有的五元組信息,通過直接查找對應(yīng)的session表,更新相關(guān)數(shù)據(jù),從而實現(xiàn)快速轉(zhuǎn)發(fā)至對端主機(jī)b的dvs2。
其中,若對端主機(jī)b的dvr檢測到所述報文存在,則可以根據(jù)已存有的五元組信息,通過直接查找對應(yīng)的session表,實現(xiàn)快速轉(zhuǎn)發(fā)至對端主機(jī)b的 dvs2,同時更新相關(guān)數(shù)據(jù)。
通過上述方案,本發(fā)明提供了一種基于分布式虛擬路由器的報文轉(zhuǎn)發(fā)系統(tǒng),更好地實現(xiàn)了通過分布式虛擬路由器能夠?qū)笪倪M(jìn)行有狀態(tài)轉(zhuǎn)發(fā),進(jìn)而更好地提高了網(wǎng)絡(luò)信息傳遞的安全性。
以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。