TWI661698B - 轉發乙太網路封包的方法和裝置 - Google Patents

轉發乙太網路封包的方法和裝置 Download PDF

Info

Publication number
TWI661698B
TWI661698B TW102126654A TW102126654A TWI661698B TW I661698 B TWI661698 B TW I661698B TW 102126654 A TW102126654 A TW 102126654A TW 102126654 A TW102126654 A TW 102126654A TW I661698 B TWI661698 B TW I661698B
Authority
TW
Taiwan
Prior art keywords
address
packet
ethernet packet
mac
received ethernet
Prior art date
Application number
TW102126654A
Other languages
English (en)
Other versions
TW201436508A (zh
Inventor
田世坤
王穎斌
陳偉才
陳波
Original Assignee
香港商阿里巴巴集團服務有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 香港商阿里巴巴集團服務有限公司 filed Critical 香港商阿里巴巴集團服務有限公司
Publication of TW201436508A publication Critical patent/TW201436508A/zh
Application granted granted Critical
Publication of TWI661698B publication Critical patent/TWI661698B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2596Translation of addresses of the same type other than IP, e.g. translation from MAC to MAC addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本申請案提供轉發乙太網路封包的方法和裝置。該方法包括對接收到的乙太網路封包的IP位址進行哈希(Hash)運算而得到哈希值;基於所述哈希值,利用預先設置的查找表來判定是否需要對接收到的乙太網路封包進行MAC網路位址轉換處理,其中,所述預先設置的查找表包括一個或多個索引值以及與各索引值對應的一個或多個資料集合,所述索引值與透過對虛擬機的IP位址進行哈希運算得到的值相對應,所述資料集合包括虛擬機的IP位址、本地MAC位址和對應的全局MAC位址;以及根據判定結果,進行對接收到的乙太網路封包的轉發。藉此可以提高MAC網路位址轉換速度,能夠在減少核心交換機的MAC表尺寸規模和提高虛擬比的情況下進一步提高乙太網路封包轉發效率,使網路收發封包性能最佳化。

Description

轉發乙太網路封包的方法和裝置
本申請案係有關電腦通信領域,具體地說,本申請案係有關一種轉發乙太網路封包的方法和裝置。
這裏的內容儘管是在先前技術標題下闡述的,但是其中也包含了本申請案發明人的發現和構思,所以不應被完全視為現有技術。
在乙太網路中,核心交換機的每一個埠都級聯很多主機(實體機),並且一般都操作在全雙工方式。也就是說,核心交換機能同時連通許多對埠,使每一對相互通信的實體機都能像獨佔通信媒體那樣無衝突地傳輸資料。而在每一台實體機上都可以實現若干虛擬機,每一台虛擬機都有為其預先配置的IP位址和MAC地址。核心交換機憑藉其上儲存的MAC位址表,與所述在實體機上實現的虛擬機進行資料傳輸,該MAC位址表包括各MAC位址和交換機埠的對應關係。
當從發送方(實體機)接收到封包時,核心交換機根據其上儲存的MAC位址表,找到與封包中的目的地MAC 地址相對應的埠,並將封包發送到與該埠連接的實體機(接收方)。當在實體機上接收到來自核心交換機的封包(進來的封包)時,實體機根據該進來的封包封包中的目的地MAC位址而將該進來的封包封包轉發到具有相應MAC位址的虛擬機。相應地,當在實體機上接收到來自虛擬機的封包(出去的封包)時,實體機將該出去的封包封包直接轉發給核心交換機,然後由核心交換機如上所述那樣根據其上儲存的MAC位址表而再發送給相應的目的地實體機。
然而,上述乙太網路中的核心交換機的MAC位址表的容量是有限的,隨著雲計算環境下虛擬機數量的不斷增加,核心交換機的MAC位址表的容量將達到極限,從而不能容納更多虛擬機。
為了提高虛擬比,而不必更換核心交換機相關硬體,目前一般透過在實體機上透過基於MAC網路位址轉換(NAT)轉發乙太網路封包來解決上述問題。在這種方法中,為若干不同的虛擬機(擁有不同的本地MAC位址和IP位址)分配一個共有的MAC位址,稱為全局MAC位址,並在實體機上維護一個查找表,以記錄虛擬機的IP位址、本地MAC位址和全局MAC位址的對應關係。當接收到來自虛擬機的封包(出去的封包)時,實體機依據封包中的來源IP位址在查找表中查找該IP位址對應的全局MAC位址,並將封包中的來源MAC地址替換為全局MAC地址,再將封包轉發給核心交換機。當接收到來自 核心交換機的封包(進來的封包)時,在封包中的目的地MAC位址為全局MAC位址的情況下,實體機依據封包中的目的地IP位址而在查找表中查找該IP位址對應的本地MAC位址,並將封包中的目的地MAC地址替換為本地MAC位址,然後再轉發給具有該本地MAC位址的虛擬機。由於在核心交換機的MAC表中只需要記錄全局MAC位址,而一個全局MAC位址可以對應多個虛擬機的本地MAC位址,此方法減少了核心交換機的MAC表占用量,可支持更多的虛擬機。
然而,在基於這樣的MAC網路位址轉換的轉發乙太網路封包的方法中,儘管透過MAC網路位址轉換可以減小核心交換機MAC表尺寸規模,但是MAC網路位址轉換速度較為緩慢,乙太網路封包轉發效率較低,使得網路收發封包的性能受到很大影響。
因此,本申請案的主要目的在於提供一種能夠更有效地轉發乙太網路封包並且同時減少核心交換機的MAC表尺寸規模和提高虛擬比的技術,從而克服上述缺陷。
根據本申請案的一個態樣,提供一種轉發乙太網路封包的方法,其特徵在於,包括:對接收到的乙太網路封包的IP位址進行哈希(Hash)運算而得到哈希值;基於所述哈希值,利用預先設置的查找表來判定是否需要對接收到的乙太網路封包進行MAC網路位址轉換處理,其中, 所述預先設置的查找表包括一個或多個索引值以及與各索引值對應的一個或多個資料集合,所述索引值與透過對虛擬機的IP位址進行哈希運算而得到的值相對應,所述資料集合包括虛擬機的IP位址、本地MAC位址和對應的全局MAC位址;以及根據判定結果,進行對接收到的乙太網路封包的轉發。
根據本申請案的另一態樣,提供一種轉發乙太網路封包的裝置,其特徵在於,包括:運算模組,用以對接收到的乙太網路封包的IP位址進行哈希運算而獲得到哈希值;判定模組,用以基於所述哈希值,利用預先設置的查找表來判定是否需要對接收到的乙太網路封包進行MAC網路位址轉換處理,其中,所述預先設置的查找表包括一個或多個索引值以及與各索引值對應的一個或多個資料集合,所述索引值與透過對虛擬機的IP位址進行哈希運算而獲得到的值相對應,所述資料集合包括虛擬機的IP位址、本地MAC位址和對應的全局MAC位址;以及轉發模組,用以根據判定結果,進行對接收到的乙太網路封包的轉發。
與現有技術相比,根據本申請案的技術方案,能夠提高MAC網路位址轉換速度,進而能夠在減少核心交換機的MAC表尺寸規模和提高虛擬比的情況下進一步提高乙太網路封包轉發效率,使網路收發封包的性能最佳化。
500‧‧‧裝置
510‧‧‧運算模組
520‧‧‧判定模組
530‧‧‧轉發模組
此處所說明的附圖用來提供對本申請案的進一步理解,構成本申請案的一部分,本申請案的示意性實施例及其說明用以解釋本申請案,並不構成對本申請案的不當限定。在附圖中:圖1示出根據本申請案一個實施例的轉發乙太網路封包的方法的流程圖;圖2示出根據本申請案另一個實施例的轉發乙太網路封包的方法的流程圖;圖3示出根據本申請案一個實施例的MAC網路位址轉換處理的流程圖;圖4示意性地示出了IP封包和ARP封包的傳輸格式;圖5示出根據本申請案一個實施例的轉發乙太網路封包的裝置的方塊圖。
如上所述,本申請案發明人注意到,在現有的實體機上轉發乙太網路封包的方法中,需要依據實際的IP位址在查找表中進行遍歷查找,亦即,在查找過程中,須將接收到的封包中的IP位址與查找表中的每一個IP位址逐個對比直至IP位址吻合為止,進而查找到虛擬機的IP位址、本地MAC位址和全局MAC位址的對應關係來進行MAC網路位址轉換處理。這樣的查找導致MAC網路位址轉換速度較為緩慢,乙太網路封包轉發效率降低,從而成 為網路收發封包性能的瓶頸。
為此,本申請案的主要思想在於,透過實現更快速的查找方式來提高MAC網路位址轉換速度,從而提高乙太網路封包轉發效率,進而使網路收發封包性能最佳化。具體而言,本發明人想到,如果透過將所有虛擬機的IP位址、本地MAC位址和全局MAC位址的對應關係按照某種規則而預先進行分組,對每一個分組建立一個索引值,然後在轉發乙太網路封包時的MAC網路位址轉換過程中,透過索引值來查找所需虛擬機的MAC位址對應關係。藉此可以將查找範圍從所有虛擬機縮小至小部分有關的虛擬機,從而可以提高查找效率,進而提高MAC網路位址轉換速度和乙太網路封包的轉發效率,使網路收發封包的性能最佳化。
為了使本申請案的目的、技術方案和優點更加清楚,以下結合附圖及具體實施例,對本申請案作進一步地詳細說明。
參考圖1,圖1示出根據本申請案一個實施例的轉發乙太網路封包的方法的流程圖。該方法包括步驟S110-步驟S130,這些步驟可以在作為乙太網路中的網路節點的實體機上予以實現。
在步驟S110處,對接收到的乙太網路封包的IP位址進行哈希運算而得到哈希值。
具體而言,實體機(接收方)可以從核心交換機接收由其他實體機(發送方)發送來的乙太網路封包。
在一個實施例中,乙太網路封包可以包括根據網際網路協定(IP,Internet Protocol)傳輸的諸如IPv4(Internet Protocol version 4,IPv4,網際網路協議第四版)封包之類的IP封包和/或根據地址解析協議(ARP,Address Resolution Protocol)傳輸的ARP封包。圖4示意性地示出了IP封包和ARP封包的傳輸格式。
哈希(hash)運算是本領域技術人員熟知的一種演算法,用以將任意長度的二進位值映射為固定長度的較小二進位值,這個較小二進位值被稱為哈希值。這裏透過對接收到的乙太網路封包的IP位址進行哈希運算而得到IP位址的相應哈希值。在一個實施例中,可以透過取IP位址的後若干位作為哈希值。例如IP地址值為192.168.0.1,則取其後16位的值“0.1”而得到哈希值為1。在此需要指出的是,可以採用本領域已知或未來將要開發的任意哈希運算演算法或類似演算法而得到與IP位址對應的哈希值,但並不限於上述實施例中的方式,只要該演算法與稍後描述的查找表的建構中使用的演算法一致即可。
在步驟S120處,基於所述哈希值,利用預先設置的查找表來判定是否需要對接收到的乙太網路封包進行MAC網路位址轉換處理。
其中,所述預先設置的查找表可以包括一個或多個索引值以及與各索引值對應的一個或多個資料集合,所述索引值可以與透過對虛擬機的IP位址進行哈希運算而得到的值相對應,所述資料集合可以包括虛擬機的IP位址、 本地MAC位址和對應的全局MAC位址。
下面結合說明性示例描述查找表的預先設置。例如,存在A、B、C三台虛擬機的IP位址、本地MAC位址、全局MAC地址分別如表1所示:
透過對三台虛擬機的IP位址進行如上所述取後16位的哈希運算而得到相應的值分別為1、2、60,將其用作為索引值,將三台虛擬機的IP位址、本地MAC位址、全局MAC位址用作為資料集合與相應索引值對應,藉此構成查找表如表2所示:
在一個實施例中,所述資料集合還可以包括配置/取消/查詢介面,用以配置/取消/查詢虛擬機的IP位址、本地MAC位址和對應的全局MAC位址。
例如,上述A、B、C三台虛擬機的配置/取消/查詢介 面分別為:vlan.1、vlan.1、vlan.1,則構成的查找表可以如表3所示:
上述說明性示例僅用於說明目的,並不用來限制本申請案的範圍。應理解到的是,查找表中的索引值只要與所計算的哈希值相對應即可,並不限於是所計算出的哈希值本身,而是可以為該哈希值的任意運算值,例如可以是所計算的哈希值的平方。另外,對虛擬機對應的位址資料集合(IP位址、MAC位址、全局MAC位址)進行分組的演算法不限於上述哈希運算,可以透過本領域已知或未來將要開發的任意其他合適哈希運算演算法或類似演算法來建構透過索引值以查找包括相關虛擬機的IP位址、本地MAC位址和全局MAC位址的資料集合的查找表。
在一種更具體實現中,查找表可以為哈希表,哈希表可以是一個大小為64K的陣列,陣列的每一個元素可以是一個鏈表,鏈表的每一個元素可以為一個(IP位址,本地MAC位址,全局MAC位址)元組(亦即,資料集合)。在查找表建構過程中將一個元組存放到哈希表時,先透過對虛擬機的IP位址進行哈希運算(例如,透過取後若干位)而得到一個0~64k-1的整數,亦即哈希值,然後將 這個值用作為陣列元素的下標(亦即,索引值),以得到下標所對應的鏈表,再將這個元組插入到該鏈表的頭部,由此類推,創建包括所有虛擬機的IP位址、本地MAC位址、全局MAC位址的對應關係的整個查找表。
本領域技術人員可以理解到,本申請案並不限於上述具體實現,而是可以透過本領域已知或未來將要開發的任意合適方式來建構透過索引值以查找包括相關虛擬機的IP位址、本地MAC位址和全局MAC位址的資料集合的查找表。
另外可以注意到,查找表中的索引值實際上是與虛擬機的IP位址對應的哈希值。由於哈希運算的原理,導致不同虛擬機的IP位址的哈希值可能相同,所以在上述預先設置的查找表中,對應於一個索引值,可以存在有一個或多個資料集合,每一個資料集合可以包括不同虛擬機的IP位址、本地MAC位址和對應的全局MAC位址。這樣,透過將步驟S110中所得到的與接收到的乙太網路封包的IP位址對應的哈希值與該查找表中的索引值進行比較,就可以將虛擬機IP位址的查找範圍縮小到小範圍的相關虛擬機IP位址,藉此可以快速查找到與接收到的乙太網路封包對應的虛擬機的本地MAC位址或者全局MAC位址,以供後續的MAC網路位址轉換處理用。
透過將步驟S110中所得到的與接收到的乙太網路封包的IP位址對應的哈希值與該查找表中的索引值進行比較,可以判定與接收到的乙太網路封包的IP位址對應的 哈希值是否在查找表中存在有對應的索引值。具體而言,如果存在有對應的索引值,則可以判定需要對接收到的乙太網路封包進行MAC網路位址轉換處理,如果不存在有對應的索引值,則可以判定不需要對接收到的乙太網路封包進行MAC網路位址轉換處理。該MAC網路位址轉換處理將在稍後結合圖3來進行具體的描述。
接下來,在步驟S130處,根據判定結果,進行對接收到的乙太網路封包的轉發。
具體而言,當判定需要對接收到的乙太網路封包進行MAC網路位址轉換處理時,則對接收到的乙太網路封包進行MAC網路位址轉換處理後再轉發。當判定不需要對接收到的乙太網路封包進行MAC網路位址轉換處理時,則不對接收到的乙太網路封包進行MAC網路位址轉換處理,而直接轉發。
透過本實施例的轉發乙太網路封包的方法,可以實現MAC位址的快速查找,提高MAC網路位址轉換速度,進而能夠在減少核心交換機的MAC表尺寸規模和提高虛擬比的情況下進一步提高乙太網路封包轉發效率,以使網路收發封包的性能最佳化。
下面將結合圖2對本申請案的實施方式進行更詳細的描述。
圖2是根據本申請案另一個實施例的轉發乙太網路封包的方法的流程圖。該方法包括步驟S210-步驟S230。為了簡潔起見,這裏並未示出與圖1中的步驟S110相同的 步驟,亦即,對接收到的乙太網路封包的IP位址進行哈希運算而得到哈希值。關於該步驟的細節可參見上面的描述。
在步驟S210處,判定上述哈希值是否與查找表中的一個或多個索引值中的其中一個相同。
如果哈希值與查找表中的一個或多個索引值中的其中一個相同,則判定需要對接收到的乙太網路封包進行MAC網路位址轉換處理,流程進到步驟S220。
在步驟S220處,對接收到的乙太網路封包進行MAC網路位址轉換處理。
這裏,透過對接收到的乙太網路封包的目的地MAC位址或來源MAC位址進行相應轉換處理,可以減小核心交換機的MAC位址表尺寸規模並提高虛擬比。關於該MAC網路位址轉換處理的細節將在稍後結合圖3而進行詳細描述。
隨後,在步驟S230處,轉發接收到的乙太網路封包。
具體而言,實體機可以將接收到的來自核心交換機的乙太網路封包(進來的封包)根據封包中的目的地MAC位址轉發給相應的虛擬機,並且可以將接收到的來自虛擬機的乙太網路封包(出去的封包)轉發給核心交換機,然後核心交換機根據封包中的目的地MAC位址轉發到相應的目的地埠。
回到步驟S210,如果哈希值與查找表中的一個或多 個索引值中的任一個都不同,則判定不需要對接收到的乙太網路封包進行MAC網路位址轉換處理,流程進到上述步驟S230。
儘管上述實施例描述的是透過判定哈希值是否與一個或多個索引值的其中一個相同來判定是否對接收到的乙太網路封包進行MAC網路位址轉換處理,但是本申請案並不限於此。如同上面所提到的,查找表中的索引值只要與所計算的哈希值相對應即可,並不限於是所計算出的哈希值本身,而是可以為該哈希值的任意運算值,例如可以是所計算的哈希值的平方。在這樣的情況下,可以透過判定哈希值的任意運算值是否與一個或多個索引值中的其中一個相同,換言之,可以透過判定哈希值是否與一個或多個索引值中的其中一個相對應,以判定是否進行MAC網路位址轉換處理。
透過本實施例的轉發乙太網路封包的方法,可以實現MAC位址的快速簡單查找,更有效地提高MAC網路位址轉換速度,進而能夠在減少核心交換機的MAC表尺寸規模和提高虛擬比的情況下進一步提高乙太網路封包轉發效率,以使網路收發封包的性能最佳化。
下面結合圖3描述本申請案的MAC網路位址轉換處理。圖3示出根據本申請案一個實施例的MAC網路位址轉換處理的流程圖,包括步驟S310-步驟S350。
在步驟S310處,判定接收到的乙太網路封包是進來的封包還是出去的封包。
如同前面所提到的,在本說明書中,進來的封包是指實體機從核心交換機接收到的乙太網路封包,出去的封包是指實體機從虛擬機接收到的乙太網路封包。
在一個實施例中,乙太網路封包可以為諸如IPv4封包之類的IP封包或ARP封包,其傳輸格式如圖4所示。
在一個實施例中,例如,可以透過判定封包中的乙太網路來源IP位址是否為本地IP位址來進行上述判定。具體而言,當判定乙太網路來源IP位址是實體機的本地IP位址時,可以判定所接收到的乙太網路封包是出去的封包。當判定乙太網路來源IP位址不是實體機的本地IP位址時,可以判定所接收到的乙太網路封包是進來的封包。應明白的是,這裏可以透過本領域已知或未來將要開發的任意合適方式來判定接收到的乙太網路封包是進來的封包還是出去的封包,而不限於前面所列舉的方式。
當在步驟S310判定接收到的乙太網路封包是進來的封包時,流程進到步驟S320。
在步驟S320處,判定接收到的乙太網路封包的目的地MAC位址是否為查找表中與所述索引值對應的包括乙太網路封包的IP位址的資料集合中的全局MAC位址。
具體而言,在上述步驟S210中判定出根據接收到的乙太網路封包中的IP位址(例如,圖4所示IP封包和ARP封包中的乙太網目的地IP位址)所計算的哈希值在查找表中存在對應的索引值之後,可以從與該索引值所對應的一個或多個資料集合中查找與該乙太網路封包的IP 位址對應的資料集合,從而查找到對應的全局MAC位址,進而可以判定接收到的乙太網路封包中的目的地MAC地址(例如,圖4所示IP封包和ARP封包中的乙太網目的地MAC位址)是否與查找到的全局MAC位址相同。
在一個實施例中,可以透過乙太網路封包的IP位址與該索引值對應的每一個資料集合中的IP位址進行逐個對比,以找到其對應的資料集合。應理解到,這裏可以透過本領域已知或未來將要開發的任意其他合適方式而從與該索引值所對應的一個或多個資料集合中查找與這個IP位址對應的資料集合,而不限於上面所列舉的方式。
當在步驟S320中判定接收到的乙太網路封包的目的地MAC位址是查找表中對應的全局MAC位址時,流程進到步驟S330。
在步驟S330處,將所述目的地MAC位址替換為查找表中與對應索引值相應的包括乙太網路封包的IP位址的資料集合中的本地MAC位址。
也就是說,將接收到的乙太網路封包的目的地MAC位址從全局MAC地址改為虛擬機的本地MAC位址,以便實體機將接收到的乙太網路封包轉發到相應的虛擬機。
在一個具體實施例中,當乙太網路封包為IP封包(如圖4所示)時,將該IP封包的報頭(preamble)中的乙太網目的地MAC位址替換為查找表中對應的虛擬機的本地MAC位址。當乙太網路封包為如圖4所示的ARP封 包時,不僅將該ARP封包的報頭中的乙太網目的地MAC位址,而且將ARP封包的有效載荷中的目的端MAC位址,都替換為查找表中對應的虛擬機的本地MAC位址。
回到步驟S320,當判定接收到的乙太網路封包的目的地MAC位址不是查找表中對應的全局MAC位址時,流程進到步驟S350。
在步驟S350處,不對接收到的乙太網路封包進行MAC網路位址轉換。從而MAC網路位址轉換處理結束。
回到步驟S310,當判定接收到的乙太網路封包是出去的封包時,流程進到步驟S340。
在步驟S340處,將接收到的乙太網路封包的來源MAC位址替換為查找表中與對應索引值相應的包括乙太網路封包的IP位址的資料集合中的全局MAC位址。
也就是說,將接收到的乙太網路封包的來源MAC位址從虛擬機的本地MAC位址改為虛擬機對應的全局MAC位址,以便實體機將接收到的乙太網路封包轉發到核心交換機,以由核心交換機將該乙太網路封包發送到相應目的地埠。
在一個具體實施例中,當乙太網路封包為IP封包(如圖4所示)時,將該IP封包的報頭中的乙太網路來源MAC位址替換為查找表中對應的虛擬機的全局MAC位址。當乙太網路封包為如圖4所示的ARP封包時,不僅將該ARP封包的報頭中的乙太網路來源MAC位址,而且將ARP封包的有效載荷中的發送端MAC位址,都替換 為查找表中對應的虛擬機的全局MAC位址。
藉此可以完成MAC網路位址轉換處理,實現核心交換機的MAC位址表尺寸規模的減小和虛擬比的提高。
至此,已經結合本申請案的實施例描述了根據本申請案一個態樣的轉發乙太網路封包的方法。相應地,根據本申請案的另一態樣,還提供了一種轉發乙太網路封包的裝置。
圖5示出根據本申請案一個實施例的轉發乙太網路封包的裝置500的方塊圖。如圖5所示,該裝置500可以包括運算模組510、判定模組520和轉發模組530。
更具體而言,運算模組510可以用來對接收到的乙太網路封包的IP位址進行哈希運算而得到哈希值。判定模組520可以用來基於該哈希值利用預先設置的查找表而判定是否需要對接收到的乙太網路封包進行MAC網路位址轉換處理。其中,預先設置的查找表可以包括一個或多個索引值以及與各索引值對應的一個或多個資料集合,所述索引值可以與透過對虛擬機的IP位址進行哈希運算而得到的值相對應,所述資料集合可以包括虛擬機的IP位址、本地MAC位址和對應的全局MAC位址。轉發模組530可以用來根據判定結果而進行對接收到的乙太網路封包的轉發。
在一個實施例中,當所述哈希值與所述一個或多個索引值中的其中一個相同時,判定模組520可以判定需要對接收到的乙太網路封包進行MAC網路位址轉換處理。當 所述哈希值與所述一個或多個索引值中的任一個都不同時,判定模組520可以判定不需要對接收到的乙太網路封包進行MAC網路位址轉換處理。
在一個實施例中,當判定需要對接收到的乙太網路封包進行MAC網路位址轉換處理時,轉發模組530可以對接收到的乙太網路封包進行MAC網路位址轉換處理後再轉發經過MAC網路位址轉換處理後的乙太網路封包。當判定不需要對接收到的乙太網路封包進行MAC網路位址轉換處理時,轉發模組530可以直接轉發接收到的乙太網路封包。
根據本實施例的轉發乙太網路封包的裝置,同樣可以實現MAC位址的快速查找,提高MAC網路位址轉換速度,進而能夠在減少核心交換機的MAC表尺寸規模和提高虛擬比的情況下進一步提高乙太網路封包轉發效率,使網路收發封包的性能最佳化。
以上描述的轉發乙太網路封包的裝置與之前描述的轉發乙太網路封包的方法的處理是對應的,因此,關於其具體細節,可以參見之前描述的轉發乙太網路封包的方法,這裏不再贅述。
本領域技術人員應明白,本申請案的實施例可提供為方法、系統或電腦程式產品。因此,本申請案可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體態樣的實施例的形式。而且,本申請案可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於 磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
以上所述僅為本申請案的實施例而已,並不用來限制本申請案。對於本領域技術人員來說,本申請案可以有各種修改和變化。凡在本申請案的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請案的申請專利範圍之內。

Claims (12)

  1. 一種轉發乙太網路封包的方法,其特徵在於,包括:對接收到的乙太網路封包的IP位址進行哈希(Hash)運算而得到哈希值;基於該哈希值,利用預先設置的查找表來判定是否需要對接收到的乙太網路封包進行MAC網路位址轉換處理,其中,該預先設置的查找表包括一個或多個索引值以及與各索引值對應的一個或多個資料集合,該索引值與透過對虛擬機的IP位址進行哈希運算所得到的值相對應,該資料集合包括虛擬機的IP位址、本地MAC位址和對應的全局MAC位址;以及根據判定結果,進行對接收到的乙太網路封包的轉發以及將該哈希值與該預先設置的查找表的該索引值進行比較,其中,該MAC網路位址轉換處理的步驟包括:判定接收到的乙太網路封包是進來的封包還是出去的封包;如果接收到的乙太網路封包是進來的封包,並且接收到的乙太網路封包的目的地MAC位址是查找表中與該索引值對應的包括乙太網路封包的IP位址的資料集合中的全局MAC位址,則將該目的地MAC位址替換為查找表中與該索引值對應的包括乙太網路封包的IP位址的資料集合中的本地MAC位址;以及如果接收到的乙太網路封包是出去的封包,則將接收到的乙太網路封包的來源MAC位址替換為查找表中與該索引值對應的包括乙太網路封包的IP位址的資料集合中的全局MAC位址。
  2. 根據申請專利範圍第1項所述的方法,其中,該基於該哈希值從該查找表中判定是否需要對乙太網路封包進行MAC網路位址轉換處理的步驟包括:如果該哈希值與該一個或多個索引值中的其中一個相同,則判定需要對接收到的乙太網路封包進行MAC網路位址轉換處理;以及如果該哈希值與該一個或多個索引值中的每一個都不同,則判定不需要對接收到的乙太網路封包進行MAC網路位址轉換處理。
  3. 根據申請專利範圍第1或2項所述的方法,其中,該根據判定結果而進行對接收到的乙太網路封包的轉發的步驟包括:當判定需要對接收到的乙太網路封包進行MAC網路位址轉換處理時,對接收到的乙太網路封包進行MAC網路位址轉換處理後再轉發經過MAC網路位址轉換處理後的乙太網路封包;以及當判定不需要對接收到的乙太網路封包進行MAC網路位址轉換處理時,直接轉發接收到的乙太網路封包。
  4. 根據申請專利範圍第1項所述的方法,其中,該MAC網路位址轉換處理的步驟還包括:如果接收到的乙太網路封包是進來的封包,並且接收到的乙太網路封包的目的地MAC位址不是查找表中與該索引值對應的包括乙太網路封包的IP位址的資料集合中的全局MAC位址,則不對接收到的乙太網路封包進行MAC網路位址轉換。
  5. 根據申請專利範圍第1項所述的方法,其中,該乙太網路封包包括IP封包和/或ARP封包。
  6. 根據申請專利範圍第1項所述的方法,其中,該資料集合還包括配置/取消/查詢介面,用以配置/取消/查詢虛擬機的IP位址、本地MAC位址和對應的全局MAC位址。
  7. 一種轉發乙太網路封包的裝置,其特徵在於,包括:運算模組,用以對接收到的乙太網路封包的IP位址進行哈希運算而得到哈希值;判定模組,用以基於該哈希值,利用預先設置的查找表來判定是否需要對接收到的乙太網路封包進行MAC網路位址轉換處理,其中,該預先設置的查找表包括一個或多個索引值以及與各索引值對應的一個或多個資料集合,該索引值與透過對虛擬機的IP位址進行哈希運算而得到的值相對應,該資料集合包括虛擬機的IP位址、本地MAC位址和對應的全局MAC位址;以及轉發模組,用以根據判定結果,進行對接收到的乙太網路封包的轉發以及將該哈希值與該預先設置的查找表的該索引值進行比較,其中,該轉發模組的該MAC網路位址轉換處理的步驟包括:判定接收到的乙太網路封包是進來的封包還是出去的封包;如果接收到的乙太網路封包是進來的封包,並且接收到的乙太網路封包的目的地MAC位址是查找表中與該索引值對應的包括乙太網路封包的IP位址的資料集合中的全局MAC位址,則將該目的地MAC位址替換為查找表中與該索引值對應的包括乙太網路封包的IP位址的資料集合中的本地MAC位址;以及如果接收到的乙太網路封包是出去的封包,則將接收到的乙太網路封包的來源MAC位址替換為查找表中與該索引值對應的包括乙太網路封包的IP位址的資料集合中的全局MAC位址。
  8. 根據申請專利範圍第7項所述的裝置,其中,如果該哈希值與該一個或多個索引值中的其中一個相同,則該判定模組判定需要對接收到的乙太網路封包進行MAC網路位址轉換處理;以及如果該哈希值與該一個或多個索引值中的每一個都不同,則該判定模組判定不需要對接收到的乙太網路封包進行MAC網路位址轉換處理。
  9. 根據申請專利範圍第7或8項所述的裝置,其中,當該判定模組判定需要對接收到的乙太網路封包進行MAC網路位址轉換處理時,該轉發模組對接收到的乙太網路封包進行MAC網路位址轉換處理後再轉發經過MAC網路位址轉換處理後的乙太網路封包;以及當該判定模組判定不需要對接收到的乙太網路封包進行MAC網路位址轉換處理時,該轉發模組直接轉發接收到的乙太網路封包。
  10. 根據申請專利範圍第7項所述的裝置,其中,該轉發模組的該MAC網路位址轉換處理的步驟還包括:如果接收到的乙太網路封包是進來的封包,並且接收到的乙太網路封包的目的地MAC位址不是查找表中與該索引值對應的包括乙太網路封包的IP位址的資料集合中的全局MAC位址,則不對接收到的乙太網路封包進行MAC網路位址轉換。
  11. 根據申請專利範圍第7項所述的裝置,其中,該乙太網路封包包括IP封包和/或ARP封包。
  12. 根據申請專利範圍第7項所述的裝置,其中,該資料集合還包括配置/取消/查詢介面,用以配置/取消/查詢虛擬機的IP位址、本地MAC位址和對應的全局MAC位址。
TW102126654A 2013-03-06 2013-07-25 轉發乙太網路封包的方法和裝置 TWI661698B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??201310071261.8 2013-03-06
CN201310071261.8A CN104038425B (zh) 2013-03-06 2013-03-06 转发以太网报文的方法和装置

Publications (2)

Publication Number Publication Date
TW201436508A TW201436508A (zh) 2014-09-16
TWI661698B true TWI661698B (zh) 2019-06-01

Family

ID=51469017

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102126654A TWI661698B (zh) 2013-03-06 2013-07-25 轉發乙太網路封包的方法和裝置

Country Status (7)

Country Link
US (2) US9985818B2 (zh)
EP (1) EP2965476B1 (zh)
JP (1) JP6122971B2 (zh)
CN (1) CN104038425B (zh)
HK (1) HK1200245A1 (zh)
TW (1) TWI661698B (zh)
WO (1) WO2014138004A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103179228B (zh) * 2013-04-02 2015-08-19 杭州华三通信技术有限公司 因特网协议地址解析方法及边缘节点
CN104539545B (zh) * 2014-12-31 2018-01-12 新华三技术有限公司 Trill网络中的组播报文转发方法和设备
EP3091715A1 (en) 2015-05-06 2016-11-09 Thomson Licensing Method for allocating internet protocol addresses to clients of a network and corresponding apparatus
CN104994186A (zh) * 2015-07-08 2015-10-21 华为技术有限公司 媒体访问控制地址的查询方法、处理器及装置
US10237239B2 (en) * 2015-12-03 2019-03-19 International Business Machines Corporation Policy-based load distribution between host-based packet processing units
CN112193278B (zh) * 2019-07-08 2022-12-20 中车唐山机车车辆有限公司 列车网络管理系统
CN111698169B (zh) * 2020-05-29 2022-04-05 中国航空工业集团公司西安航空计算技术研究所 基于帧内容的通信端口提取方法
CN112422447B (zh) * 2020-11-13 2022-04-26 新华三技术有限公司合肥分公司 一种成员端口的选择方法及装置
CN114390120B (zh) * 2022-01-04 2023-06-09 烽火通信科技股份有限公司 一种对协议帧的处理方法和装置
CN116232972A (zh) * 2022-12-14 2023-06-06 四川天邑康和通信股份有限公司 一种基于业务或内容的代理路由器

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5914938A (en) * 1996-11-19 1999-06-22 Bay Networks, Inc. MAC address table search unit
US20030043825A1 (en) * 2001-09-05 2003-03-06 Andreas Magnussen Hash-based data frame distribution for web switches
US20070288653A1 (en) * 2006-06-09 2007-12-13 Chandramouli Sargor Scalable data forwarding techniques in a switched network
US20080285448A1 (en) * 2007-05-18 2008-11-20 Ayaz Abdulla Intelligent load balancing and failover of network traffic
US20100208740A1 (en) * 2009-02-18 2010-08-19 Funai Electric Co., Ltd. Communication Apparatus and Communication System
TW201116012A (en) * 2009-09-29 2011-05-01 O2Micro Inc Integrated firewall / VPN system and integrated circuit thereof
US20130031294A1 (en) * 2011-07-29 2013-01-31 International Business Machines Corporation Network filtering in a virtualized environment

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9810841D0 (en) 1998-05-21 1998-07-22 3Com Technologies Ltd Organisation of data bases in network switches for packet-based data communication networks
JP2004187114A (ja) 2002-12-05 2004-07-02 Mitsubishi Electric Corp アドレスフィルタリング装置
KR100627143B1 (ko) * 2004-12-31 2006-09-25 박장원 입체형 신발 갑피용 가교발포 성형체 및 그 제조방법
DE102005002358A1 (de) 2005-01-18 2006-08-24 Siemens Ag Verfahren zur Bestimmung der Weiterleitungsrichtung von Ethernet-Frames
US20070036161A1 (en) 2005-07-13 2007-02-15 Mahamuni Atul B System and method of routing Ethernet MAC frames using Layer-2 MAC addresses
US8498297B2 (en) 2005-08-26 2013-07-30 Rockstar Consortium Us Lp Forwarding table minimisation in ethernet switches
EP1982481B1 (en) * 2006-01-23 2015-05-06 Allied Telesis Holdings K.K. Method and system for improving traffic distribution across a communication network
US20070177597A1 (en) 2006-02-02 2007-08-02 Yu Ju Ethernet connection-based forwarding process
JP4732257B2 (ja) 2006-07-07 2011-07-27 富士通株式会社 中継装置、経路制御方法、及び経路制御プログラム
US20090249471A1 (en) * 2008-03-27 2009-10-01 Moshe Litvin Reversible firewall policies
KR100963424B1 (ko) * 2008-07-23 2010-06-15 한국전자통신연구원 스케일러블 영상 복호화기 및 그 제어 방법
GB2462493B (en) 2008-08-13 2012-05-16 Gnodal Ltd Data processing
CN101771732B (zh) * 2010-01-06 2014-08-27 福建星网锐捷网络有限公司 报文处理方法、装置和网络设备
US8989187B2 (en) * 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
CN101909003A (zh) 2010-07-07 2010-12-08 南京烽火星空通信发展有限公司 线速分流设备及方法
CN102143067A (zh) 2011-02-26 2011-08-03 华为数字技术有限公司 减少介质访问控制mac地址表规模的方法和装置
CN103444138B (zh) * 2011-03-23 2016-03-30 日本电气株式会社 通信控制系统、交换节点以及通信控制方法
US9021475B2 (en) * 2011-05-04 2015-04-28 Citrix Systems, Inc. Systems and methods for SR-IOV pass-thru via an intermediary device
US8958293B1 (en) * 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
US20130185430A1 (en) * 2012-01-18 2013-07-18 LineRate Systems, Inc. Multi-level hash tables for socket lookups
JP6034406B2 (ja) * 2012-01-25 2016-11-30 ユニヴェルシテ カソリック ド ルーヴァンUniversite Catholique De Louvain 細胞移植のための組成物および方法
DE102012211353A1 (de) * 2012-06-29 2014-01-02 Robert Bosch Gmbh Verfahren zur Ermittlung einer in einem bestimmten Zeitabstand erreichbaren Zylinderfüllung einer Brennkraftmaschine
US9172557B2 (en) * 2012-08-17 2015-10-27 International Business Machines Corporation Load balancing overlay network traffic using a teamed set of network interface cards
US9736211B2 (en) * 2012-08-27 2017-08-15 Vmware, Inc. Method and system for enabling multi-core processing of VXLAN traffic

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5914938A (en) * 1996-11-19 1999-06-22 Bay Networks, Inc. MAC address table search unit
US20030043825A1 (en) * 2001-09-05 2003-03-06 Andreas Magnussen Hash-based data frame distribution for web switches
US20070288653A1 (en) * 2006-06-09 2007-12-13 Chandramouli Sargor Scalable data forwarding techniques in a switched network
US20080285448A1 (en) * 2007-05-18 2008-11-20 Ayaz Abdulla Intelligent load balancing and failover of network traffic
US20100208740A1 (en) * 2009-02-18 2010-08-19 Funai Electric Co., Ltd. Communication Apparatus and Communication System
TW201116012A (en) * 2009-09-29 2011-05-01 O2Micro Inc Integrated firewall / VPN system and integrated circuit thereof
US20130031294A1 (en) * 2011-07-29 2013-01-31 International Business Machines Corporation Network filtering in a virtualized environment

Also Published As

Publication number Publication date
JP2016509822A (ja) 2016-03-31
US10608866B2 (en) 2020-03-31
US20140254597A1 (en) 2014-09-11
EP2965476A1 (en) 2016-01-13
CN104038425B (zh) 2018-01-02
US20180241608A1 (en) 2018-08-23
US9985818B2 (en) 2018-05-29
TW201436508A (zh) 2014-09-16
JP6122971B2 (ja) 2017-04-26
CN104038425A (zh) 2014-09-10
WO2014138004A1 (en) 2014-09-12
HK1200245A1 (zh) 2015-07-31
EP2965476B1 (en) 2020-04-29

Similar Documents

Publication Publication Date Title
TWI661698B (zh) 轉發乙太網路封包的方法和裝置
US9602428B2 (en) Method and apparatus for locality sensitive hash-based load balancing
US10530692B2 (en) Software FIB ARP FEC encoding
US20140064276A1 (en) Hashing-based routing table management
US10547547B1 (en) Uniform route distribution for a forwarding table
JP6437693B2 (ja) マルチキャストデータパケット転送
WO2017107814A1 (zh) 一种传播QoS策略的方法、装置及系统
WO2013123847A1 (zh) 报文发送方法和网络设备
US20180270153A1 (en) Increasing entropy across routing table segments
WO2016134624A1 (zh) 路由方法、装置及系统、网关调度方法及装置
US10819640B1 (en) Congestion avoidance in multipath routed flows using virtual output queue statistics
US9525628B2 (en) Packet forwarding method and system
WO2021139289A1 (zh) 报文发送方法、路由表项的生成方法、装置及存储介质
US20180159758A1 (en) Virtual media access control addresses for hosts
WO2017190559A1 (zh) 路由查找方法、装置、分配节点、查找节点及入口节点
US20140156667A1 (en) Increasing Internet Protocol Version 6 Host Table Scalability in Top of Rack Switches for Data Center Deployments
CN102291472A (zh) 一种网络地址查找方法及装置
US11126249B1 (en) Power reduction methods for variable sized tables
WO2018210312A1 (zh) 无损环网交换机、无损自愈环网及其数据通讯方法
US20170237691A1 (en) Apparatus and method for supporting multiple virtual switch instances on a network switch
US9853891B2 (en) System and method for facilitating communication
WO2015039616A1 (zh) 一种报文处理方法及设备
CN101699821B (zh) 一种分布式多核网络系统中地址解析协议实现的方法
US20180367452A1 (en) Information centric networking over multi-access network interfaces
JP7289303B2 (ja) ネットワーク通信方法および装置