麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

大規模組網中報文轉發方法及裝置與流程

文檔序號:11253882閱讀:770來源:國知局
大規模組網中報文轉發方法及裝置與流程

本發明實施例涉及通信技術領域,尤其涉及一種大規模組網中報文轉發方法及裝置。



背景技術:

現有技術中,隨著服務器集群規模的增大,以及虛擬化顆粒度的變小,現有的一臺服務器上可虛擬化出多臺虛擬機或者容器。

假設節點1下面包括100個葉子節點,每個葉子節點下面可掛有48個服務器,每個服務器可虛擬化為100個虛擬機或容器,則節點1下面可有48*100*100=480k個虛擬機或者容器,由于每個虛擬機或容器在與其他網元或者設備通信時需要一個mac地址和一個ip地址,則節點1需存儲有480k個mac地址和ip地址的對應關系。

若節點1是一個網關設備,則需要網關設備支持480k的地址解析協議(addressresolutionprotocol,簡稱arp)表項空間,但是現有技術中的網關設備的arp表項并沒有這么大的空間,該網關設備實際連接的虛擬機或者容器的個數遠比480k小,導致通過該網關設備可組建的網絡規模較小。



技術實現要素:

本發明實施例提供一種大規模組網中報文轉發方法及裝置,以降低網關設備的arp表項的占用率,增大可組建的網絡規模。

本發明實施例的一個方面是提供一種大規模組網中報文轉發方法,包括:

葉子節點接收其下屬的虛擬機或容器發送的第一報文,所述第一報文包括所述虛擬機或容器的mac地址,以及所述虛擬機或容器的ip地址;

所述葉子節點將所述第一報文中所述虛擬機或容器的mac地址替換為預設的mac地址,并將替換mac地址后的第一報文發送給根節點,所述葉子節點存儲有所述虛擬機或容器的mac地址、所述虛擬機或容器的ip地址、以及預設的mac地址的對應關系;

所述葉子節點接收所述根節點發送的第二報文,所述第二報文包括所述預設的mac地址和所述虛擬機或容器的ip地址;

所述葉子節點根據所述虛擬機或容器的ip地址、以及所述對應關系,確定所述虛擬機或容器的mac地址;

所述葉子節點將所述第二報文中所述預設的mac地址替換為所述虛擬機或容器的mac地址,并將替換mac地址后的第二報文發送給所述虛擬機或容器。

本發明實施例的另一個方面是提供一種大規模組網中報文轉發裝置,包括:

接收模塊,用于接收虛擬機或容器發送的第一報文,所述第一報文包括所述虛擬機或容器的mac地址,以及所述虛擬機或容器的ip地址;

替換模塊,用于將所述第一報文中所述虛擬機或容器的mac地址替換為預設的mac地址;

發送模塊,用于將替換mac地址后的第一報文發送給根節點,所述葉子節點存儲有所述虛擬機或容器的mac地址、所述虛擬機或容器的ip地址、以及預設的mac地址的對應關系;

所述接收模塊還用于接收所述根節點發送的第二報文,所述第二報文包括所述預設的mac地址和所述虛擬機或容器的ip地址;

確定模塊,用于根據所述虛擬機或容器的ip地址、以及所述對應關系,確定所述虛擬機或容器的mac地址;

所述替換模塊還用于將所述第二報文中所述預設的mac地址替換為所述虛擬機或容器的mac地址;

所述發送模塊還用于將替換mac地址后的第二報文發送給所述虛擬機或容器。

本發明實施例提供的大規模組網中報文轉發方法及裝置,通過葉子節點下屬的所有虛擬機或容器可以對應有一個預設的mac地址,也可以對應有幾個預設的mac地址,但預設的mac地址的個數小于所有虛擬機或容器的mac地址的個數,以使葉子節點對外表現為一個mac地址或者是幾個mac地址,而一個mac地址或者是幾個mac地址可對應所有虛擬機或容器的mac地址。當根節點接收到葉子節點發送的第一報文后,將第一報文轉發出去,且根節點接收到同一葉子節點發送的第一報文的源mac地址均呈現為固定的一個mac地址或幾個mac地址,因此,根節點的arp表項中只需記錄該固定的一個mac地址或幾個mac地址與該葉子節點的對應關系即可,不需記錄每個葉子節點下屬的每個虛擬機或容器的mac地址和ip地址的對應關系,降低了網關設備的arp表項的占用率,增大了通過該網關設備可組建的網絡規模。

