專利名稱:用于實現靈活的虛擬局域網的方法和裝置的制作方法
技術領域:
本發明的各種實施例整體涉及虛擬局域網(VLAN),并且特別地,涉及基于三層(L3) IP承載網的二層(L2)虛擬以太網。
背景技術:
VLAN在常規的客戶專用網中得到了廣泛的使用。VLAN是一種被廣泛用于應對和實現隔離性和連通性的機制。一般而言,可以在VLAN內進行廣播,而屬于不同VLAN的機器/虛擬機(VM)無法彼此通信。通過攜帶VLAN標簽,在交換機當中的業務可以實現在同一VLAN的成員之間的連接,但被連接到不同的交換機。隨著VLAN的應用環境不斷擴展,常規的VLAN實現方式(諸如IEEE802.1Q等)面臨著各種挑戰。當VLAN的配置結構和應用場景發生變化時,例如客戶將其VLAN遷移到數據中心網絡(DCN)時,會對VLAN的實現方面產生諸多要求。舉例來說,VLAN的安全性、穩健性和可擴縮性需要得到保證。此外,還要求VLAN中的設備和裝置能夠保持相對于它們通常在專用網中的工作方式而言不變的工作方式。另一方面,在多租戶環境中,每個租戶都要求定義其自己的VLAN,物理節點和VM實例都在增加,因而VLAN的數目也在快速增長。在這種情況下,當前可用的VLAN標識符(ID)可能是不夠的。另外,在現代數據中心,任何時刻都可能會有相當一部分VM處于遷移狀態,而VM跨越VLAN邊界的遷移會需要在交換機上進行很多配置改變。此外,由于部署了來自眾多租戶的多平臺應用,隔離性和連通性也是需要考慮的關鍵性因素,因為隔離性確保了安全性、穩健性和可擴縮性,而連通性則確保了動態資源分配和調度。然而,現有的關于VLAN的部署方案和技術應用卻無法滿足上述需求,相應地,也就不能夠為更多用戶在更大規模的網絡環境下提供所期望的服務。
發明內容
鑒于以上原因,本發明提出了一種用于實現靈活的虛擬局域網的方案,旨在克服現有技術中存在的至少一項問題。根據本發明的第一方面,提供了一種用于實現虛擬局域網的方法,其包括:響應于在第一交換機處接收到數據幀,確定用于傳輸所述數據幀的全局虛擬局域網,其中,所述數據幀來自于第一交換機所服務的一個或多個第一本地虛擬局域網之一;至少部分地基于對所述全局虛擬局域網的確定來對所述數據幀進行封裝;以及在所述全局虛擬局域網上傳輸經封裝的數據幀,以便將所述數據幀發送到至少一個第二交換機,其中,第二交換機服務于一個或多個第二本地虛擬局域網。根據本發明的第二方面,提供了一種實現虛擬局域網的裝置,其包括:確定單元,其被配置為響應于在第一交換機處接收到數據幀,確定用于傳輸所述數據幀的全局虛擬局域網,其中,所述數據幀來自于第一交換機所服務的一個或多個第一本地虛擬局域網之一;封裝單元,其被配置為至少部分地基于對所述全局虛擬局域網的確定來對所述數據幀進行封裝;以及傳輸單元,其被配置為在所述全局虛擬局域網上傳輸經封裝的數據幀,以便將所述數據幀發送到至少一個第二交換機,其中,第二交換機服務于一個或多個第二本地虛擬局域網。根據本發明的第三方面,提供了一種用于實現虛擬局域網的方法,其包括:接收在全局虛擬局域網上傳輸的數據幀,其中,所述數據幀來自于第一交換機所服務的一個或多個第一本地虛擬局域網之一;根據所述數據幀來獲取所述全局虛擬局域網的標識符;以及至少部分地基于所述全局虛擬局域網的標識符,確定第二交換機所服務的一個或多個第二本地虛擬局域網之一的標識符,以便將解封裝的數據幀發送到由所確定的標識符標識的第二本地虛擬局域網。根據本發明的第四方面,提供了一種實現虛擬局域網的裝置,其包括:接收單元,其被配置為接收在全局虛擬局域網上傳輸的數據幀,其中,所述數據幀來自于第一交換機所服務的一個或多個第一本地虛擬局域網之一;獲取單元,其被配置為根據所述數據幀來獲取所述全局虛擬局域網的標識符;以及確定單元,其被配置為至少部分地基于所述全局虛擬局域網的標識符,確定第二交換機所服務的一個或多個第二本地虛擬局域網之一的標識符,以便將解封裝的數據幀發送到由所確定的標識符標識的第二本地虛擬局域網。根據本發明的第五方面,提供了一種配置虛擬局域網的方法,其包括:響應于偵測到主機進入第一交換機所服務的第一本地虛擬局域網,確定所述主機所屬的全局虛擬局域網,以便在所述全局虛擬局域網上將來自所述主機的數據幀傳輸到至少一個第二交換機,其中,第二交換機服務于一個或多個第二本地虛擬局域網;將第一交換機的地址添加到目錄服務器,以便與所述目錄服務器上存儲的所述主機的地址相對應;以及如果所述主機是第一本地虛擬局域網中的第一臺主機,則在第一交換機處創建映射記錄,其記錄了第一本地虛擬局域網的標識符與所述全局虛擬局域網的標識符之間的對應關系。根據本發明的第六方面,提供了一種配置虛擬局域網的裝置,其包括:確定單元,其被配置為響應于偵測到主機進入第一交換機所服務的第一本地虛擬局域網,確定所述主機所屬的全局虛擬局域網,以便在所述全局虛擬局域網上將來自所述主機的數據幀傳輸到至少一個第二交換機,其中,第二交換機服務于一個或多個第二本地虛擬局域網;添加單元,其被配置為將第一交換機的地址添加到目錄服務器,以便與所述目錄服務器上存儲的所述主機的地址相對應;以及創建單元,其被配置為如果所述主機是第一本地虛擬局域網中的第一臺主機,則在第一交換機處創建映射記錄,其記錄了第一本地虛擬局域網的標識符與所述全局虛擬局域網的標識符之間的對應關系。通過采用本發明所提供的方法和裝置,可以實現與現有的VLAN標準或協議(諸如IEEE 802.1Q等)的良好兼容,并且能夠滿足VLAN在多租戶和多站點數據中心的應用環境下對隔離性和連通性的需求。
從以下結合附圖對各種示例性實施例的描述中,將進一步理解本發明的多個方面,在附圖中:圖1示意性地示出了 VLAN的網絡布局;圖2示意性地示出了 IEEE 802.1Q的標簽格式;
圖3是依照本發明的示例性實施例示出了基于三層IP承載網的二層虛擬以太網系統的不意圖;圖4A是依照本發明的示例性實施例說明了可在發送端交換機處執行的用于實現VLAN的方法的流程圖;圖4B是依照本發明的示例性實施例說明了可在接收端交換機處執行的用于實現VLAN的方法的流程圖;圖4C是依照本發明的示例性實施例說明了可在交換機處執行的用于配置VLAN的方法的流程圖;圖5A是依照本發明的示例性實施例說明了在基于三層IP承載網的二層虛擬以太網內實現單播的示意圖;圖5B是依照本發明的示例性實施例說明了在基于三層IP承載網的二層虛擬以太網內實現廣播的示意圖;圖6A是依照本發明的一個示例性實施例的用于實現VLAN的裝置的框圖;圖6B是依照本發明的另一示例性實施例的用于實現VLAN的裝置的框圖;圖6C是依照本發明的一個示例性實施例的用于配置VLAN的裝置的框圖;以及圖7示出了適于用來實現本發明實施方式的示例性計算系統的框圖。
具體實施例方式下面對本發明的具體實施方式
進行詳細描述。所屬技術領域的技術人員知道,本發明的多個方面可以體現為系統、方法或計算機程序產品。因此,本發明的多個方面可以具體實現為以下形式,即,可以是完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等)、或者本文一般稱為“電路”、“模塊”或“系統”的軟件部分與硬件部分的組合。此外,本發明的多個方面還可以采取體現在一個或多個計算機可讀介質中的計算機程序產品的形式,該計算機可讀介質中包含計算機可用的程序碼。可以使用一個或多個計算機可讀的介質的任何組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是一但不限于——電的、磁的、光的、電磁的、紅外線的、或半導體的系統、裝置、器件或任何以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括以下:有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任何合適的組合。在本文件的語境中,計算機可讀存儲介質可以是任何包含或存儲程序的有形的介質,該程序被指令執行系統、裝置或者器件使用或者與其結合使用。計算機可讀的信號介質可包括在基帶中或者作為載波一部分傳播的、其中體現計算機可讀的程序碼的傳播的數據信號。這種傳播的信號可以采用多種形式,包括——但不限于——電磁信號、光信號或任何以上合適的組合。計算機可讀的信號介質可以是并非為計算機可讀存儲介質、但是能發送、傳播或者傳輸用于由指令執行系統、裝置或者器件使用或者與其結合使用的程序的任何計算機可讀介質。計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括——但不限于——無線、電線、光纜、RF等等,或者任何合適的上述組合。用于執行本發明的操作的計算機程序碼,可以以一種或多種程序設計語言的任何組合來編寫,所述程序設計語言包括面向對象的程序設計語言一諸如Java、Smalltalk、C++之類,還包括常規的過程式程序設計語言一諸如“C”程序設計語言或類似的程序設計語言。程序碼可以完全地在用戶的計算上執行、部分地在用戶的計算機上執行、作為一個獨立的軟件包執行、部分在用戶的計算機上部分在遠程計算機上執行、或者完全在遠程計算機或服務器上執行。在后一種情形中,遠程計算機可以通過任何種類的網絡一包括局域網(LAN)或廣域網(WAN)-連接到用戶的計算機,或者,可以(例如利用因特網服務提供商來通過因特網)連接到外部計算機。以下參照按照本發明實施例的方法、裝置(系統)和計算機程序產品的流程圖和/或框圖描述本發明的多個方面。要明白的是,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出一種機器,使得通過計算機或其它可編程數據處理裝置執行的這些指令,產生實現流程圖和/或框圖中的方框中規定的功能/操作的裝置。也可以把這些計算機程序指令存儲在能指令計算機或其它可編程數據處理裝置以特定方式工作的計算機可讀介質中,這樣,存儲在計算機可讀介質中的指令產生一個包括實現流程圖和/或框圖中的方框中規定的功能/操作的指令裝置(instruction means)的制造品。也可以把計算機程序指令加載到計算機或其它可編程數據處理裝置上,使得在計算機或其它可編程數據處理裝置上執行一系列操作步驟,以產生計算機實現的過程,從而在計算機或其它可編程裝置上執行的指令就提供實現流程圖和/或框圖中的方框中規定的功能/操作的過程。下面參照附圖,結合具體實施例對本發明進行描述。這樣的描述僅僅出于說明目的,而不意圖對本發明的范圍進行限制。圖1示意性地示出了 VLAN的網絡布局,如圖1所示,該網絡可以包括VLAN UVLAN2和VLAN 3,在單個物理LAN上具有隔離的廣播域。盡管圖1中僅示出了三個VLAN,然而應當理解,可以部署更多的VLAN。可以通過軟件來配置LAN成員關系,而不是在物理上對設備或連接進行重新安置。舉例來說,可以配置交換機端口,當數據幀進入VLAN時對其添加標簽,通過查找媒體訪問控制(MAC)表來將數據幀交換/泛洪到干道鏈路(trunk link),以及當退出VLAN時解除標簽,等等。通過建立VLAN成員關系,可以形成靜態VLAN(例如基于端口的VLAN)或動態VLAN(例如基于源MAC地址)。所有未被配置的主機/端口可以屬于“默認VLAN”,并且它們全都處在一個廣播域中。舉例來說,VLAN可以基于諸如IEEE 802.1Q這樣的標準或協議。圖2示意性地示出了 IEEE 802.1Q的標簽格式。相對于以太網版本下的格式,按照IEEE 802.1Q的規定,在源MAC地址字段與幀類型字段之間插入了 4字節的標簽首部,包括2字節的標簽協議類型(TPID)和2字節的標簽控制信息字段(TCI),其中,TCI含有12比特的VLAN標識符(VID)。VLAN ID唯一地標識了數據幀所屬的VLAN。隨著網絡規模的不斷擴大以及VLAN租戶數目的日益增長,12比特的VLAN ID可能并不足以支持諸如DCN等應用環境,并且在多租戶情況下,可能在不同的用戶網絡語境中重用同一 VLAN ID。在當前VLAN的實現中,跨多站數據中心來調整VLAN也是復雜的。此夕卜,VLAN數目的增加以及對VLAN的配置改變也加大了管理開銷。按照常規的VLAN技術,可以在VLAN內進行廣播,而屬于不同VLAN的機器卻無法彼此通信。然而,屬于某個VLAN的主機或服務器可能會希望將其數據幀發送到屬于另一不同VLAN的主機或服務器。用戶也常常會改變其VLAN的配置,例如,使得屬于某個VLAN的虛擬機進行跨越該VLAN邊界的遷移。除此之外,在特定的應用場景(例如DCN環境)中,可能會希望所有未被配置到VLAN的主機最初是被隔離的,而不是屬于默認VLAN (廣播域)。針對上述至少一個方面的問題,本發明提供了一種實現VLAN的解決方案,其可以在DCN中實施。該方案采用靈活有效的方式來配置VLAN,其可以與現有的VLAN實現標準或協議(諸如IEEE 802.1Q等)具有良好的兼容性,而且還能夠滿足VLAN在諸如多租戶和多站點數據中心這樣的應用環境下對隔離性和連通性的多種需求。圖3依照本發明的示例性實施例示出了基于三層IP承載網的二層虛擬以太網系統的示意圖。如圖所示,該系統包括交換機T0RpT0RyT0R3和ToR4,以及目錄服務器(DS)。交換機ToRp ToR2, ToR3和ToR4可分別具有三層接入交換機的功能。由一個通用的三層IP網絡連接起來的交換機和目錄服務器可以相互通信。每個接入交換機可以連接一個或多個二層的以太網本地網絡(例如,在圖3中所示的本地VLAN I和本地VLAN2),交換機和所連接的本地網絡可合稱為一個節點或局部節點。舉例來說,交換機(TOR)可以在本地支持一個或多個IEEE 802.1Q VLAN,可以自動分配或由用戶來指定本地VLAN的ID (例如,IEEE802.1Q標簽)。附加地或替代地,交換機還可以支持未啟用IEEE 802.1Q標簽的二層以太網,在這種情況下,可以將本地的所有服務器/主機看作是處在同一個IEEE802.1Q VLAN內。因而,根據本發明實施例的節點內的以太網能夠支持IEEE 802.1Q VLAN的功能。對于局限于節點內部的IEEE 802.1Q VLAN,可以稱之為本地VLAN。而對于全局的基于三層IP承載網的虛擬二層以太網而言的VLAN,可以稱之為全局VLAN。每個本地VLAN可以包括一個或多個主機(或服務器主機),如圖3所示,由ToR1支持的本地VLANl可以包括主機110和111,由ToR1支持的本地VLAN 2可以包括主機210和211,由ToR2支持的本地VLAN I可以包括主機120和121,并且由ToR3支持的本地VLAN I可以包括主機230和231。接入交換機ToR4沒有支持任何本地VLAN。在本發明的一個示例性實施例中,默認地將未被配置到任何VLAN的主機彼此隔離。考慮到L3網絡可以自然地提供隔離性和連通性,在本發明的示例性實施例中應用了三層IP承載網的多播組。多播組將多個主機劃分成組,在組內可以將多播處理成“廣播”。在設置了適當的路由表的情況下,路由器和路由協議可以確保每個主機能夠與其它主機進行通信。舉例來說,L3網絡多播組可以將不同局部節點中本地VLAN的用戶連接起來。圖3中示出了多播組I (如虛線圈所示)和多播組2 (如實線圈所示),其中,多播組I連接了 ToR1和ToR2及其支持的本地VLAN,多播組2連接了 ToR1和ToR3及其支持的本地VLAN。可以將多播組看作是全局VLAN,例如,多播組I對應于全局VLAN1,而多播組2對應于全局VLAN2。盡管圖3中僅示出了包括2個多播組和4個交換機的系統,然而可以理解,該系統可以包括更多的多播組和更多的交換機,每個交換機可以支持更多的本地VLAN,并且每個本地VLAN可以包括更多的主機。根據本發明的示例性實施例,交換機(如圖3中所示的ToR4)可以選擇不加入任何多播組,替代地,交換機(如圖3中所示的T0RpT0R2和ToR3)也可以選擇加入一個或多個多播組。根據本發明的示例性實施例,管理員可以在目錄服務器上定義關于所有主機的VLAN定義信息,這些主機(例如,在圖3中所示的主機110,111,120,121,210,211,230和231)可以分布在各個局部節點內。舉例來說,在目錄服務器上可以存儲關于主機的地址(例如L2MAC地址等)、全局多播組標識符(例如多播組地址等)以及交換機地址(例如L3IP地址等)之間的映射關系。在本發明的一個示例性實施例中,通過查詢目錄服務器上的相應信息,接入交換機可以構造三層IP包對二層以太網單播幀的封裝,從而實現在位于不同局部節點的屬于同一全局VLAN的服務器主機之間的二層以太網單播通信。附加地或替代地,在本發明的另一示例性實施例中,利用三層IP網絡的多播技術,接入交換機可以用三層IP網絡的多播包來封裝二層網絡的廣播包,從而實現位于不同局部節點但屬于同一全局VLAN的服務器主機之間的全局VLAN內二層以太網廣播通信。在本發明的又一示例性實施例中,根據目錄服務器上的定義信息,屬于不同全局VLAN的服務器主機之間的通信會被接入交換機阻斷,從而實現全局VLAN對服務器主機之間通信范圍的劃分。這可以有效地避免當前網絡架構上諸如MAC窺探(snooping)這樣的安全性攻擊。下面的示意性流程圖一般作為邏輯流程圖來進行闡述。因此,所示出的順序和所標記的步驟表示所提出的方法的一個實施例。可以想到在功能、邏輯或效果方面等效于所描述的方法的一個或多個步驟或其部分的其它步驟和方法。另外,所采用的格式和符號是為了闡釋該方法的邏輯步驟而提供的,并且被理解為并不限制該方法的范圍。盡管在流程圖中可采用各種箭頭類型和線條類型,然而它們被理解為并不限制相應的方法的范圍。事實上,某些箭頭或其它的連接符可能僅僅用于指示該方法的邏輯流程。另外,特定方法發生的順序可以按照所示對應步驟的順序,或者,可以不按照所示對應步驟的順序。圖4A是依照本發明的示例性實施例說明了用于實現VLAN的方法的流程圖,該方法可在作為跨全局VLAN傳輸的數據幀的發送端交換機(例如,在圖3中所示的ToRp ToR2和ToR3中的任何一個)處執行。如圖4A所示,在步驟412,響應于在第一交換機(例如圖3中所示的ToR1)處接收到數據幀,確定用于傳輸該數據幀的全局VLAN,其中,該數據幀來自于第一交換機所服務的一個或多個第一本地VLAN之一(例如圖3中所示的包括主機110和111的VLAN1)。在步驟414,至少部分地基于對全局VLAN的確定(例如圖3中所示的多播組I)來對該數據幀進行封裝。在步驟416,可以在所確定的全局VLAN上傳輸經封裝的數據幀,以便將該數據幀發送到至少一個第二交換機(例如圖3中所示的ToR2),其中,第二交換機服務于一個或多個第二本地VLAN(例如圖3中所示的包括主機120和121的VLAN1)。舉例來說,該數據幀可以包括單播幀或廣播幀。在單播幀的情況下,根據本發明的一個示例性實施例,確定全局VLAN的操作可以包括:利用數據幀的源主機和目的主機的地址來查詢目錄服務器,以便驗證源主機和目的主機是否屬于同一全局VLAN,其中,源主機屬于所述一個或多個第一本地VLAN之一,而目的主機屬于所述一個或多個第二本地VLAN之一。進一步地,確定全局VLAN的操作還可以包括:在數據幀的源主機和目的主機屬于同一全局VLAN(由此可在步驟412中將其確定為用于傳輸該數據幀的全局VLAN)的情況下,從目錄服務器獲得第二交換機的地址(例如IP地址)。舉例來說,如果該數據幀的源主機和目的主機不屬于同一全局VLAN,則作為發送端交換機的第一交換機可以進行拒絕通信的處理過程,例如簡單丟棄該數據幀。在廣播幀的情況下,根據本發明的另一示例性實施例,確定全局VLAN的操作可以包括:利用數據幀的源主機的地址來查詢目錄服務器,以便確定源主機所屬的全局VLAN。進一步地,確定全局VLAN的操作還可以包括:從目錄服務器獲得與該全局VLAN相對應的多播地址。根據本發明的示例性實施例,對于數據幀的封裝操作可以包括:至少向該數據幀添加源地址和目的地址。在針對單播幀的一個示例性實施例中,源地址可以包括第一交換機的地址(例如,發送端接入交換機的IP地址),而目的地址可以包括第二交換機的地址(例如,接收端接入交換機的IP地址)。替代地,在針對廣播幀的一個示例性實施例中,源地址可以包括第一交換機的地址,而目的地址可以包括與所確定的全局VLAN相對應的多播地址(例如,連接發送端和接收端交換機的三層承載網的IP多播地址)。圖4B是依照本發明的示例性實施例說明了用于實現VLAN的方法的流程圖,該方法可在作為跨全局VLAN傳輸的數據幀的接收端交換機(例如,在圖3中所示的ToRp ToR2和ToR3中的任何一個)處執行。如圖4B所示,在步驟422,接收在全局VLAN(例如圖3中所示的多播組I)上傳輸的數據幀,其中,該數據幀來自于第一交換機(例如圖3中所示的ToR1)所服務的一個或多個第一本地VLAN之一(例如圖3中所示的包括主機110和111的VLAN1)。在步驟424,根據所接收到的數據幀來獲取該全局VLAN的標識符。至少部分地基于所獲取的全局VLAN的標識符,在步驟426,可以確定第二交換機(例如圖3中所示的ToR2)所服務的一個或多個第二本地VLAN之一的標識符,以便將解封裝的數據幀發送到由所確定的標識符標識的第二本地VLAN(例如圖3中所示的包括主機120和121的VLAN1)。根據本發明的一個示例性實施例,可以對所接收到的數據幀進行解封裝,例如去掉IP首部。在接收到單播幀的情況下,獲取全局VLAN的標識符可以包括以下操作:從解封裝的數據幀中獲得該數據幀的目的主機的地址;利用目的主機的地址來查詢目錄服務器;以及從目錄服務器獲得與該目的主機的地址相對應的全局VLAN的標識符。替代地,在接收到廣播幀的情況下,獲取全局VLAN的標識符可以包括以下操作:從該數據幀中獲得與全局VLAN相對應的多播地址;利用該多播地址來查詢目錄服務器;以及從目錄服務器獲得與該多播地址相對應的全局VLAN的標識符。舉例來說,利用所獲取的全局VLAN的標識符,可以在本地(例如,在第二交換機處)查詢與所獲取的全局VLAN的標識符相對應的本地VLAN的標識符,該標識符標識了數據幀的目的地所屬的本地VLAN。在本發明的一個示例性實施例中,如果查詢到的本地VLAN的標識符與所接收到的數據幀中攜帶的本地VLAN的標識符不同,則將數據幀中的本地VLAN的標識符修改為所查詢到的本地VLAN的標識符。通過這樣的方式,第二交換機可以將單播幀發送到由所確定的本地VLAN標識符標識的本地VLAN中,并且單播幀所指定的目的主機會接收到該單播幀。替代地,第二交換機可以將廣播幀發送到由所確定的本地VLAN標識符標識的本地VLAN中,并且屬于該本地VLAN的所有主機會接收到該廣播幀。根據本發明的示例性實施例,可以在基于三層IP承載網的二層虛擬以太網上實現以上針對圖4A和圖4B所描述的方法。本發明所提供的靈活有效的VLAN方案在商品化L3TCP/IP網絡上承載了虛擬L2網絡。在局部節點內的主機或服務器可以在本地交換L2幀,其可支持常規的IEEE802.1Q VLAN。通過具有擴展模塊的商品化L3交換機,每個節點可以連接到其它節點。節點所包括的這些ToR可以彼此相連,以便形成作為承載網的L3TCP/IP網絡。利用IP包中的MAC封裝以及L3多播技術,多播包以及針對遠端MAC地址的單播包可以到達另一節點內的遠端主機或服務器。多個主機或服務器在邏輯上處于虛擬扁平型局域網中。舉例來說,通過目錄服務器中的配置,可以在該扁平型虛擬局域網上定義VLAN。在本發明的一個示例性實施例中,管理員可以按用戶的要求將主機分組,使得這些主機對應于不同的全局VLAN。管理員可以為每個全局VLAN分配一個三層承載網的多播組,并在目錄服務器上建立每臺主機的地址和全局VLAN及對應多播組的多播地址的對應關系記錄。舉例來說,可以在目錄服務器上存儲至少一個以下字段或信息: 服務器/主機地址:其可以是服務器/主機上網卡的MAC地址,用來唯一地標識服務器/主機; 全局VLAN標識符:其可以表示服務器/主機所屬的全局VLAN的ID ; 對應多播組:其可以是全局VLAN所對應的IP多播地址;以及 交換機地址:其可以是服務器/主機所屬的本地VLAN的接入三層交換機本身的IP地址。根據本發明的示例性實施例,連接了不同節點的接入交換機的三層IP網絡還可以連接目錄服務器(DS),并且DS可 以通過該IP網絡與各個接入交換機通信,例如實現信息的查詢和交換。舉例來說,目錄服務器可以是具有信息存儲和查詢功能的任何類型的數據庫或服務器。圖4C是依照本發明的示例性實施例說明了可在交換機處執行的用于配置VLAN的方法的流程圖。在步驟432,響應于偵測到主機進入第一交換機所服務的第一本地VLAN,確定該主機所屬的全局VLAN,以便在所確定的全局VLAN上將來自該主機的數據幀傳輸到至少一個第二交換機,其中,第二交換機可以服務于一個或多個第二本地VLAN。舉例來說,根據主機的地址(例如MAC地址),第一交換機可以向目錄服務器查詢該主機所屬的全局VLAN和相應的承載網多播組,并且第一交換機可以加入到該多播組,以便支持在該多播組內的通信。在步驟434,可以將第一交換機的地址添加到目錄服務器,以便與目錄服務器上存儲的該主機的地址相對應。例如,第一交換機可以用自己的IP地址來填寫或更改DS上針對該主機所記錄的“交換機地址”字段。如果該主機是第一本地VLAN中的第一臺主機,那么在步驟436,可以在第一交換機處創建映射記錄,用于記錄第一本地VLAN的標識符與所確定的全局VLAN的標識符之間的對應/映射關系。例如,第一交換機可以為第一本地VLAN分配一個本地的IEEE 802.1Q的標簽(tag),并且在本地存儲的全局/本地VLAN對應表里增加一條對應關系記錄。通過執行該方法,第一交換機可以加入到承載網多播組,該承載網多播組對應于針對該主機所確定的全局VLAN。由此,該主機可以在二層虛擬網(例如本地VLAN)上正常地處理輸入/輸出數據幀(例如以太網幀),還可以通過第一交換機將數據幀發送到全局VLAN上的一個或多個第二交換機,進而由第二交換機將該數據幀轉發給一個或多個其它主機。根據本發明的示例性實施例,該方法還可以包括步驟:響應于偵測到該主機離開第一本地VLAN(例如斷開連接),第一交換機可以清除在目錄服務器上存儲的與該主機的地址相對應的第一交換機的地址(例如,對應于接入三層交換機IP的字段)。在本發明的一個示例性實施例中,該方法可以進一步包括步驟:如果該主機是第一本地VLAN中的最后一臺主機,那么第一交換機可以刪除記錄了第一本地VLAN的標識符與該主機所屬全局VLAN的標識符之間的對應關系的映射記錄(例如,在本地存儲的全局/本地VLAN對應表里的相應記錄)。特別地,根據主機的地址(例如MAC地址),第一交換機可以(例如從DS中)查詢到該主機所屬的全局VLAN和相應的承載網多播組。如果該主機是所在的全局VLAN在本地VLAN的最后一臺主機,則第一交換機可以離開該承載網多播組。以上描述了根據示例性實施例的用于實現和配置VLAN的方法。應當指出的是,所描述的方法僅為示例,而不是對本發明的限制。本發明的用于實現和配置VLAN的方法可具有更多、更少或不同的步驟,所描述的一些步驟可合并為單個步驟或劃分為更細的步驟,并且一些步驟之間的順序可改變或可并行執行。圖5A是依照本發明的示例性實施例說明了在基于三層IP承載網的二層虛擬以太網內實現單播的示意圖。相應地,圖5B是依照本發明的示例性實施例說明了在基于三層IP承載網的二層虛擬以太網內實現廣播的示意圖。為了便于說明,圖5A和圖5B僅以兩個節點為例,每個節點都有一臺接入交換機與外部的通用的三層IP網絡連接,其中,接入交換機可以實現如以上結 合圖4A-4C中的至少一個所描述的功能。目錄服務器DS也可以通過該三層IP網絡與每個接入交換機相連。根據本發明的實施例,在每個節點內部可以包括一個或多個二層以太網。二層以太網可以由一臺或多臺傳統的二層以太網交換機互聯構成。在二層以太網內,可以支持IEEE802.1Q VLAN的功能。特別地,對于沒有應用IEEE 802.1Q標簽的以太網,可以認為是支持IEEE 802.1Q VLAN的一個特例,在這種情況下,所有服務器主機都在同一個IEEE 802.1Q VLAN內。如先前針對圖3和圖4A-4C所描述的,這里將局限于節點內部的IEEE 802.1Q VLAN稱為本地VLAN,而根據本發明實施例所構建的全局的虛擬二層以太網的VLAN,可以稱之為全局VLAN。在包括接入交換機ToR1的節點1,假設有兩臺服務器主機110和111,它們都從屬于本地VLAN 001。在包括接入交換機ToR2的節點2,假設有兩臺服務器主機120和121,它們都從屬于本地VLAN 002。可以理解,這里只是為了便于說明而僅示出了兩個節點并且每個節點具有兩臺主機的例子,實際上,根據本發明實施例的系統可以具有更多的節點及相應的交換機,并且每個節點內部可以包括更多的主機及相應的一個或多個本地VLAN。此外,每個交換機可以加入到一個或多個全局VLAN所對應的多播組。下面結合圖5A來說明在二層虛擬網內實現單播時的工作原理。假設服務器主機110發送數據幀(例如以太網幀)512給服務器主機120。舉例來說,節點I的接入交換機ToR1的網卡工作在混雜模式下,它會收到該數據幀來進行處理。接入交換機ToR1可以利用數據幀512的源和目的地址(例如,源和目的MAC地址54:52:00:00:00:01/54:52:00:00:00:02)來向目錄服務器進行查詢,以便確認這兩個地址是否屬于同一個全局VLAN。如果這兩個地址不屬于同一個全局VLAN,那么目錄服務器可以返回諸如不允許通信的結果給節點I的接入交換機T0Rp相應地,接入交換機!^!^可以進行拒絕通信的處理過程,例如簡單丟棄這個數據幀。如果數據幀的源和目的地址屬于同一個全局VLAN,那么目錄服務器可以返回目的主機所在網絡的接入交換機ToR2的地址(例如IP地址)。接入交換機ToR1收到該地址后,可以用自己的地址(例如IP地址)作為源地址并且用收到的地址作為目的地址來封裝先前收到的數據幀512,例如通過添加IP首部來構造一個IP包514。作為發送端的接入交換機,!^!^可以通過L3承載網將經封裝的數據幀(例如IP包514)發送給作為接收端的接入交換機ToR2。
舉例來說,目錄服務器DS中存儲的用于查詢的相關字段或信息可以包括:服務器/主機地址、所屬全局VLAN標識符、對應多播組以及交換機地址。表I示出了可在目錄服務器中存儲的針對各個主機的主要字段及相應信息的一個示例。表I
權利要求
1.一種實現虛擬局域網的方法,其包括: 響應于在第一交換機處接收到數據幀,確定用于傳輸所述數據幀的全局虛擬局域網,其中,所述數據幀來自于第一交換機所服務的一個或多個第一本地虛擬局域網之一; 至少部分地基于對所述全局虛擬局域網的確定來對所述數據幀進行封裝;以及 在所述全局虛擬局域網上傳輸經封裝的數據幀,以便將所述數據幀發送到至少一個第二交換機,其中,第二交換機服務于一個或多個第二本地虛擬局域網。
2.根據權利要求1所述的方法,其中所述數據幀包括單播幀,并且其中,確定所述全局虛擬局域網包括: 利用所述數據幀的源 主機和目的主機的地址來查詢目錄服務器,以便驗證所述源主機和所述目的主機是否屬于同一全局虛擬局域網,其中,所述目的主機屬于所述一個或多個第二本地虛擬局域網之一;以及 在所述源主機和所述目的主機均屬于所述全局虛擬局域網的情況下,從所述目錄服務器獲得第二交換機的地址。
3.根據權利要求1或2所述的方法,其中,對所述數據幀進行封裝包括對所述數據幀至少添加以下信息: 源地址,其包括第一交換機的地址;以及 目的地址,其包括第二交換機的地址。
4.根據權利要求1所述的方法,其中所述數據幀包括廣播幀,并且其中,確定所述全局虛擬局域網包括: 利用所述數據幀的源主機的地址來查詢目錄服務器,以便確定所述源主機所屬的全局虛擬局域網;以及 從所述目錄服務器獲得與所述全局虛擬局域網相對應的多播地址。
5.根據權利要求1或4所述的方法,其中,對所述數據幀進行封裝包括對所述數據幀至少添加以下信息: 源地址,其包括第一交換機的地址;以及 目的地址,其包括與所述全局虛擬局域網相對應的多播地址。
6.一種實現虛擬局域網的裝置,其包括: 確定單元,其被配置為響應于在第一交換機處接收到數據幀,確定用于傳輸所述數據幀的全局虛擬局域網,其中,所述數據幀來自于第一交換機所服務的一個或多個第一本地虛擬局域網之一; 封裝單元,其被配置為至少部分地基于對所述全局虛擬局域網的確定來對所述數據幀進行封裝;以及 傳輸單元,其被配置為在所述全局虛擬局域網上傳輸經封裝的數據幀,以便將所述數據幀發送到至少一個第二交換機,其中,第二交換機服務于一個或多個第二本地虛擬局域網。
7.根據權利要求6所述的裝置,其中所述數據幀包括單播幀,并且其中,確定所述全局虛擬局域網包括: 利用所述數據幀的源主機和目的主機的地址來查詢目錄服務器,以便驗證所述源主機和所述目的主機是否屬于同一全局虛擬局域網,其中,所述目的主機屬于所述一個或多個第二本地虛擬局域網之一;以及 在所述源主機和所述目的主機均屬于所述全局虛擬局域網的情況下,從所述目錄服務器獲得第二交換機的地址。
8.根據權利要求6或7所述的裝置,其中,對所述數據幀進行封裝包括對所述數據幀至少添加以下信息: 源地址,其包括第一交換機的地址;以及 目的地址,其包括第二交換機的地址。
9.根據權利要求6所述的裝置,其中所述數據幀包括廣播幀,并且其中,確定所述全局虛擬局域網包括: 利用所述數據幀的源主機的地址來查詢目錄服務器,以便確定所述源主機所屬的全局虛擬局域網;以及 從所述目錄服務器獲得與所述全局虛擬局域網相對應的多播地址。
10.根據權利要求6或9所述的裝置,其中,對所述數據幀進行封裝包括對所述數據幀至少添加以下信息: 源地址,其包括第一交換機的地址;以及 目的地址,其包括與所述全局虛擬局域網相對應的多播地址。
11.一種實現虛擬局域網的方法,其包括: 接收在全局虛擬局域網上傳輸的數據幀,其中,所述數據幀來自于第一交換機所服務的一個或多個第一本地虛擬局域網之一; 根據所述數據幀來獲取所述全局虛擬局域網的標識符;以及 至少部分地基于所述全局虛擬局域網的標識符,確定第二交換機所服務的一個或多個第二本地虛擬局域網之一的標識符,以便將解封裝的數據幀發送到由所確定的標識符標識的第二本地虛擬局域網。
12.根據權利要求11所述的方法,其中所述數據幀包括單播幀,并且其中,獲取所述全局虛擬局域網的標識符包括: 從解封裝的數據幀中獲得所述數據幀的目的主機的地址; 利用所述目的主機的地址來查詢目錄服務器;以及 從所述目錄服務器獲得與所述目的主機的地址相對應的所述全局虛擬局域網的標識符。
13.根據權利要求11所述的方法,其中所述數據幀包括廣播幀,并且其中,獲取所述全局虛擬局域網的標識符包括: 從所述數據幀中獲得與所述全局虛擬局域網相對應的多播地址; 利用所述多播地址來查詢目錄服務器;以及 從所述目錄服務器獲得與所述多播地址相對應的所述全局虛擬局域網的標識符。
14.一種實現虛擬局域網的裝置,其包括: 接收單元,其被配置為接收在全局虛擬局域網上傳輸的數據幀,其中,所述數據幀來自于第一交換機所服務的一個或多個第一本地虛擬局域網之一; 獲取單元,其被配置為根據所述數據幀來獲取所述全局虛擬局域網的標識符;以及 確定單元,其被配置為至少部分地基于所述全局虛擬局域網的標識符,確定第二交換機所服務的一個或多個第二本地虛擬局域網之一的標識符,以便將解封裝的數據幀發送到由所確定的標識符標識的第二本地虛擬局域網。
15.根據權利要求14所述的裝置,其中所述數據幀包括單播幀,并且其中,獲取所述全局虛擬局域網的標識符包括: 從解封裝的數據幀中獲得所述數據幀的目的主機的地址; 利用所述目的主機的地址來查詢目錄服務器;以及 從所述目錄服務器獲得與所述目的主機的地址相對應的所述全局虛擬局域網的標識符。
16.根據權利要求14所述的裝置,其中所述數據幀包括廣播幀,并且其中,獲取所述全局虛擬局域網的標識符包括: 從所述數據幀中獲得與所述全局虛擬局域網相對應的多播地址; 利用所述多播地址來查詢目錄服務器;以及 從所述目錄服務器獲得與所述多播地址相對應的所述全局虛擬局域網的標識符。
17.一種配置虛擬局域網的方法,其包括: 響應于偵測到主機進入第一交換機所服務的第一本地虛擬局域網,確定所述主機所屬的全局虛擬局域網,以便在所述全局虛擬局域網上將來自所述主機的數據幀傳輸到至少一個第二交換機,其中,第二交換機服務于一個或多個第二本地虛擬局域網; 將第一交換機的地址添加到目錄服務器,以便與所述目錄服務器上存儲的所述主機的地址相對應;以及 如果所述主機是第一本地虛擬局域網中的第一臺主機,則在第一交換機處創建映射記錄,其記錄了第一本地虛擬局域網的標識符與所述全局虛擬局域網的標識符之間的對應關系O
18.根據權利要求17所述的方法,其進一步包括: 響應于偵測到所述主機離開第一本地虛擬局域網,清除在所述目錄服務器上存儲的與所述主機的地址相對應的第一交換機的地址;以及 如果所述主機是第一本地虛擬局域網中的最后一臺主機,則刪除所述映射記錄。
19.一種配置虛擬局域網的裝置,其包括: 確定單元,其被配置為響應于偵測到主機進入第一交換機所服務的第一本地虛擬局域網,確定所述主機所屬的全局虛擬局域網,以便在所述全局虛擬局域網上將來自所述主機的數據幀傳輸到至少一個第二交換機,其中,第二交換機服務于一個或多個第二本地虛擬局域網; 添加單元,其被配置為將第一交換機的地址添加到目錄服務器,以便與所述目錄服務器上存儲的所述主機的地址相對應;以及 創建單元,其被配置為如果所述主機是第一本地虛擬局域網中的第一臺主機,則在第一交換機處創建映射記錄,其記錄了第一本地虛擬局域網的標識符與所述全局虛擬局域網的標識符之間的對應關系。
20.根據權利要求19所述的裝置,其進一步包括: 清除單元,其被配置為響應于偵測到所述主機離開第一本地虛擬局域網,清除在所述目錄服務器上存儲的與所述主機的地址相對應的第一交換機的地址;以及刪除單元,其被配置為如果所述主機是第一本地虛擬局域網中的最后一臺主機,則刪除所述映射 記錄。
全文摘要
本發明提供了實現虛擬局域網的方法和裝置,該方法包括響應于在第一交換機處接收到數據幀,確定用于傳輸數據幀的全局虛擬局域網,至少部分地基于所述確定來封裝該數據幀,以便經由所確定的全局虛擬局域網將其發送到至少一個第二交換機。相應地,在第二交換機處接收該數據幀,并據此獲取全局虛擬局域網的標識符,至少部分地基于該全局虛擬局域網的標識符,確定要將解封裝的數據幀發送到第二交換機服務的哪個本地虛擬局域網。利用本發明的方法和裝置,可以滿足虛擬局域網在多租戶和多站點數據中心的應用環境下對隔離性和連通性的需求。
文檔編號H04L12/70GK103139037SQ20111038936
公開日2013年6月5日 申請日期2011年11月30日 優先權日2011年11月30日
發明者劉航, 鄭凱, 張躍, 戈弋 申請人:國際商業機器公司