本申請涉及網絡通信技術,特別涉及應用于虛擬擴展局域網(VXLAN:Virtual eXtensible LAN)的報文轉發(fā)方法和裝置。
背景技術:
VXLAN,基于IP網絡、采用“MAC in UDP”封裝形式的二層VPN技術。VXLAN基于已有的服務提供商或企業(yè)IP網絡,為分散的物理站點提供二層互聯(lián),并能夠為不同的租戶提供業(yè)務隔離。VXLAN作為網絡虛擬化的核心技術,正在與SDN一起被越來越多的運用于大型數(shù)據(jù)中心網絡。
VXLAN通過VXLAN標識(ID)標識,VXLAN ID又稱VXLAN網絡標識符(VNI:VXLAN Network Identifier),其長度為24比特。
圖1簡單示出了VXLAN的組成部分:
虛擬機(VM:Virtual Machine):一臺服務器(Server)上可以創(chuàng)建多臺VM,不同的VM可以屬于不同的VXLAN。屬于相同VXLAN的VM處于同一個邏輯二層網絡,彼此之間二層互通;屬于不同VXLAN的VM之間二層隔離。
VXLAN隧道端點(VTEP:VXLAN Tunnel End Point):VXLAN的邊緣設備。VXLAN的處理都在VTEP上進行,例如識別以太網數(shù)據(jù)幀所屬的VXLAN、基于VXLAN對數(shù)據(jù)幀進行二層轉發(fā)、VXLAN封裝、VXLAN解封裝報文等。VTEP可為一臺獨立的物理設備,也可為VM所在的服務器。
VXLAN隧道(tunnel):兩個VTEP之間的點到點邏輯隧道。VTEP對數(shù)據(jù)幀進行VXLAN封裝(包含VXLAN頭、UDP頭、IP頭等)后,通過VXLAN隧道將封裝后的報文轉發(fā)。
核心設備:IP核心網絡中的設備,如圖1中的骨干網(P:Provider)設備。核心設備不參與VXLAN處理,僅需要根據(jù)封裝后報文的目的IP地址對報文進行三層轉發(fā)。
VXLAN IP網關:用于轉發(fā)VXLAN用戶與數(shù)據(jù)中心外部網絡交互的流量,同時也用于轉發(fā)VXLAN用戶之間跨VXLAN交互的流量。
技術實現(xiàn)要素:
本申請?zhí)峁┝藨糜赩XLAN中的報文轉發(fā)方法和裝置,以實現(xiàn)對VXLANIP網關設備進行冗余保護。
本申請?zhí)峁┑募夹g方案包括:
一種應用于虛擬擴展局域網VXLAN的報文轉發(fā)方法,該方法應用于第一VTEP,包括:
建立從第一VTEP至VXLAN IP網關組的VXLAN數(shù)據(jù)隧道,VXLAN數(shù)據(jù)隧道的源地址為第一VTEP的VTEP IP地址、目的地址為VXLAN IP網關組的VTEP組IP地址;VXLAN IP網關組由VXLAN中N個VXLAN IP網關組成,N大于1,VXLAN IP網關為VXLAN中的第二VTEP,各VXLAN IP網關具有不同的VTEP IP地址;
建立從第一VTEP至VXLAN IP網關組中每一VXLAN IP網關的VXLAN控制隧道,VXLAN控制隧道的源地址為第一VTEP的VTEP IP地址、目的地址為VXLAN IP網關的VTEP IP地址,VXLAN控制隧道與VXLAN數(shù)據(jù)隧道關聯(lián)相同的VXLAN標識;
分別通過VXLAN數(shù)據(jù)隧道和VXLAN控制隧道發(fā)送ARP報文。
一種應用于虛擬擴展局域網VXLAN的報文轉發(fā)方法,VXLAN內存在由N個VXLAN IP網關組成的VXLAN IP網關組,VXLAN IP網關組被配置VXLAN隧道端點VTEP組IP地址,VXLAN IP網關組中各VXLAN IP網關具有不同的IP地址,VXLAN IP網關為VXLAN中的第二VTEP,所述VXLAN中還存在第 一VTEP,該方法應用于VXLAN IP網關,包括:
接收第一VTEP發(fā)送的ARP報文;
識別ARP報文的VXLAN封裝中外層目的IP地址是否為本網關的VTEP IP地址;
如果否,依據(jù)所述ARP報文進行ARP表項學習;
如果是,修改所述外層目的IP地址為所述VTEP組IP地址,并依據(jù)修改后的ARP報文進行ARP表項學習。
一種應用于虛擬擴展局域網VXLAN的報文轉發(fā)裝置,該裝置應用于第一VXLAN隧道端點VTEP,包括:
隧道單元,用于建立從第一VTEP至VXLAN IP網關組的VXLAN數(shù)據(jù)隧道,VXLAN數(shù)據(jù)隧道的源地址為第一VTEP的VTEP IP地址、目的地址為VXLAN IP網關組的VTEP組IP地址;VXLAN IP網關組由VXLAN中N個VXLAN IP網關組成,N大于1,VXLAN IP網關為VXLAN中的第二VTEP,各VXLAN IP網關具有不同的VTEP IP地址;以及,
用于建立從第一VTEP至VXLAN IP網關組中每一VXLAN IP網關的VXLAN控制隧道,VXLAN控制隧道的源地址為第一VTEP的VTEP IP地址、目的地址為VXLAN IP網關的VTEP IP地址,VXLAN控制隧道與VXLAN數(shù)據(jù)隧道關聯(lián)相同的VXLAN標識;
報文單元,用于分別通過所述VXLAN數(shù)據(jù)隧道和VXLAN控制隧道發(fā)送ARP報文。
一種應用于虛擬擴展局域網VXLAN的報文轉發(fā)裝置,VXLAN內存在由N個VXLAN IP網關組成的VXLAN IP網關組,VXLAN IP網關組被配置VXLAN隧道端點VTEP組IP地址,VXLAN IP網關組中各VXLAN IP網關具有不同的IP地址,VXLAN IP網關為VXLAN中的第二VTEP,所述VXLAN中還存在第一VTEP,該裝置應用于VXLAN IP網關,包括:
接收單元,用于接收第一VTEP發(fā)送的ARP報文;
ARP表項單元,用于識別ARP報文的VXLAN封裝中外層目的IP地址是否為本網關的VTEPIP地址;
如果否,依據(jù)所述ARP報文進行ARP表項學習;
如果是,修改所述外層目的IP地址為所述VTEP組IP地址,并依據(jù)修改后的ARP報文進行ARP表項學習。
由以上技術方案可以看出,本發(fā)明中,在VXLAN部署多個VTEP作為VXLAN IP網關,并且,VXLAN中除VXLAN IP網關外的VTEP建立從本VTEP至VXLAN IP網關組中每一VXLAN IP網關的VXLAN控制隧道,以及建立從本VTEP至VXLAN IP網關組的VXLAN數(shù)據(jù)隧道,并分別通過VXLAN數(shù)據(jù)隧道和VXLAN控制隧道發(fā)送ARP報文,以使各個VXLAN IP網關學習到同一主機匹配的ARP表項,相當于各個VXLAN IP網關相互備份,實現(xiàn)了VXLANIP網關設備的冗余保護,并且基于ARP表項能夠保證每一VXLAN IP網關正確轉發(fā)業(yè)務報文。
附圖說明
圖1為VXLAN的結構圖;
圖2為本發(fā)明提供的方法流程圖;
圖3為本發(fā)明提供的實施例1的應用組網圖;
圖4為本發(fā)明提供的實施例2的應用組網圖;
圖5為本發(fā)明提供的裝置結構示意圖;
圖6為本發(fā)明提供的圖5所示裝置的硬件結構示意圖;
圖7為本發(fā)明提供的另一裝置結構示意圖;
圖8為本發(fā)明提供的圖7所示裝置的硬件結構示意圖。
具體實施方式
為了使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面結合附圖和具體實施例對本發(fā)明進行詳細描述。
在VXLAN中,大量業(yè)務通過VXLAN IP網關轉發(fā),因此,VXLAN IP網關的冗余備份保護顯得尤其重要。本發(fā)明提供的方法能夠對VXLAN中的VXLAN IP網關進行冗余保護,提高網絡的健壯性和容錯能力。
下面對本發(fā)明提供的方法進行描述:
參見圖2,圖2為本發(fā)明提供的方法流程圖。本發(fā)明提供的方法中,在VXLAN內部署N個VTEP作為VXLAN IP網關,N大于1,作為VXLAN IP網關的N個VTEP組成了一個VXLAN IP網關組。在VXLAN內除了作為VXLAN IP網關的VTEP,還有未作為VXLAN IP網關的VTEP,為便于描述,這里將未作為VXLAN IP網關的VTEP稱為第一VTEP,而作為VXLAN IP網關的VTEP,則為和第一VTEP區(qū)分,稱為第二VTEP。
在本發(fā)明中,VXLAN IP網關組對第一VTEP而言相當于一臺設備,在本發(fā)明中,VXLAN IP網關組被配置一個VTEP組IP地址,而VXLAN IP網關組中的各個VXLAN IP網關也被配置了VTEP IP地址,其中,VXLAN IP網關組中不同VXLAN IP網關配置不同的VTEP IP地址。需要解釋的是,;VXLAN IP網關組被配置的VTEP組IP地址、VXLAN IP網關組中不同VXLAN IP網關被配置的不同VTEP IP地址,并不是網關IP地址,VXLAN IP網關組被配置的VTEP組IP地址只是為了標識VXLAN IP網關組,VXLAN IP網關被配置的不同VTEP IP地址只是為了標識VXLAN IP網關,與網關IP地址無關。
在本發(fā)明中,VXLAN IP網關組中的各個VXLAN IP網關在配置上述的VTEP IP地址之外,還需要額外配置網關IP地址和虛MAC地址。其中,為了實現(xiàn)對VM透明,各個VXLAN IP網關配置的網關IP地址和虛MAC地址相同。
如圖2所示,該流程可包括以下步驟:
步驟201,第一VTEP建立從本VTEP至VXLAN IP網關組的VXLAN數(shù)據(jù)隧道,VXLAN數(shù)據(jù)隧道的源地址為第一VTEP的VTEP IP地址、目的地址為VXLAN IP網關組的VTEP組IP地址。
作為本發(fā)明的一個實施例,VXLAN IP網關組的VTEP組IP地址會在VXLAN IP網關組的VXLAN IP網關的環(huán)回口上進行配置,并且通過路由協(xié)議發(fā)布到網絡中,這樣第一VTEP基于VXLAN IP網關的發(fā)布很容易獲取到VXLAN IP網關組的VTEP組IP地址,繼而根據(jù)獲取的VTEP組IP地址建立從本VTEP至VXLAN IP網關組的VXLAN數(shù)據(jù)隧道。
本發(fā)明中,第一VTEP建立的從本VTEP至VXLAN IP網關組的VXLAN數(shù)據(jù)隧道關聯(lián)N個隧道端口。N如上所述,具體為VXLAN IP網關組中VXLAN IP網關的數(shù)量。N個隧道端口分別指向上述的N個VXLAN IP網關。如此,當?shù)谝籚TEP后續(xù)通過該VXLAN數(shù)據(jù)隧道發(fā)送VXLAN業(yè)務時,會從上述的N個隧道端口選擇一個隧道端口發(fā)送VXLAN業(yè)務,這里選擇隧道端口的方式有多種,比如等價路由負載分擔方式等,第一VTEP按照等價路由負載分擔方式選擇一個隧道端口并發(fā)送VXLAN業(yè)務,能夠最終保證VXLAN IP網關組中VXLAN IP網關之間的負載分擔均衡。
步驟202,第一VTEP建立從本VTEP至VXLAN IP網關組中每一VXLAN IP網關的VXLAN控制隧道,VXLAN控制隧道的源地址為第一VTEP的VTEP IP地址、目的地址為VXLAN IP網關的VTEP IP地址,VXLAN控制隧道與VXLAN數(shù)據(jù)隧道關聯(lián)相同的VXLAN標識。
這里的VXLAN控制隧道不進行數(shù)據(jù)報文的轉發(fā),只執(zhí)行協(xié)議控制報文比如ARP報文的轉發(fā)。
在本發(fā)明中,第一VTEP之所以建立從本VTEP至VXLAN IP網關組中每一VXLAN IP網關的VXLAN控制隧道,其目的是在后續(xù)進行ARP表項學習過程中,通過建立的VXLAN控制隧道發(fā)送ARP報文,以實現(xiàn)VXLAN IP網關組中每一VXLAN IP網關學習到租戶內主機的ARP表項,避免以下缺陷:某些租 戶內的ARP報文無法在每臺VXLAN IP網關上接收,例如租戶內的VM發(fā)送的ARP報文無法在每臺VXLAN IP網關上接收,會導致網關上無法學習到VM的ARP表項,進而導致VXLAN IP網關無法轉發(fā)VXLAN業(yè)務報文。
需要說明的是,在本發(fā)明中,步驟201和步驟202并不具備固定的時間先后順序,比如,在應用中,可以先執(zhí)行步驟202再執(zhí)行步驟201,或者步驟201、步驟202同時執(zhí)行等,本發(fā)明并不具體限定。
步驟203,第一VTEP分別通過VXLAN數(shù)據(jù)隧道和VXLAN控制隧道發(fā)送ARP報文。
如上所述,第一VTEP上有與VXLAN數(shù)據(jù)隧道關聯(lián)的N個隧道端口,則具體地,步驟203中第一VTEP通過VXLAN數(shù)據(jù)隧道發(fā)送ARP報文可包括步驟a1和步驟a2:
步驟a1,第一VTEP依據(jù)VXLAN數(shù)據(jù)隧道對ARP報文進行VXLAN封裝。
VXLAN封裝主要包含UDP頭、VXLAN頭、IP頭等。UDP頭在本專利不涉及,這里不贅述。VXLAN頭至少包含VNI,在步驟a1中,該VNI具體為VXLAN數(shù)據(jù)隧道關聯(lián)的VNI;IP頭至少包含外層源IP地址、外層目的IP地址等,在步驟a1中,外層源IP地址為VXLAN數(shù)據(jù)隧道的源地址即第一VTEP的VTEP IP地址,外層目的IP地址為VXLAN數(shù)據(jù)隧道的目的地址即VXLAN IP網關組的VTEP組IP地址。
步驟a2,第一VTEP從本VTEP上與VXLAN數(shù)據(jù)隧道關聯(lián)的N個隧道端口中選擇一個隧道端口,通過選擇的隧道端口轉發(fā)VXLAN封裝后的ARP報文。
作為本發(fā)明的一個實施例,這里從本VTEP上與VXLAN數(shù)據(jù)隧道關聯(lián)的N個隧道端口中選擇一個隧道端口在具體實現(xiàn)時可有多種實現(xiàn)方式,比如,通過對ARP報文的主機信息比如源IP地址、源MAC地址進行哈希運算,依據(jù)哈希運算結果從本VTEP上與VXLAN數(shù)據(jù)隧道關聯(lián)的N個隧道端口中選擇一個隧道端口。
具體地,步驟203中第一VTEP通過VXLAN控制隧道發(fā)送ARP報文可包括如下的步驟b1和步驟b2:
步驟b1,第一VTEP依據(jù)VXLAN控制隧道對ARP報文進行VXLAN封裝。
如上所述,VXLAN封裝主要包含UDP頭、VXLAN頭、IP頭等。UDP頭在本專利不涉及,這里不贅述。VXLAN頭至少包含VNI,在步驟b1中,該VNI具體為VXLAN控制隧道關聯(lián)的VNI;IP頭至少包含外層源IP地址、外層目的IP地址等,在步驟b1中,外層源IP地址為VXLAN控制隧道的源地址即第一VTEP的IP地址,外層目的IP地址為VXLAN控制隧道的目的地址即VXLAN IP網關的VTEP IP地址。
步驟b2,第一VTEP通過本VTEP上連接VXLAN控制隧道的隧道端口轉發(fā)VXLAN封裝后的ARP報文。
至此,通過步驟b1和步驟b2實現(xiàn)第一VTEP通過VXLAN控制隧道發(fā)送ARP報文。
需要解釋的是,在本發(fā)明中,VXLAN控制隧道、VXLAN數(shù)據(jù)隧道是兩種類型完全不同的隧道,因此,VXLAN控制隧道的隧道端口、VXLAN數(shù)據(jù)隧道關聯(lián)的隧道端口是兩種完全不同的端口。
步驟204,VXLAN IP網關接收來自第一VTEP的ARP報文,識別ARP報文的VXLAN封裝中外層目的IP地址是否為本網關的IP地址;如果否,依據(jù)所述ARP報文進行ARP表項學習;如果是,修改所述外層目的IP地址為所述VTEP組IP地址,并依據(jù)修改后的ARP報文進行ARP表項學習。
在步驟204中的ARP報文為ARP請求報文,或者為ARP響應報文,本發(fā)明并不具體限定。
通過步驟204可以看出,本發(fā)明中,當VXLAN IP網關發(fā)現(xiàn)來自第一VTEP的ARP報文的VXLAN封裝中外層目的IP地址為本網關的IP地址,基于步驟303的描述,則意味著ARP報文是由第一VTEP是通過VXLAN控制隧道發(fā)送的,基于此,如步驟304的描述,VXLAN IP網關會修改外層目的IP地址為VXLAN IP網關組的VTEP組IP地址,之后依據(jù)修改后的ARP報文進行ARP表項學習,這能夠保證VXLAN IP網關最終會將第一VTEP通過VXLAN控制隧道發(fā)送的ARP報文對應的ARP表項學習到VXLAN IP網關至第一VTEP的 VXLAN數(shù)據(jù)隧道上,具體見下文通過實施例描述的如何學習ARP表項的描述。
至此,完成圖2所示的流程。
基于圖2所示的流程可以看出,本發(fā)明中,在VXLAN部署多個VTEP作為VXLAN IP網關,并且,VXLAN中除VXLAN IP網關外的VTEP建立從本VTEP至VXLAN IP網關組中每一VXLAN IP網關的VXLAN控制隧道,以及建立從本VTEP至VXLAN IP網關組的VXLAN數(shù)據(jù)隧道,并分別通過VXLAN數(shù)據(jù)隧道和VXLAN控制隧道發(fā)送ARP報文,以使各個VXLAN IP網關學習到同一ARP表項,這相當于VXLAN IP網關組中的VXLAN IP網關之間相互備份,實現(xiàn)了VXLAN IP網關設備的冗余保護,并且基于VXLAN IP網關能學習到每一租戶內VM的ARP表項,能夠保證每一VXLAN IP網關正確轉發(fā)VXLAN業(yè)務報文。
本發(fā)明中,為了保證VXLAN IP網關組中各VXLAN IP網關向各個第一VTEP發(fā)送報文,VXLAN IP網關中每一VXLAN IP網關還進一步執(zhí)行以下步驟:
建立從本網關至各個第一VTEP的VXLAN數(shù)據(jù)隧道;
這里建立的VXLAN數(shù)據(jù)隧道的源地址為VXLAN IP網關組的VTEP組IP地址,目的地址為第一VTEP的IP地址,其中,從本網關至不同第一VTEP的VXLAN數(shù)據(jù)隧道具有不同的VXLAN數(shù)據(jù)隧道標識。
當VXLAN IP網關組中的每一VXLAN IP網關建立了從本網關至各個第一VTEP的VXLAN數(shù)據(jù)隧道后,每一VXLAN IP網關就可以通過建立的至各個第一VTEP的VXLAN數(shù)據(jù)隧道實現(xiàn)本網關到各第一VTEP的報文傳送,如主動向第一VTEP發(fā)送ARP請求報文以主動學習ARP表項,或者發(fā)送ARP響應報文或者數(shù)據(jù)報文等。
優(yōu)選地,作為本發(fā)明的一個實施例,基于上述VXLAN IP網關建立的從本網關至各個第一VTEP的VXLAN數(shù)據(jù)隧道,上述步驟204中,VXLAN IP網關依據(jù)ARP報文進行ARP表項學習包括:
步驟c1,檢查本地是否存在包含以下內容的ARP表項:
VXLAN封裝中VXLAN標識VNID、ARP報文中的主機信息、滿足以下條件的VXLAN數(shù)據(jù)隧道的標識:源地址為VXLAN封裝中外層目的IP地址、目的地址為VXLAN封裝中外層源IP地址;
步驟c2,在步驟c1檢查結果為否時,學習包含上述內容的ARP表項。
作為本發(fā)明的一個實施例,在步驟c1檢查結果為是時,為避免重復建立ARP表項,則可忽略ARP報文。
至此,通過步驟c1至步驟c2實現(xiàn)了上述步驟204中如何依據(jù)接收的ARP報文進行ARP表項學習。
類似地,在步驟204中,所述依據(jù)修改后的ARP報文進行ARP表項學習可包括步驟d1和步驟d2:
步驟d1,檢查本地是否存在包含以下內容的ARP表項:
VXLAN封裝中VXLAN標識VNID、ARP報文中的主機信息、滿足以下條件的VXLAN數(shù)據(jù)隧道的標識:源地址為VXLAN封裝中外層目的IP地址、目的地址為VXLAN封裝中外層源IP地址。
步驟d2,在步驟d1檢查結果為否時,學習包含上述內容的ARP表項。
作為本發(fā)明的一個實施例,在步驟d1檢查結果為是時,為避免重復建立ARP表項,則可忽略ARP報文。
至此,通過步驟d1至步驟d2實現(xiàn)了上述步驟204中如何依據(jù)修改后的ARP報文進行ARP表項學習。
需要說明的是,在上面步驟c1或步驟d2中,ARP報文中的主機信息主要是指ARP報文在內層封裝中攜帶的主機相關信息,比如源IP地址、源MAC地址等。
本發(fā)明中,當VXLAN IP網關基于上面描述建立ARP表項后,則當VXLANIP網關向第一VTEP發(fā)送數(shù)據(jù)報文時,在本地已學習的ARP表項中匹配用于轉發(fā)數(shù)據(jù)報文的ARP表項,通過匹配的ARP表項中的VXLAN數(shù)據(jù)隧道標識對應的VXLAN數(shù)據(jù)隧道轉發(fā)數(shù)據(jù)報文,最終實現(xiàn)了VXLAN IP網關正確轉發(fā) VXLAN業(yè)務的目的。
以上對本發(fā)明提供的方法進行了概括描述,下面通過兩個實施例對圖2所示的流程進行描述:
實施例1:
圖3為本發(fā)明提供的實施例1的應用組網圖。在圖3中,部署VTEP4_1、VTEP4_2、VTEP4_3作為VXLAN IP網關,VTEP4_1、VTEP4_2、VTEP4_3也稱為第二VTEP,圖3中剩余的VTEP4_4至VTEP4_7為第一VTEP。
VTEP4_1、VTEP4_2、VTEP4_3組成一個VXLAN IP網關組。VXLAN IP網關組中的VTEP4_1、VTEP4_2、VTEP4_3地位對等,不會進行角色選舉,因此,VXLAN IP網關組稱為無狀態(tài)VXLAN IP網關組。VXLAN IP網關組對于第一VTEP而言是透明的,被當作一臺設備處理。
VXLAN IP網關組被配置了一個VTEP組IP地址(稱為GroupIP1),VXLAN IP網關組中的VTEP4_1至VTEP4_3,相當于VXLAN IP網關組的成員,其具有不同的VTEP IP地址(也稱為組成員IP地址),VTEP4_1至VTEP4_3的組成員IP地址分別記為MemberIP4_1、MemberIP4_2、MemberIP4_3。表41示出了VXLAN IP網關組與VXLAN IP網關組中組成員的IP地址:
表41
在圖3中的第一VTEP,以VTEP4_4為例,VTEP4_4建立從VTEP4_4至VXLAN IP網關組的VXLAN數(shù)據(jù)隧道,記為VXLAN數(shù)據(jù)隧道4_41。VXLAN數(shù)據(jù)隧道41關聯(lián)的VXLAN記為VXLAN A。VXLAN數(shù)據(jù)隧道4_41的源地址為VTEP4_4的VTEP IP地址(記為IP4_4),目的地址為VXLAN IP網關組的IP地址GroupIP1。VTEP4_4本地存在VXLAN數(shù)據(jù)隧道4_41關聯(lián) 的3個隧道端口,分別記為端口41、端口42、端口43(圖3未示出),其中,端口41指向VTEP4_1,端口42指向VTEP4_2,端口43指向VTEP4_3。
在圖3中,VTEP4_4建立從VTEP4_4至VTEP4_1的VXLAN控制隧道,記為VXLAN控制隧道4_41,VXLAN控制隧道4_41關聯(lián)的VXLAN為VXLAN A。VXLAN控制隧道4_41的源地址為VTEP4_4的VTEP IP地址IP4_4,目的地址為VTEP4_1的組成員IP地址MemberIP4_1;
VTEP4_4建立從VTEP4_4至VTEP4_2的VXLAN控制隧道,記為VXLAN控制隧道4_42,VXLAN控制隧道4_42關聯(lián)的VXLAN為VXLAN A。VXLAN控制隧道4_42的源地址為VTEP4_4的VTEP IP地址IP4_4,目的地址為VTEP4_2的組成員IP地址MemberIP4_2;
VTEP4_4建立從VTEP4_4至VTEP4_3的VXLAN控制隧道,記為VXLAN控制隧道4_43,VXLAN控制隧道4_43關聯(lián)的VXLAN為VXLAN A。VXLAN控制隧道4_43的源地址為VTEP4_4的VTEP IP地址IP4_4,目的地址為VTEP4_3的組成員IP地址MemberIP4_3。
表42示出了VTEP4_4建立的VXLAN數(shù)據(jù)隧道和VXLAN控制隧道:
表42
圖3中的第一VTEP如VTEP4_5至VTEP4_7,其按照類似VTEP4_4建立VXLAN數(shù)據(jù)隧道和VXLAN控制隧道的原理建立VXLAN數(shù)據(jù)隧道和VXLAN控制隧道,這里不再贅述。
在圖3中,作為VXLAN IP網關的VTEP4_1建立從VTEP4_1至VTEP4_4的VXLAN數(shù)據(jù)隧道,記為VXLAN數(shù)據(jù)隧道4_14,VXLAN數(shù)據(jù)隧道4_14關聯(lián)的VXLAN為上述的VXLAN A,VXLAN數(shù)據(jù)隧道4_14的源地址為GroupIP1,目的地址為VTEP4_4的IP地址IP4_4。
VTEP4_1建立從VTEP4_1至VTEP4_5的VXLAN數(shù)據(jù)隧道,記為VXLAN數(shù)據(jù)隧道4_15,VXLAN數(shù)據(jù)隧道4_15關聯(lián)的VXLAN為上述的VXLAN A,VXLAN數(shù)據(jù)隧道15的源地址為GroupIP1,目的地址為VTEP4_5的IP地址IP4_5。
VTEP4_1建立從VTEP_1至VTEP4_6的VXLAN數(shù)據(jù)隧道,記為VXLAN數(shù)據(jù)隧道4_16,VXLAN數(shù)據(jù)隧道4_16關聯(lián)的VXLAN為上述的VXLAN A,VXLAN數(shù)據(jù)隧道4_16的源地址為GroupIP1,目的地址為VTEP4_5的IP地址IP4_6。
VTEP4_1建立從VTEP4_1至VTEP4_7的VXLAN數(shù)據(jù)隧道,記為VXLAN數(shù)據(jù)隧道4_17,VXLAN數(shù)據(jù)隧道4_17關聯(lián)的VXLAN為上述的VXLAN A,VXLAN數(shù)據(jù)隧道4_17的源地址為GroupIP1,目的地址為VTEP4_7的IP地址IP4_7。
表43示出了VTEP4_1建立的VXLAN數(shù)據(jù)隧道(圖3為畫圖簡單沒有示出):
表43
在圖3中,作為VXLAN IP網關的VTEP4_2按照類似VTEP4_1建立VXLAN數(shù)據(jù)隧道的方式建立如表44所示的VXLAN數(shù)據(jù)隧道;
表44
在圖3中,作為VXLAN IP網關VTEP4_3按照類似VTEP4_1建立VXLAN數(shù)據(jù)隧道的方式建立如表45所示的VXLAN數(shù)據(jù)隧道。
表45
基于上面描述的VXLAN數(shù)據(jù)隧道、VXLAN控制隧道的建立,下面描述基于VXLAN數(shù)據(jù)隧道、VXLAN控制隧道的報文轉發(fā):
以如圖3所示的VM1廣播免費ARP請求報文為例,其中,ARP請求報文的源IP地址為VM1的IP地址IP1,源MAC地址為VM1的MAC地址MAC1。
VTEP4_4收到VM1廣播的免費ARP請求報文,發(fā)現(xiàn)本地存在如表42所示的4條隧道,則復制4份ARP請求報文,記為ARP請求報文01至ARP請求報文04。
VTEP4_4依據(jù)VXLAN數(shù)據(jù)隧道4_41對ARP請求報文01進行VXLAN封裝,VXLAN封裝中VXLAN頭內的VNI為VXLAN A,VXLAN封裝中IP頭內的外層源IP地址為VXLAN數(shù)據(jù)隧道4_41的源地址IP4_4,外層目的IP地址為VXLAN數(shù)據(jù)隧道4_41的目的地址GroupIP1。VTEP4_4從本地與VXLAN數(shù)據(jù)隧道4_41關聯(lián)的3個隧道端口即端口41至端口43中選擇一個端口,這里以選擇端口41為例,VTEP4_4通過端口41發(fā)送VXLAN封裝后的ARP請求報文01。為便于描述,這里將VXLAN封裝后的ARP請求報文01稱為ARP請求報文11。
VTEP4_4依據(jù)VXLAN控制隧道4_41對ARP請求報文02進行VXLAN 封裝,VXLAN封裝中VXLAN頭內的VNI為VXLAN A,VXLAN封裝中IP頭內的外層源IP地址為VXLAN控制隧道4_41的源地址IP4_4,外層目的IP地址為VXLAN控制隧道4_41的目的地址MemberIP4_1。VTEP4_4通過VXLAN控制隧道4_41發(fā)送VXLAN封裝后的ARP請求報文02。為便于描述,這里將VXLAN封裝后的ARP請求報文02稱為ARP請求報文12。
VTEP4_4依據(jù)VXLAN控制隧道4_42對ARP請求報文03進行VXLAN封裝,VXLAN封裝中VXLAN頭內的VNI為VXLAN A,VXLAN封裝中IP頭內的外層源IP地址為VXLAN控制隧道4_42的源地址IP4_4,外層目的IP地址為VXLAN控制隧道4_42的目的地址MemberIP4_2。VTEP4_4通過VXLAN控制隧道4_42發(fā)送VXLAN封裝后的ARP請求報文03。為便于描述,這里將VXLAN封裝后的ARP請求報文03稱為ARP請求報文13。
VTEP4_4依據(jù)VXLAN控制隧道4_43對ARP請求報文04進行VXLAN封裝,VXLAN封裝中VXLAN頭內的VNI為VXLAN A,VXLAN封裝中IP頭內的外層源IP地址為VXLAN控制隧道4_43的源地址IP4_4,外層目的IP地址為VXLAN控制隧道4_43的目的地址MemberIP4_3。VTEP4_4通過VXLAN控制隧道4_43發(fā)送VXLAN封裝后的ARP請求報文04。為便于描述,這里將VXLAN封裝后的ARP請求報文04稱為ARP請求報文14。
VTEP4_1接收到VTEP4_4發(fā)送的ARP請求報文11,發(fā)現(xiàn)ARP請求報文11的VXLAN封裝中IP頭內的外層目的IP地址為VXLAN IP網關組的IP地址GroupIP1,則檢查本地是否存在包含如表46所示內容的ARP表項:
表46
如果存在,忽略ARP請求報文11,如果不存在,則學習如表46所示的ARP表項。
VTEP4_1接收到VTEP4_4發(fā)送的ARP請求報文12,發(fā)現(xiàn)ARP請求報文12的VXLAN封裝中IP頭內的外層目的IP地址為本VTEP4_1的VTEP IP地址,則修改外層目的IP地址為VXLAN IP網關組的IP地址GroupIP1,之后檢查本地是否存在包含如表46所示內容的ARP表項,如果存在,忽略ARP請求報文12,如果不存在,則學習如表46所示的ARP表項。
VTEP4_2接收到VTEP4_4發(fā)送的ARP請求報文13,發(fā)現(xiàn)ARP請求報文13的VXLAN封裝中IP頭內的外層目的IP地址為本VTEP4_2的VTEP IP地址,則修改外層目的IP地址為VXLAN IP網關組的IP地址GroupIP1,之后檢查本地是否存在包含如表47所示內容的ARP表項:
表47
如果存在,忽略ARP請求報文13,如果不存在,則學習如表47所示的ARP表項。
VTEP4_3接收到VTEP4_4發(fā)送的ARP請求報文14,發(fā)現(xiàn)ARP請求報文14的VXLAN封裝中IP頭內的外層目的IP地址為本VTEP4_3的VTEP IP地址,則修改外層目的IP地址為VXLAN IP網關組的IP地址GroupIP1,之后檢查本地是否存在包含如表48所示內容的ARP表項:
表48
如果存在,忽略ARP請求報文14,如果不存在,則學習如表48所示的ARP表項。
至此,完成實施例1的描述。
通過實施例1,VXLAN IP網關組中作為VXLAN IP網關的VTEP4_1至VTEP4_3都會學習到VM1匹配的ARP表項(其包含了VM1的MAC地址MAC1、IP地址IP1)。之后,不管是VXLAN IP網關組中作為VXLAN IP網關的VTEP4_1、VTEP4_2、還是VTEP4_3,其在收到發(fā)向VM1的業(yè)務報文時,就會基于本地已學習的與VM1匹配的ARP表項進行業(yè)務報文轉發(fā),避免現(xiàn)有VXLAN IP網關可能無法順利轉發(fā)業(yè)務報文的缺陷。
實施例2:
圖4為本發(fā)明提供的實施例2的應用組網圖。在圖4中,部署VTEP5_1、VTEP5_2、VTEP5_3作為VXLAN IP網關,VTEP5_1、VTEP5_2、VTEP5_3也稱為第二VTEP,圖4中剩余的VTEP 5_4至VTEP5_6為第一VTEP。
VTEP5_1、VTEP5_2、VTEP5_3組成一個VXLAN IP網關組。VXLAN IP網關組中的VTEP5_1、VTEP5_2、VTEP5_3地位對等,不會進行角色選舉,因此,VXLAN IP網關組稱為無狀態(tài)VXLAN IP網關組。VXLAN IP網關組對于第一VTEP而言是透明的,被當作一臺設備處理。
VXLAN IP網關組被配置了一個VTEP組IP地址(稱為GroupIP2),VXLAN IP網關組中的VTEP5_1至VTEP5_3,相當于VXLAN IP網關組的成員,其具有不同的VTEP IP地址(也稱為組成員IP地址),VTEP5_1至VTEP5_3的組成員IP地址分別記為MemberIP5_1、MemberIP5_2、MemberIP5_3。表51示出了VXLAN IP網關組與VXLAN IP網關組中組成員的IP地址:
表51
在圖4中,以作為VXLANIP網關的VTEP5_1為例描述,VTEP5_1建立從VTEP5_1至VTEP5_4的VXLAN數(shù)據(jù)隧道,為VXLAN數(shù)據(jù)隧道5_14,VXLAN數(shù)據(jù)隧道5_14關聯(lián)的VXLAN為VXLAN B,VXLAN數(shù)據(jù)隧道5_14的源地址為GroupIP2,目的地址為VTEP5_4的IP地址IP5_4。
VTEP5_1建立從VTEP5_1至VTEP5_5的VXLAN數(shù)據(jù)隧道,記為VXLAN數(shù)據(jù)隧道5_15,VXLAN數(shù)據(jù)隧道5_15關聯(lián)的VXLAN為VXLAN B,VXLAN數(shù)據(jù)隧道5_15的源地址為GroupIP2,目的地址為VTEP5_5的IP地址IP5_5。
VTEP5_1建立從VTEP5_1至VTEP5_6的VXLAN數(shù)據(jù)隧道,記為VXLAN數(shù)據(jù)隧道5_16,VXLAN數(shù)據(jù)隧道5_16關聯(lián)的VXLAN為VXLAN B,VXLAN數(shù)據(jù)隧道5_16的源地址為GroupIP2,目的地址為VTEP4_6的IP地址IP4_6。
表52示出了VTEP 5_1建立的VXLAN數(shù)據(jù)隧道:
表52
在圖4中,作為VXLAN IP網關的VTEP5_2會按照類似VTEP5_1建立VXLAN數(shù)據(jù)隧道的方式在本地建立如下表53所示的VXLAN數(shù)據(jù)隧道。
表53
在圖4中,作為VXLAN IP網關的VTEP5_3會按照類似VTEP5_1建立VXLAN數(shù)據(jù)隧道的方式在本地建立如下表54所示的VXLAN數(shù)據(jù)隧道。
表54
以圖4中的第一VTEP即VTEP5_4為例描述,VTEP5_4建立從VTEP5_4至VXLAN IP網關組的VXLAN數(shù)據(jù)隧道,記為VXLAN數(shù)據(jù)隧道5_41。VXLAN數(shù)據(jù)隧道5_41關聯(lián)的VXLAN為VXLAN B。VXLAN數(shù)據(jù)隧道VXLAN數(shù)據(jù)隧道5_41的源地址為VTEP5_4的VTEP IP地址(記為IP5_4),目的地址為VXLAN IP網關組的IP地址GroupIP2。VTEP5_4本地存在VXLAN數(shù)據(jù)隧道41關聯(lián)的3個隧道端口,分別記為端口51、端口52、端口53(圖4 未示出),其中,端口51指向VTEP5_1,端口52指向VTEP5_2,端口53指向VTEP5_3。
在圖4中,VTEP5_4建立從VTEP5_4至VTEP5_1的VXLAN控制隧道,記為VXLAN控制隧道5_41,VXLAN控制隧道5_41關聯(lián)的VXLAN為VXLAN B。VXLAN控制隧道5_41的源地址為VTEP5_4的VTEP IP地址IP5_4,目的地址為VTEP5_1的組成員IP地址MemberIP5_1;
VTEP5_4建立從VTEP5_4至VTEP5_2的VXLAN控制隧道,記為VXLAN控制隧道5_42,VXLAN控制隧道5_42關聯(lián)的VXLAN為VXLAN B。VXLAN控制隧道5_42的源地址為VTEP5_4的VTEP IP地址IP5_4,目的地址為VTEP5_2的組成員IP地址MemberIP5_2;
VTEP5_4建立從VTEP5_4至VTEP5_3的VXLAN控制隧道,記為VXLAN控制隧道5_43,VXLAN控制隧道5_43關聯(lián)的VXLAN為VXLAN B。VXLAN控制隧道5_43的源地址為VTEP5_4的VTEP IP地址IP5_4,目的地址為VTEP5_3的組成員IP地址MemberIP5_3。
表55示出了VTEP4_4建立的VXLAN數(shù)據(jù)隧道和VXLAN控制隧道:
表55
在圖4中的第一VTEP諸如VTEP5_5、VTEP5_6也會按照類似VTEP5_4的方式建立VXLAN數(shù)據(jù)隧道和VXLAN控制隧道,這里不再贅述。
基于上面描述的VXLAN數(shù)據(jù)隧道、VXLAN控制隧道的建立,下面描述基于VXLAN數(shù)據(jù)隧道、VXLAN控制隧道的報文轉發(fā):
在圖4中,VTEP5_1在轉發(fā)目的IP地址為VM2的IP地址IP2的數(shù)據(jù)報文時,檢查本地不存在IP2匹配的ARP表項,則基于本地如表52所示存在的三條VXLAN數(shù)據(jù)隧道復制3份ARP請求報文,記為ARP請求報文21至ARP請求報文23。
VTEP5_1依據(jù)VXLAN數(shù)據(jù)隧道5_14對ARP請求報文21進行VXLAN封裝,VXLAN封裝中VXLAN頭內的VNI為VXLAN B,VXLAN封裝中IP頭內的外層源IP地址為VXLAN數(shù)據(jù)隧道5_14的源地址GroupIP2,外層目的IP地址為VXLAN數(shù)據(jù)隧道5_14的目的地址IP5_4。為便于描述,這里將VXLAN封裝后的ARP請求報文21稱為ARP請求報文31。VTEP5_1通過本地VXLAN數(shù)據(jù)隧道5_14發(fā)送ARP請求報文31。
VTEP5_1依據(jù)VXLAN數(shù)據(jù)隧道5_15對ARP請求報文22進行VXLAN封裝,VXLAN封裝中VXLAN頭內的VNI為VXLAN B,VXLAN封裝中IP頭內的外層源IP地址為VXLAN數(shù)據(jù)隧道5_15的源地址GroupIP2,外層目的IP地址為VXLAN數(shù)據(jù)隧道5_15的目的地址IP5_5。為便于描述,這里將VXLAN封裝后的ARP請求報文22稱為ARP請求報文32。VTEP5_1通過本地VXLAN數(shù)據(jù)隧道5_15發(fā)送ARP請求報文32。
VTEP5_1依據(jù)VXLAN數(shù)據(jù)隧道5_16對ARP請求報文23進行VXLAN封裝,VXLAN封裝中VXLAN頭內的VNI為VXLAN B,VXLAN封裝中IP頭內的外層源IP地址為VXLAN數(shù)據(jù)隧道5_16的源地址GroupIP2,外層目的IP地址為VXLAN數(shù)據(jù)隧道5_16的目的地址IP5_6。為便于描述,這里將 VXLAN封裝后的ARP請求報文23稱為ARP請求報文33。VTEP5_1通過本地VXLAN數(shù)據(jù)隧道5_16發(fā)送ARP請求報文33。
VTEP5_4收到ARP請求報文31后,對ARP請求報文31進行VXLAN解封裝(即恢復上述的ARP請求報文21),檢查ARP請求報文21的目的IP地址IP2是否為本地主機的IP地址,如果是,向目的IP地址發(fā)送ARP請求報文21,否則,可忽略ARP請求報文21。VTEP5_5收到ARP請求報文32、VTEP5_6收到ARP請求報文33的處理方式類似VTEP5_4收到ARP請求報文31的處理方式。這里假如ARP請求報文21的目的IP地址IP2為VTEP5_4本地主機VM2的IP地址。
當VM2收到ARP請求報文21后,發(fā)現(xiàn)ARP請求報文21的目的IP地址為本地IP地址,則返回ARP響應報文。ARP響應報文的源IP地址為IP2,源MAC地址為MAC2。
VTEP5_4收到ARP響應報文后,發(fā)現(xiàn)本地存在如表55所示的4條隧道,則復制4份ARP響應報文,記為ARP響應報文41至ARP響應報文44。
VTEP5_4依據(jù)VXLAN數(shù)據(jù)隧道5_41對ARP響應報文41進行VXLAN封裝,VXLAN封裝中VXLAN頭內的VNI為VXLAN B,VXLAN封裝中IP頭內的外層源IP地址為VXLAN數(shù)據(jù)隧道5_41的源地址IP5_4,外層目的IP地址為VXLAN數(shù)據(jù)隧道5_41的目的地址GroupIP2。VTEP4_4從本地與VXLAN數(shù)據(jù)隧道5_41關聯(lián)的3個隧道端口即端口51至端口53中選擇一個端口(這里以端口51為例),VTEP5_4通過端口51發(fā)送VXLAN封裝后的ARP響應報文41。為便于描述,這里將VXLAN封裝后的ARP響應報文41稱為ARP響應報文51。
VTEP5_4依據(jù)VXLAN控制隧道5_41對ARP響應報文42進行VXLAN封裝,VXLAN封裝中VXLAN頭內的VNI為VXLAN B,VXLAN封裝中IP頭內的外層源IP地址為VXLAN控制隧道5_41的源地址IP5_4,外層目的IP地址為VXLAN控制隧道5_41的目的地址MemberIP5_1。VTEP5_4通過本地VXLAN控制隧道5_41發(fā)送VXLAN封裝后的ARP響應報文42。為便 于描述,這里將VXLAN封裝后的ARP響應報文42稱為ARP響應報文52。
VTEP5_4依據(jù)VXLAN控制隧道5_42對ARP響應報文43進行VXLAN封裝,VXLAN封裝中VXLAN頭內的VNI為VXLAN B,VXLAN封裝中IP頭內的外層源IP地址為VXLAN控制隧道5_42的源地址IP5_4,外層目的IP地址為VXLAN控制隧道5_42的目的地址MemberIP5_2。VTEP5_4通過本地VXLAN控制隧道5_42發(fā)送VXLAN封裝后的ARP響應報文43。為便于描述,這里將VXLAN封裝后的ARP響應報文43稱為ARP響應報文53。
VTEP5_4依據(jù)VXLAN控制隧道5_43對ARP響應報文44進行VXLAN封裝,VXLAN封裝中VXLAN頭內的VNI為VXLAN B,VXLAN封裝中IP頭內的外層源IP地址為VXLAN控制隧道5_43的源地址IP5_4,外層目的IP地址為VXLAN控制隧道5_43的目的地址MemberIP5_3。VTEP5_4通過本地VXLAN控制隧道5_43發(fā)送VXLAN封裝后的ARP響應報文44。為便于描述,這里將VXLAN封裝后的ARP響應報文44稱為ARP響應報文54。
VTEP5_1接收到VTEP5_4發(fā)送的ARP響應報文51,發(fā)現(xiàn)ARP響應報文51的VXLAN封裝中IP頭內的外層目的IP地址為VXLAN IP網關組的IP地址GroupIP2,則檢查本地是否存在包含如表56所示內容的ARP表項:
表56
如果存在,忽略ARP響應報文51,如果不存在,則學習如表56所示的ARP表項。
VTEP5_1接收到VTEP5_4發(fā)送的ARP響應報文52,發(fā)現(xiàn)ARP響應報文52的VXLAN封裝中IP頭內的外層目的IP地址為本VTEP5_1的VTEP IP地址IP5_1,則修改外層目的IP地址為VXLAN IP網關組的IP地址GroupIP2, 之后檢查本地是否存在包含如表56所示內容的ARP表項,如果存在,忽略ARP響應報文52,如果不存在,則學習如表56所示的ARP表項。
VTEP5_2接收到VTEP5_4發(fā)送的ARP響應報文53,發(fā)現(xiàn)ARP響應報文53的VXLAN封裝中IP頭內的外層目的IP地址為本VTEP5_2的VTEP IP地址IP5_2,則修改外層目的IP地址為VXLAN IP網關組的IP地址GroupIP2,之后檢查本地是否存在包含如表57所示內容的ARP表項,如果存在,忽略ARP響應報文53,如果不存在,則學習如表57所示的ARP表項。
表57
VTEP5_3接收到VTEP5_4發(fā)送的ARP響應報文54,發(fā)現(xiàn)ARP響應報文54的VXLAN封裝中IP頭內的外層目的IP地址為本VTEP5_3的VTEP IP地址IP5_3,則修改外層目的IP地址為VXLAN IP網關組的IP地址GroupIP2,之后檢查本地是否存在包含如表58所示內容的ARP表項,如果存在,忽略ARP響應報文54,如果不存在,則學習如表58所示的ARP表項。
表58
之后,VTEP5_1按照學習的如表56所示的ARP表項對上述的數(shù)據(jù)報文繼續(xù)進行轉發(fā)。
至此,完成實施例2的描述。
通過實施例2,VXLAN IP網關組中作為VXLAN IP網關的VTEP5_1至VTEP5_3都會通過主動發(fā)送ARP請求報文學習到VM2匹配的ARP表項(其包含了VM2的MAC地址MAC2、IP地址IP2)。之后,不管是VXLAN IP網關組中作為VXLAN IP網關的VTEP5_1、VTEP5_2、還是VTEP5_3,其在收到發(fā)向VM2的業(yè)務報文時,就會基于本地已學習的與VM2匹配的ARP表項進行業(yè)務報文轉發(fā),避免現(xiàn)有VXLAN IP網關可能無法順利轉發(fā)業(yè)務報文的缺陷。
以上對本發(fā)明提供的方法進行了描述,下面對本發(fā)明提供的裝置進行描述:
參見圖5,圖5為本發(fā)明提供的裝置結構示意圖。該裝置應用于第一VTEP,如圖5所示,該裝置可包括:
隧道單元,用于建立從第一VTEP至VXLAN IP網關組的VXLAN數(shù)據(jù)隧道,VXLAN數(shù)據(jù)隧道的源地址為第一VTEP的VTEP IP地址、目的地址為VXLAN IP網關組的VTEP組IP地址;VXLAN IP網關組由VXLAN中N個VXLAN IP網關組成,N大于1,VXLAN IP網關為VXLAN中的第二VTEP,各VXLAN IP網關具有不同的VTEP IP地址;以及,
用于建立從第一VTEP至VXLAN IP網關組中每一VXLAN IP網關的VXLAN控制隧道,VXLAN控制隧道的源地址為第一VTEP的VTEP IP地址、目的地址為VXLAN IP網關的VTEP IP地址,VXLAN控制隧道與VXLAN數(shù)據(jù)隧道關聯(lián)相同的VXLAN標識;
報文單元,用于分別通過所述VXLAN數(shù)據(jù)隧道和VXLAN控制隧道發(fā)送ARP報文。
優(yōu)選地,本發(fā)明中,第一VTEP上有與所述VXLAN數(shù)據(jù)隧道關聯(lián)的N個隧道端口;
基于此,所述報文單元通過VXLAN數(shù)據(jù)隧道發(fā)送ARP報文包括:
依據(jù)所述VXLAN數(shù)據(jù)隧道對所述ARP報文進行VXLAN封裝,從所述N 個隧道端口中選擇一個隧道端口轉發(fā)VXLAN封裝后的ARP報文。這里從N個隧道端口中選擇一個隧道端口的方法有多種,比如哈希算法等,本發(fā)明并不具體限定。
這里,依據(jù)VXLAN數(shù)據(jù)隧道對ARP報文進行的VXLAN封裝具體可包括:UDP頭、VXLAN頭、IP頭等。其中,UDP頭在本專利不涉及,這里不贅述。VXLAN頭至少包含VNI,該VNI具體為VXLAN數(shù)據(jù)隧道關聯(lián)的VNI;IP頭至少包含外層源IP地址、外層目的IP地址等,其中,外層源IP地址為VXLAN數(shù)據(jù)隧道的源地址即第一VTEP的VTEP IP地址,外層目的IP地址為VXLAN數(shù)據(jù)隧道的目的地址即VXLAN IP網關組的VTEP組IP地址。
優(yōu)選地,本發(fā)明中,所述報文單元通過VXLAN控制隧道發(fā)送ARP報文包括:
依據(jù)VXLAN控制隧道對ARP報文進行VXLAN封裝,通過本VTEP上連接VXLAN控制隧道的隧道端口轉發(fā)VXLAN封裝后的ARP報文。
這里,依據(jù)VXLAN控制隧道對ARP報文進行的VXLAN封裝具體可包括:UDP頭、VXLAN頭、IP頭等。其中,UDP頭在本專利不涉及,這里不贅述。VXLAN頭至少包含VNI,該VNI具體為VXLAN控制隧道關聯(lián)的VNI;IP頭至少包含外層源IP地址、外層目的IP地址等,其中,外層源IP地址為VXLAN控制隧道的源地址即第一VTEP的VTEP IP地址,外層目的IP地址為VXLAN控制隧道的目的地址即VXLAN IP網關的VTEP IP地址。
至此,完成圖5所示的裝置描述。
本申請還提供了圖5所示裝置的硬件結構。參見圖6,圖6為本發(fā)明提供的圖5所示裝置的硬件結構示意圖。如圖6所示,該裝置可包括:
CPU和存儲器。
其中,存儲器,用于存放隧道單元、報文單元;
CPU,用于存放隧道單元運行的控制程序以控制存儲器中的隧道單元執(zhí)行以下操作:建立從第一VTEP至VXLAN IP網關組的VXLAN數(shù)據(jù)隧道,建 立從第一VTEP至VXLAN IP網關組中每一VXLAN IP網關的VXLAN控制隧道,這里建立的VXLAN數(shù)據(jù)隧道和VXLAN控制隧道如上所述;以及,
用于存放報文單元運行的控制程序以控制存儲器中的報文單元執(zhí)行如下操作:分別通過VXLAN數(shù)據(jù)隧道和VXLAN控制隧道發(fā)送ARP報文。
至此,完成圖6所示的硬件結構描述。
參見圖7,圖7為本發(fā)明提供的另一裝置結構示意圖。該裝置應用的VXLAN內存在由N個不同VXLAN IP網關組成的VXLAN IP網關組,VXLANIP網關組被配置VTEP組IP地址,VXLAN IP網關組中各個VXLAN IP網關具有不同的IP地址,VXLAN IP網關為VXLAN中的第二VTEP,所述VXLAN中還存在第一VTEP,該裝置應用于VXLAN IP網關,如圖7所示,該裝置可包括:
接收單元,用于接收第一VTEP發(fā)送的ARP報文;這里接收的ARP報文為ARP請求報文或者為ARP響應報文,本發(fā)明并不具體限定;
ARP表項單元,用于識別ARP報文的VXLAN封裝中外層目的IP地址是否為本網關的IP地址;
如果否,依據(jù)所述ARP報文進行ARP表項學習;
如果是,修改所述外層目的IP地址為所述VTEP組IP地址,并依據(jù)修改后的ARP報文進行ARP表項學習。
優(yōu)選地,如圖7所示,該裝置進一步包括:
隧道單元,用于建立從本網關至各個第一VTEP的VXLAN數(shù)據(jù)隧道;VXLAN數(shù)據(jù)隧道的源地址為所述VTEP組IP地址,目的地址為第一VTEP的IP地址,其中,建立的至各個第一VTEP的VXLAN數(shù)據(jù)隧道具有不同的VXLAN數(shù)據(jù)隧道標識;
轉發(fā)單元,用于通過已建立的從本網關至第一VTEP的VXLAN數(shù)據(jù)隧道向第一VTEP發(fā)送報文。
優(yōu)選地,所述ARP表項單元依據(jù)ARP報文進行ARP表項學習包括:
檢查本地是否存在包含以下內容的ARP表項:
VXLAN封裝中VXLAN標識VNID、ARP報文中的主機信息、滿足以下條件的VXLAN數(shù)據(jù)隧道的標識:源地址為VXLAN封裝中外層目的IP地址、目的地址為VXLAN封裝中外層源IP地址;如果否,學習包含所述內容的ARP表項。
優(yōu)選地,所述ARP表項單元依據(jù)修改后的ARP報文進行ARP表項學習包括:
檢查本地是否存在包含以下內容的ARP表項:
VXLAN封裝中VXLAN標識VNID、ARP報文中的主機信息、滿足以下條件的VXLAN數(shù)據(jù)隧道的標識:源地址為VXLAN封裝中外層目的IP地址、目的地址為VXLAN封裝中外層源IP地址;
如果否,學習包含所述內容的ARP表項。
至此,完成圖7所示裝置的結構描述。
本申請還提供了圖7所示裝置的硬件結構。參見圖8,圖8為本發(fā)明提供的圖7所示裝置的硬件結構示意圖。如圖8所示,該裝置可包括:
CPU和存儲器。
其中,存儲器,用于存放接收單元、ARP表項單元;
CPU,用于存放接收單元運行的控制程序以控制存儲器中的接收單元執(zhí)行以下操作:接收第一VTEP發(fā)送的ARP報文;以及,
用于存放ARP表項單元運行的控制程序以控制存儲器中的ARP表項單元執(zhí)行如下操作:識別ARP報文的VXLAN封裝中外層目的IP地址是否為本網關的IP地址;如果否,依據(jù)所述ARP報文進行ARP表項學習;如果是,修改所述外層目的IP地址為所述VTEP組IP地址,并依據(jù)修改后的ARP報文進行ARP表項學習。
優(yōu)選地,存儲器進一步存放隧道單元、轉發(fā)單元;
CPU,用于存放隧道單元運行的控制程序以控制存儲器中的隧道單元執(zhí) 行以下操作:建立從本VXLAN IP網關至每一個第一VTEP的VXLAN數(shù)據(jù)隧道;VXLAN數(shù)據(jù)隧道的源地址為所述VTEP組IP地址、目的地址為所述第一VTEP的IP地址,其中,建立的從VXLAN IP網關至不同第一VTEP的VXLAN數(shù)據(jù)隧道具有不同的VXLAN數(shù)據(jù)隧道標識;以及,
存放轉發(fā)單元運行的控制程序以控制存儲器中的轉發(fā)單元執(zhí)行以下操作:當向第一VTEP發(fā)送ARP報文或者數(shù)據(jù)報文時,通過已建立的從本VXLAN IP網關至該第一VTEP的VXLAN數(shù)據(jù)隧道發(fā)送。
至此,完成圖8所示的硬件結構描述。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內。