附圖說明

圖1為本發明實施例提供的大規模組網中報文轉發方法流程圖;

圖1a為本發明實施例提供的大規模組網中報文轉發方法適用的網絡結構圖;

圖1b為本發明實施例提供的第一報文的幀格式的示意圖;

圖2為本發明實施例提供的大規模組網中報文轉發裝置的結構圖。

具體實施方式

圖1為本發明實施例提供的大規模組網中報文轉發方法流程圖;圖1a為本發明實施例提供的大規模組網中報文轉發方法適用的網絡結構圖。本發明實施例針對現有技術中的網關設備的arp表項并沒有這么大的空間,該網關設備實際連接的虛擬機或者容器的個數遠比480k小,導致通過該網關設備可組建的網絡規模較小,提供了適用于交換機通信的方法,該方法具體包括步驟如下:

步驟s101、葉子節點接收其下屬的虛擬機或容器發送的第一報文,所述第一報文包括所述虛擬機或容器的mac地址,以及所述虛擬機或容器的ip地址。

如圖1a所示,根節點下面包括若干個葉子節點,每個葉子節點下面可掛有若干個服務器,每個服務器可虛擬化為多個虛擬機或容器,根節點具體可以是網關設備,每個葉子節點上增加一個地址池,該地址池是對外通信的mac地址池,里面保存本leaf葉子節點所連接的vm虛擬機或容器的真實mac地址,ip地址的對應關系列表。如果這樣每個leaf葉子節點下面的vm虛擬機或者容器在與外界通信的時候,都體現為一個固定的mac地址的時候,則不需要維持列表中加入一項表示該葉子節點的mac地址的列表,如果是leaf葉子節點下面的vm虛擬機或者容器在與外界通信的時候體現為少數的幾個固定的mac地址的話,那么就將這幾個mac地址,分別與被自己替換的vm虛擬機或容器的真實mac地址以及該vm虛擬機或容器的ip進行一一對應的記錄。

本實施例中的每個葉子節點對外表現為一個mac地址或者是幾個mac地址,可以根據通信的需要,例如某些功能或類型或者是屬于某用戶的vm虛擬機或容器,被統一被分為統一的一個mac,而另一類功能或類型或者用戶的vm虛擬機或者容器被統一分為另一個mac地址。也可以根據葉子節點地址池尋址的計算效率來區分,如果是整體一個大的記錄表里尋找的效率低,也可以分為不同的mac地址對應不同的mac地址和ip地址記錄表,例如根據ip地址的地址段,或者是ip地址的哈希值等等之類,來劃分各自所屬的不同的mac地址。

在本實施例中,涉及到葉子節點轉發報文進行通信的情況有3種:

第一種:葉子節點接收到其下屬的虛擬機或容器發送的第一報文,葉子節點需要將該第一報文通過該根節點發送給其他設備,以便實現虛擬機或容器和其他設備之間的通信。

第二種:葉子節點接收到根節點發送的第二報文,葉子節點需要將該第二報文轉發給其下屬的虛擬機或容器,以便實現虛擬機或容器和其他設備之間的通信。

第三種:葉子節點接收到其他設備發送的arp請求,葉子節點針對該arp請求進行應答。

本實施例及下面實施例將逐一介紹該3種情況下,葉子節點對相應報文進行轉發的方法。

在本實施例種,其他設備具體可以是除該葉子節點下屬的虛擬機或容器之外的虛擬機或容器。

對于第一種情況,葉子節點接收其下屬的虛擬機或容器發送的第一報文,圖1b為本發明實施例提供的第一報文的幀格式的示意圖。如圖1b所示,第一報文包括目的mac地址、源mac地址、ip地址、報文內容等,其中,目的mac地址、源mac地址構成第一報文的以太頭,ip地址構成第一報文的ip頭。在本實施例中,虛擬機或容器發送給葉子節點的第一報文的源mac地址是虛擬機或容器的源mac地址,ip地址是虛擬機或容器的ip地址。

