專利名稱:在asic中實現(xiàn)nvgre報文轉(zhuǎn)發(fā)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及在以太網(wǎng)交換芯片設(shè)計中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的方法和裝置。
背景技術(shù):
隨著虛擬化和云計算的逐步發(fā)展,未來的數(shù)據(jù)中心將大量部署虛擬機的應(yīng)用。為了控制不同虛擬機和虛擬機之間,以及虛擬機和租戶之間的通信,VLAN (Virtual LocalArea Network,虛擬局域網(wǎng))便順理成章的成為隔離不同局域網(wǎng)的手段。但是由于虛擬技術(shù)的廣泛應(yīng)用,一個數(shù)據(jù)中心中可支持的租戶數(shù)量也大大增加,二層MAC地址將出現(xiàn)爆發(fā)式的增長,并且在理論上不同虛擬局域網(wǎng)中的MAC地址是可以重疊的。因此,原有的4KVLAN數(shù)量已經(jīng)捉襟見肘。 NVGRE (Network Virtualization using Generic Routing Encapsulation,使用通用路由封裝的虛擬網(wǎng)絡(luò))正是在這樣的背景下,由IETF提出的一個解決VLAN空間不足的方案,由一個24bit的虛擬轉(zhuǎn)發(fā)域來代替VLAN參與轉(zhuǎn)發(fā)查表,大大擴展了虛擬局域網(wǎng)的數(shù)量。GRE (Generic RoutingEncapsulation,通用路由封裝)由 RFC 2784 定義和 RFC 2890擴展的通道協(xié)議中提供了一種封裝方法,將數(shù)據(jù)包發(fā)送到2層或3層網(wǎng)絡(luò)目的地址。NVGRE提議使用GRE來創(chuàng)建一個獨立的虛擬2層網(wǎng)絡(luò),限制物理2層網(wǎng)絡(luò)或擴展超過子網(wǎng)邊界。NVGRE目前隨還在草案階段,但是其清晰的網(wǎng)絡(luò)層次和良好的擴展性,使得NVGRE成為一個很有可能被大眾所認(rèn)可的解決方案。然在網(wǎng)絡(luò)交換芯片中,如何實現(xiàn)NVGRE報文的轉(zhuǎn)發(fā)技術(shù)還未得到解決。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種在ASIRC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的方法和裝置,即在ASIC中對NVGRE報文進行處理,其完全遵循IETF目前所制定的NVGRE草案,以實現(xiàn)NVGRE報文的單播、組播以及協(xié)議報文上送CPU等一系列行為,且通過邏輯固化在ASIC中后,可以實現(xiàn)NVGRE報文的快速轉(zhuǎn)發(fā)。為實現(xiàn)上述目的,本發(fā)明提出如下技術(shù)方案一種在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的方法,其包括以下步驟a.對NVGRE接入點收到的報文進行解析,判斷是否需要進行轉(zhuǎn)發(fā)處理;b.對需要轉(zhuǎn)發(fā)的報文,獲取其對應(yīng)的虛擬轉(zhuǎn)發(fā)域;c.使用虛擬轉(zhuǎn)發(fā)域和報文目的MAC查表獲得報文的處理信息和轉(zhuǎn)發(fā)端口信息;d.對待轉(zhuǎn)發(fā)報文進行封裝或編輯處理后進行轉(zhuǎn)發(fā)。更進一步地,所述NVGRE報文包括從服務(wù)器發(fā)送至IP網(wǎng)絡(luò)的上行報文和從IP網(wǎng)絡(luò)發(fā)送至服務(wù)器的下行報文。在轉(zhuǎn)發(fā)上行報文時,所述步驟c中虛擬轉(zhuǎn)發(fā)域的獲取是根據(jù)收到報文的端口和VLAN得到當(dāng)前報文所屬的虛擬機,以及和虛擬機對應(yīng)的虛擬轉(zhuǎn)發(fā)域;
所述步驟c中的處理信息包括獲得目的端口和封裝信息;所述步驟d中對待轉(zhuǎn)發(fā)報文進行的是封裝處理。在轉(zhuǎn)發(fā)下行報文時,所述步驟c中虛擬轉(zhuǎn)發(fā)域的獲取是通過解封裝NVGRE報文獲得報頭中所攜帶的虛擬轉(zhuǎn)發(fā)域信息;所述步驟c中的處理信息包括獲得目的端口和編輯信息;所述步驟d中對待轉(zhuǎn)發(fā)報文進行的是編輯處理。在步驟c中,如果查表結(jié)果是組播的話,則進行組播復(fù)制,并獲得每一組播成員的處理信息。本發(fā)明還揭示了一種在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的裝置,包括a.報文解析及判斷模塊,用于對收到的報文進行解析,判斷是否需要進行轉(zhuǎn)發(fā)處 理;b.虛擬轉(zhuǎn)發(fā)域獲取模塊,用于對需要轉(zhuǎn)發(fā)的報文,獲取其對應(yīng)的虛擬轉(zhuǎn)發(fā)域;c.轉(zhuǎn)發(fā)表查表模塊,用于通過虛擬轉(zhuǎn)發(fā)域和報文目的MAC查表獲得報文的處理信息和轉(zhuǎn)發(fā)端口信息;d.報文轉(zhuǎn)發(fā)模塊,對待轉(zhuǎn)發(fā)報文進行封裝或編輯處理后進行轉(zhuǎn)發(fā)。更進一步地,所述NVGRE報文的轉(zhuǎn)發(fā)由設(shè)置在服務(wù)器和IP網(wǎng)絡(luò)間的NVGRE接入點處理完成的,所述服務(wù)器上支持有多臺虛擬機,所述虛擬機上對應(yīng)有所述虛擬轉(zhuǎn)發(fā)域。所述裝置還包括獲取NVGRE接入點的報文入接口信息的入接口信息處理模塊,獲取出接口信息的出接口信息模塊,對報文進行解封裝的解封裝模塊,以及對報文進行編輯的編輯模塊。與現(xiàn)有技術(shù)相比,本發(fā)明提出的在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的方法和裝置實現(xiàn)了 NVGRE報文的單播、組播以及協(xié)議報文上送CPU等一系列行為,且通過邏輯固化在ASIC中后,實現(xiàn)了 NVGRE報文的快速轉(zhuǎn)發(fā)。同時,本發(fā)明作為以太網(wǎng)交換芯片的一個子特性,與其他以太網(wǎng)交換芯片的特性相結(jié)合,適用于數(shù)據(jù)中心等對NVGRE有需求的以太網(wǎng)交換機中,降低部署NVGRE的費用。
圖I是本發(fā)明在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的示意圖;圖2是本發(fā)明轉(zhuǎn)發(fā)上行NVGRE報文的轉(zhuǎn)發(fā)流程圖;圖3是本發(fā)明轉(zhuǎn)發(fā)下行NVGRE報文的轉(zhuǎn)發(fā)流程圖。
具體實施例方式下面將結(jié)合本發(fā)明的附圖,對本發(fā)明實施例的技術(shù)方案進行清楚、完整的描述。圖I所示是本發(fā)明揭示的在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的示意圖,NVGRE接入點連接在服務(wù)器和IP網(wǎng)絡(luò)間進行網(wǎng)絡(luò)報文及數(shù)據(jù)的傳輸,每一NVGRE接入點上連接有多臺服務(wù)器,每一服務(wù)器上設(shè)置有多臺虛擬機。NVGRE接入點能夠接收從服務(wù)器發(fā)送至IP網(wǎng)絡(luò)的上行報文及從IP網(wǎng)絡(luò)發(fā)送至服務(wù)器的下行報文,其對所收到的報文進行處理后則轉(zhuǎn)發(fā)至目的地址,而NVGRE接入點對上行報文的處理和對下行報文的處理流程分別介紹如下一、上行報文處理
上行報文是指NVGRE接入點收到的從服務(wù)器側(cè)發(fā)來的報文。當(dāng)NVGRE接入點收到服務(wù)器發(fā)過來的上行報文時,對其封裝NVGRE的報文頭以及外層IP和以太網(wǎng)頭,送入IP網(wǎng)絡(luò)進行轉(zhuǎn)發(fā),如圖I中的NVGRE接入點I,其接收到的從服務(wù)器I或服務(wù)器2上發(fā)送至IP網(wǎng)路的報文,該報文在NVGRE接入點I處理后轉(zhuǎn)發(fā)至IP網(wǎng)絡(luò)。而NVGRE接入點中對上行報文進行處理的上行報文處理裝置包括報文解析模塊,入接口信息獲取模塊,虛擬轉(zhuǎn)發(fā)域確定模塊,二層轉(zhuǎn)發(fā)查表模塊,組播模塊,組播成員復(fù)制模塊,出口信息獲取模塊,報文封裝模塊以及報文轉(zhuǎn)發(fā)模塊。上行報文的具體處理過程如圖2所示,報文解析模塊對收到的報文進行解析,得到后續(xù)處理所需要的各種信息;入接口信息獲取模塊根據(jù)報文接收端口的配置信息來決定是否需要進行NVGRE上行報文處理;虛擬轉(zhuǎn)發(fā)域模塊根據(jù)收到報文的端口和VLAN,確定當(dāng)前報文所屬的虛擬機,以及該虛擬機所對應(yīng)的虛擬轉(zhuǎn)發(fā)域,通過這一處理,實現(xiàn)了 VLAN到NVGRE虛擬轉(zhuǎn)發(fā)域映射的過程,VLAN不再參與轉(zhuǎn)發(fā),而是作為虛擬機的一個標(biāo)識符。在本發(fā)明中,每個NVGRE接入點下掛的服務(wù)器上,可以支持最多4096個虛擬機。
二層轉(zhuǎn)發(fā)表查表模塊使用虛擬轉(zhuǎn)發(fā)域和報文目的MAC進行轉(zhuǎn)發(fā)表的查表,并得到報文的處理信息,這些處理信息包括目的端口的信息和封裝信息。當(dāng)經(jīng)過二層轉(zhuǎn)發(fā)表查表得到的結(jié)果是組播的話,則還需要進行組播復(fù)制,然后獲取每一個組播成員的目的端口和封裝信息;否則直接由出接口信息獲取模塊根據(jù)查表的結(jié)果,得到需要轉(zhuǎn)發(fā)出去的端口信息。報文封裝模塊將原始以太網(wǎng)報文封裝上NVGRE報頭,外層IP和以太網(wǎng)報頭,然后交給報文轉(zhuǎn)發(fā)模塊進行轉(zhuǎn)發(fā)。更進一步地,在二層轉(zhuǎn)發(fā)表查表模塊中,需要設(shè)置一條默認(rèn)條目,這樣在查表的時候必然可以返回結(jié)果。通常情況下,廣播、組播和未知單播報文都可以使用該條目,其目的是使當(dāng)前報文洪泛到虛擬轉(zhuǎn)發(fā)域中的所有成員。二、下行報文處理下行報文是指NVGRE接入點收到從IP網(wǎng)絡(luò)發(fā)來的帶有NVGRE封裝的報文。NVGRE接入點中對下行報文的處理包括接收到下行報文后,然后將其解封裝,并且使用內(nèi)部MAC地址查表并轉(zhuǎn)發(fā)給本地服務(wù)器的處理過程,如圖I中的NVGRE接入點I接到的從IP網(wǎng)絡(luò)發(fā)送至服務(wù)器I或服務(wù)器2中的報文。NVGRE接入點中的下行報文處理裝置中包括報文解析模塊,入接口信息獲取模塊,解封裝模塊,二層轉(zhuǎn)發(fā)表查表模塊,組播模塊,組播成員復(fù)制模塊,出接口信息獲取模塊,報文編輯模塊以及報文轉(zhuǎn)發(fā)模塊。下行報文的處理過程如圖3所示,報文解析模塊對收到的報文進行解析,得到后續(xù)處理所需要的各種信息;入接口信息獲取模塊根據(jù)報文接收端口的配置信息以及當(dāng)前報文的封裝結(jié)構(gòu),來決定是否需要進行NVGRE下行報文處理,只有當(dāng)報文具有NVGRE封裝,并且外層目的IP是本接入點需要處理的時候,才會進入后續(xù)的解封裝模塊;否則僅僅執(zhí)行路由處理。解封裝模塊去掉報文的外層IP頭、以太網(wǎng)頭,以及NVGRE報頭,并且獲得NVGRE報頭中所攜帶的虛擬轉(zhuǎn)發(fā)域信息。二層轉(zhuǎn)發(fā)表查表模塊使用虛擬轉(zhuǎn)發(fā)域和報文內(nèi)層目的MAC進行查表,得到報文的處理信息,該處理信息包括目的端口和編輯信息,由于此時不需要對報文進行封裝,因此只可能有一些編輯信息,如VLAN。當(dāng)查表結(jié)果是組播的話,則需要進行組播復(fù)制,然后獲取每一個組播成員的目的端口和編輯信息;出接口信息獲取模塊根據(jù)查表的結(jié)果,得到需要轉(zhuǎn)發(fā)出去的端口信息。在報文編輯模塊中,將根據(jù)配置對內(nèi)層報文進行必要的編輯,然后交給報文轉(zhuǎn)發(fā)模塊進行轉(zhuǎn)發(fā)。在報文編輯模塊中,最主要的作用是根據(jù)NVGRE虛擬轉(zhuǎn)發(fā)域映射出在目的端口虛擬機上所對應(yīng)的VLAN信息,以便使服務(wù)器可以識別,發(fā)送給對應(yīng)的虛擬機。在二層轉(zhuǎn)發(fā)表查表模塊中,和上行報文處理一樣,需要設(shè)置一條默認(rèn)條目,使報文洪泛到本地服務(wù)器中虛擬轉(zhuǎn)發(fā)域中的所有成員。 此外,對于NVGRE接入點收到的協(xié)議報文來說,其與所述NVGRE上行報文和下行報文的處理不同,如果一側(cè)是普通的三層網(wǎng)絡(luò),協(xié)議報文的處理和普通三層網(wǎng)絡(luò)協(xié)議報文處理一致;如果一側(cè)是普通的二層網(wǎng)絡(luò),協(xié)議報文的處理和普通二層網(wǎng)絡(luò)協(xié)議報文處理一致。本發(fā)明的技術(shù)內(nèi)容及技術(shù)特征已揭示如上,然而熟悉本領(lǐng)域的技術(shù)人員仍可能基 于本發(fā)明的教示及揭示而作種種不背離本發(fā)明精神的替換及修飾,因此,本發(fā)明保護范圍應(yīng)不限于實施例所揭示的內(nèi)容,而應(yīng)包括各種不背離本發(fā)明的替換及修飾,并為本專利申請權(quán)利要求所涵蓋。
權(quán)利要求
1.一種在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的方法,其特征在于包括以下步驟 a.對NVGRE接入點收到的報文進行解析,判斷是否需要進行轉(zhuǎn)發(fā)處理; b.對需要轉(zhuǎn)發(fā)的報文,獲取其對應(yīng)的虛擬轉(zhuǎn)發(fā)域; c.使用虛擬轉(zhuǎn)發(fā)域和報文目的MAC查表獲得報文的處理信息和轉(zhuǎn)發(fā)端口信息; d.對待轉(zhuǎn)發(fā)報文進行封裝或編輯處理后進行轉(zhuǎn)發(fā)。
2.根據(jù)權(quán)利要求I所述的在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的方法,其特征在于所述NVGRE報文包括從服務(wù)器發(fā)送至IP網(wǎng)絡(luò)的上行報文和從IP網(wǎng)絡(luò)發(fā)送至服務(wù)器的下行報文。
3.根據(jù)權(quán)利要求2所述的在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的方法,其特征在于在轉(zhuǎn)發(fā)上行報文時,所述步驟c中虛擬轉(zhuǎn)發(fā)域的獲取是根據(jù)收到報文的端口和VLAN得到當(dāng)前報文 所屬的虛擬機,以及和虛擬機對應(yīng)的虛擬轉(zhuǎn)發(fā)域。
4.根據(jù)權(quán)利要求2所述的在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的方法,其特征在于在轉(zhuǎn)發(fā)下行報文時,所述步驟c中虛擬轉(zhuǎn)發(fā)域的獲取是通過解封裝NVGRE報文獲得報頭中所攜帶的虛擬轉(zhuǎn)發(fā)域信息。
5.根據(jù)權(quán)利要求2所述的在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的方法,其特征在于在轉(zhuǎn)發(fā)上行報文時,所述步驟c中的處理信息包括獲得目的端口和封裝信息;所述步驟d中對待轉(zhuǎn)發(fā)報文進行的是封裝處理。
6.根據(jù)權(quán)利要求2所述的在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的方法,其特征在于在轉(zhuǎn)發(fā)下行報文時,所述步驟c中的處理信息包括獲得目的端口和編輯信息;所述步驟d中對待轉(zhuǎn)發(fā)報文進行的是編輯處理。
7.根據(jù)權(quán)利要求I至6任意一項所述的在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的方法,其特征在于在步驟c中,如果查表結(jié)果是組播的話,則進行組播復(fù)制,并獲得每一組播成員的處理信息。
8.一種在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的裝置,其特征在于包括 a.報文解析及判斷模塊,用于對收到的報文進行解析,判斷是否需要進行轉(zhuǎn)發(fā)處理; b.虛擬轉(zhuǎn)發(fā)域獲取模塊,用于對需要轉(zhuǎn)發(fā)的報文,獲取其對應(yīng)的虛擬轉(zhuǎn)發(fā)域; c.轉(zhuǎn)發(fā)表查表模塊,用于通過虛擬轉(zhuǎn)發(fā)域和報文目的MAC查表獲得報文的處理信息和轉(zhuǎn)發(fā)端口信息; d.報文轉(zhuǎn)發(fā)模塊,對待轉(zhuǎn)發(fā)報文進行封裝或編輯處理后進行轉(zhuǎn)發(fā)。
9.根據(jù)權(quán)利要求8所述的在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的裝置,其特征在于所述NVGRE報文的轉(zhuǎn)發(fā)由設(shè)置在服務(wù)器和IP網(wǎng)絡(luò)間的NVGRE接入點處理完成的,所述服務(wù)器上支持有多臺虛擬機,所述虛擬機上對應(yīng)有所述虛擬轉(zhuǎn)發(fā)域。
10.根據(jù)權(quán)利要求8所述的在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的裝置,其特征在于所述裝置還包括獲取NVGRE接入點的報文入接口信息的入接口信息處理模塊,獲取出接口信息的出接口信息模塊,對報文進行解封裝的解封裝模塊,以及對報文進行編輯的編輯模塊。
全文摘要
本發(fā)明揭示了一種在ASIC中實現(xiàn)NVGRE報文轉(zhuǎn)發(fā)的方法和裝置,所述NVGRE報文的轉(zhuǎn)發(fā)由設(shè)置在服務(wù)器和IP網(wǎng)絡(luò)間的NVGRE接入點處理完成的,所述轉(zhuǎn)發(fā)的NVGRE報文包括上行報文和下行報文,所述上行報文是從服務(wù)器側(cè)發(fā)送至IP網(wǎng)絡(luò)的報文,其處理過程包括對收到的報文進行解析,判斷是否需要進行轉(zhuǎn)發(fā)處理;對需要轉(zhuǎn)發(fā)的報文,獲取其對應(yīng)的虛擬轉(zhuǎn)發(fā)域;使用虛擬轉(zhuǎn)發(fā)域和報文目的MAC查表獲得報文的處理信息和轉(zhuǎn)發(fā)端口信息;對待轉(zhuǎn)發(fā)報文進行封裝處理后進行轉(zhuǎn)發(fā)。本發(fā)明實現(xiàn)了NVGRE報文的單播、組播以及協(xié)議報文上送CPU等行為,且通過邏輯固化在ASIC中后,實現(xiàn)了NVGRE報文的快速轉(zhuǎn)發(fā)。
文檔編號H04L12/931GK102868642SQ20121037969
公開日2013年1月9日 申請日期2012年10月9日 優(yōu)先權(quán)日2012年10月9日
發(fā)明者方沛昱, 廖繼平 申請人:盛科網(wǎng)絡(luò)(蘇州)有限公司