步驟s102、所述葉子節點將所述第一報文中所述虛擬機或容器的mac地址替換為預設的mac地址,并將替換mac地址后的第一報文發送給根節點,所述葉子節點存儲有所述虛擬機或容器的mac地址、所述虛擬機或容器的ip地址、以及預設的mac地址的對應關系。

葉子節點接收到其下屬的虛擬機或容器發送的第一報文后,將第一報文中的源mac地址即虛擬機或容器的mac地址替換為葉子節點本地地址池中的mac地址,地址池中的mac地址是預設的mac地址,該預設的mac地址具體可以是葉子節點自身的mac地址,也可以是預設的一個mac地址,還可以是預設的多個mac地址中的一個。另外,第一報文中的ip地址不變,始終是虛擬機或容器的ip地址,后續在通信過程中利用虛擬機或容器的ip地址去查詢葉子節點的地址池里的列表來區分不同的虛擬機或容器,找到該虛擬機或者容器對應的真實mac地址。

假設預設的mac地址是maca1,葉子節點將第一報文中的源mac地址即虛擬機或容器的mac地址替換為maca1之后,將替換mac地址后的第一報文發送給根節點,葉子節點存儲有所述虛擬機或容器的mac地址、所述虛擬機或容器的ip地址、以及預設的mac地址的對應關系,在本實施例中,葉子節點下屬的所有虛擬機或容器可以對應有一個預設的mac地址,也可以對應有幾個預設的mac地址,但預設的mac地址的個數小于所有虛擬機或容器的mac地址的個數,以使葉子節點對外表現為一個mac地址或者是幾個mac地址,而一個mac地址或者是幾個mac地址可對應所有虛擬機或容器的mac地址。當根節點接收到葉子節點發送的第一報文后,將第一報文轉發出去,且根節點接收到同一葉子節點發送的第一報文的源mac地址均呈現為固定的一個mac地址或幾個mac地址,因此,根節點的arp表項中只需記錄該固定的一個mac地址或幾個mac地址與該葉子節點的對應關系即可,不需記錄每個葉子節點下屬的每個虛擬機或容器的mac地址和ip地址的對應關系,降低了網關設備的arp表項的占用率,增大了通過該網關設備可組建的網絡規模。

步驟s103、所述葉子節點接收所述根節點發送的第二報文,所述第二報文包括所述預設的mac地址和所述虛擬機或容器的ip地址。

對于第二種情況,葉子節點接收到根節點發送的第二報文,該第二報文是其他設備經過根節點和該葉子節點發送給虛擬機或容器的報文,根據步驟s102可知,根節點發送給其他設備的第一報文的源mac是預設的mac地址,則其他設備針對第一報文回復第二報文時,將第一報文的源mac即預設的mac地址作為目的mac地址,第二報文中的ip地址依然是第一報文中的ip地址即虛擬機或容器的ip地址。

步驟s104、所述葉子節點根據所述虛擬機或容器的ip地址、以及所述對應關系,確定所述虛擬機或容器的mac地址。

葉子節點接收到第二報文后,根據步驟s102所述的對應關系,確定虛擬機或容器的ip地址對應的虛擬機或容器的mac地址,在本實施例中,可選的,每個虛擬機或容器的ip地址是不同的,這樣根據虛擬機或容器的ip地址便可唯一的確定虛擬機或容器的mac地址,即使葉子節點對外呈現的其下屬的虛擬機或容器的mac地址是固定的一個mac地址和幾個mac地址。

步驟s105、所述葉子節點將所述第二報文中所述預設的mac地址替換為所述虛擬機或容器的mac地址,并將替換mac地址后的第二報文發送給所述虛擬機或容器。

葉子節點根據第二報文中虛擬機或容器的ip地址,確定虛擬機或容器的mac地址后,將第二報文中的目的mac地址即預設的mac地址替換為所述虛擬機或容器的mac地址,并將替換mac地址后的第二報文發送給所述虛擬機或容器。

本發明實施例通過葉子節點下屬的所有虛擬機或容器可以對應有一個預設的mac地址,也可以對應有幾個預設的mac地址,但預設的mac地址的個數小于所有虛擬機或容器的mac地址的個數,以使葉子節點對外表現為一個mac地址或者是幾個mac地址,而一個mac地址或者是幾個mac地址可對應所有虛擬機或容器的mac地址。當根節點接收到葉子節點發送的第一報文后,將第一報文轉發出去,且根節點接收到同一葉子節點發送的第一報文的源mac地址均呈現為固定的一個mac地址或幾個mac地址,因此,根節點的arp表項中只需記錄該固定的一個mac地址或幾個mac地址與該葉子節點的對應關系即可,不需記錄每個葉子節點下屬的每個虛擬機或容器的mac地址和ip地址的對應關系,降低了網關設備的arp表項的占用率,增大了通過該網關設備可組建的網絡規模。

在上述實施例的基礎上,對于第三種情況,所述葉子節點根據所述預設的mac地址,對其接收到的arp請求進行應答,所述arp請求包括所述葉子節點下屬的虛擬機或容器的ip地址。某個虛擬機或者容器為了讓其他vm虛擬機或者容器知道自己對外的mac地址,虛擬機或者容器所屬的葉子節點接收其他vm虛擬機或者容器發送的arp請求,該arp請求包括虛擬機或者容器的ip地址,葉子節點根據該虛擬機或者容器的ip地址查詢內部的地址池,發現該ip地址是自己下面的某個虛擬機或者服務器的ip地址,則該葉子節點不將該arp請求轉發出去,而是葉子節點直接將該arp請求用自己的地址池中的mac地址進行應答,并記錄下該條替換對應的虛擬機或者容器的真實的mac地址,以及ip地址,和被替換成的mac地址。這樣后續所有發送到該vm虛擬機或者容器的報文將首先發送到本葉子節點上,然后葉子節點再查詢內部地址池后轉發該報文到該虛擬機或者容器。

本實施例相比于根據根節點arp表項大小來部署它下面鏈接的葉子節點的數目的方式,某個根節點下部署的葉子節點設備的數目將不受到限制,或者某個根節點所鏈接的所有的葉子節點上可以運行的虛擬機或者容器的數目將不受到限制。而且并不需要對現網的網關設備進行替換,利用舊設備來實現大規模組網,并且虛擬化的顆粒度不受限制,節約了投資成本的同時,還提高了網絡設備的利用率。

圖2為本發明實施例提供的大規模組網中報文轉發裝置的結構圖。本實施提供的大規模組網中報文轉發裝置可以是上述實施例中的葉子節點,也可以是葉子節點中的一個模塊或裝置,本發明實施例提供的大規模組網中報文轉發裝置可以執行大規模組網中報文轉發方法實施例提供的處理流程,如圖2所示,大規模組網中報文轉發裝置包括接收模塊21、替換模塊22、發送模塊23、確定模塊24。

接收模塊21用于接收虛擬機或容器發送的第一報文,所述第一報文包括所述虛擬機或容器的mac地址,以及所述虛擬機或容器的ip地址;

替換模塊22用于將所述第一報文中所述虛擬機或容器的mac地址替換為預設的mac地址;

發送模塊23用于將替換mac地址后的第一報文發送給根節點,所述葉子節點存儲有所述虛擬機或容器的mac地址、所述虛擬機或容器的ip地址、以及預設的mac地址的對應關系;

接收模塊21還用于接收所述根節點發送的第二報文,所述第二報文包括所述預設的mac地址和所述虛擬機或容器的ip地址;

確定模塊24用于根據所述虛擬機或容器的ip地址、以及所述對應關系,確定所述虛擬機或容器的mac地址;

替換模塊22還用于將所述第二報文中所述預設的mac地址替換為所述虛擬機或容器的mac地址;

發送模塊23還用于將替換mac地址后的第二報文發送給所述虛擬機或容器。

本發明實施例通過葉子節點下屬的所有虛擬機或容器可以對應有一個預設的mac地址,也可以對應有幾個預設的mac地址,但預設的mac地址的個數小于所有虛擬機或容器的mac地址的個數,以使葉子節點對外表現為一個mac地址或者是幾個mac地址,而一個mac地址或者是幾個mac地址可對應所有虛擬機或容器的mac地址。當根節點接收到葉子節點發送的第一報文后,將第一報文轉發出去,且根節點接收到同一葉子節點發送的第一報文的源mac地址均呈現為固定的一個mac地址或幾個mac地址,因此,根節點的arp表項中只需記錄該固定的一個mac地址或幾個mac地址與該葉子節點的對應關系即可,不需記錄每個葉子節點下屬的每個虛擬機或容器的mac地址和ip地址的對應關系,降低了網關設備的arp表項的占用率,增大了通過該網關設備可組建的網絡規模。

在上述實施例的基礎上,所述預設的mac地址是所述葉子節點的mac地址;或者,所述預設的mac地址是預設的多個mac地址中的一個;或者,所述預設的mac地址是預設的一個mac地址。

發送模塊23還用于根據所述預設的mac地址,對其接收到的arp請求進行應答,所述arp請求包括所述葉子節點下屬的虛擬機或容器的ip地址。

本發明實施例提供的大規模組網中報文轉發裝置可以具體用于執行上述圖1所提供的方法實施例,具體功能此處不再贅述。

本發明實施例相比于根據根節點arp表項大小來部署它下面鏈接的葉子節點的數目的方式,某個根節點下部署的葉子節點設備的數目將不受到限制,或者某個根節點所鏈接的所有的葉子節點上可以運行的虛擬機或者容器的數目將不受到限制。而且并不需要對現網的網關設備進行替換,利用舊設備來實現大規模組網,并且虛擬化的顆粒度不受限制,節約了投資成本的同時,還提高了網絡設備的利用率。

綜上所述,本發明實施例通過葉子節點下屬的所有虛擬機或容器可以對應有一個預設的mac地址,也可以對應有幾個預設的mac地址,但預設的mac地址的個數小于所有虛擬機或容器的mac地址的個數,以使葉子節點對外表現為一個mac地址或者是幾個mac地址,而一個mac地址或者是幾個mac地址可對應所有虛擬機或容器的mac地址。當根節點接收到葉子節點發送的第一報文后,將第一報文轉發出去,且根節點接收到同一葉子節點發送的第一報文的源mac地址均呈現為固定的一個mac地址或幾個mac地址,因此,根節點的arp表項中只需記錄該固定的一個mac地址或幾個mac地址與該葉子節點的對應關系即可,不需記錄每個葉子節點下屬的每個虛擬機或容器的mac地址和ip地址的對應關系,降低了網關設備的arp表項的占用率,增大了通過該網關設備可組建的網絡規模;相比于根據根節點arp表項大小來部署它下面鏈接的葉子節點的數目的方式,某個根節點下部署的葉子節點設備的數目將不受到限制,或者某個根節點所鏈接的所有的葉子節點上可以運行的虛擬機或者容器的數目將不受到限制。而且并不需要對現網的網關設備進行替換,利用舊設備來實現大規模組網,并且虛擬化的顆粒度不受限制,節約了投資成本的同時,還提高了網絡設備的利用率。

在本發明所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。

另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用硬件加軟件功能單元的形式實現。

上述以軟件功能單元的形式實現的集成的單元,可以存儲在一個計算機可讀取存儲介質中。上述軟件功能單元存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)或處理器(processor)執行本發明各個實施例所述方法的部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(read-onlymemory,rom)、隨機存取存儲器(randomaccessmemory,ram)、磁碟或者光盤等各種可以存儲程序代碼的介質。

本領域技術人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的裝置的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。

最后應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 白河县| 永济市| 宜兴市| 仪陇县| 正镶白旗| 汉中市| 射洪县| 安仁县| 苗栗县| 扶绥县| 离岛区| 泾阳县| 深泽县| 赤水市| 措勤县| 太白县| 明星| 铜山县| 东阿县| 丹寨县| 伊宁县| 遵化市| 星座| 岫岩| 鄂托克旗| 安溪县| 开平市| 香河县| 新化县| 肇州县| 启东市| 白城市| 醴陵市| 博罗县| 石泉县| 平顶山市| 宣恩县| 烟台市| 辉县市| 佳木斯市| 盱眙县|