專利名稱:虛擬網絡設備中的接口束的制作方法
技術領域:
本發(fā)明涉及聯網,更具體而言涉及在虛擬網絡設備中實現接口束。
背景技術:
為了提供更高的網絡可靠性,常常在網絡中包括冗余的交換機和鏈路。如果一個交換機或鏈路發(fā)生故障,已經在網絡內就位的冗余交換機或鏈路可以迅速被啟用以替換發(fā)生故障的交換機或鏈路。由于與替換或維修發(fā)生故障的組件相比,啟用冗余交換機或鏈路作為替代物的一般更為迅速,因此擁有冗余的鏈路和/或交換裝置能夠提供更為可靠的網絡。
當在網絡內包括冗余的組件時,一般希望能夠在相應組件發(fā)生故障之前在正常網絡工作期間使用冗余的組件。例如,如果在一對交換機之間實現了兩條鏈路,則希望使用兩條鏈路(而不是使一條鏈路空閑)來提供更大的帶寬。但是,如果多條冗余鏈路同時活動,則對這些鏈路的管理的復雜程度可能是令人不快的(例如由于需要避免橋接環(huán))。
避免擁有若干條獨立冗余鏈路的復雜性的一種方式是將這些鏈路當作單個邏輯傳輸路徑來操作,例如利用諸如EtherChannel(TM)或鏈路聚集(在IEEE 802.3中定義)之類的鏈路集束(bundling)技術所提供的那種。例如,可以從交換機上的若干個端口形成EtherChannel(TM)端口束,這些端口中的每一個被耦合到將該交換機耦合到其他交換機的鏈路群組中的一條相應的鏈路。一旦形成了EtherChannel(TM)端口束,就可以通過諸如生成樹這樣的路由選擇協議將端口束當作單個網橋端口來管理,從而簡化對冗余鏈路的管理。
目前,存在不能使用鏈路集束技術的情形。例如,目前EtherChannel(TM)端口束中的所有端口都必須被包括在相同的網絡設備中。希望擴展能夠使用端口束的情形。
發(fā)明內容
公開了用于在虛擬網絡設備中實現接口束的方法和系統的各種實施例。虛擬網絡設備包括若干個不同的虛擬網絡設備子單元,它們共同作為單個邏輯網絡設備工作。接口束包括位于虛擬網絡設備中包括的不同虛擬網絡設備子單元中的多于一個虛擬網絡設備子單元中的接口。
在一個實施例中,一種系統包括虛擬鏈路束,該虛擬鏈路束包括若干條通信鏈路。每條通信鏈路的第一端被配置為耦合到第一網絡設備。通信鏈路中的第一通信鏈路的第二端被配置為耦合到虛擬網絡設備內的第一虛擬網絡設備子單元,通信鏈路中的第二通信鏈路的第二端被配置為耦合到虛擬網絡設備內的第二虛擬網絡設備子單元。通信鏈路被配置為當作單條鏈路來管理。當第一網絡設備經由虛擬鏈路束向虛擬網絡設備發(fā)送分組時,第一網絡設備選擇通信鏈路之一以在其上發(fā)送分組。在虛擬網絡設備和第一網絡設備之間發(fā)送的每個分組都只經由通信鏈路之一發(fā)送。
在某些實施例中,一種系統包括第一虛擬網絡設備子單元。第一虛擬網絡設備子單元包括第一接口和被耦合到第一接口的控制器??刂破鞅慌渲脼檗D發(fā)經由第一接口接收到的分組。第一接口由第一邏輯標識符標識,該第一邏輯標識符還標識第二虛擬網絡設備子單元中包括的第二接口。第一接口和第二接口是相同接口束的一部分。對于要經由接口束轉發(fā)的分組,第一虛擬網絡設備子單元可以使經由第一接口(它在第一虛擬網絡設備子單元本地)發(fā)送分組優(yōu)先于經由第二接口(它是第二虛擬網絡設備子單元的一部分)發(fā)送分組。
在這種實施例中,第一虛擬網絡設備子單元可以被配置為維護與第二虛擬網絡設備子單元一致的轉發(fā)信息。例如,在一個實施例中,控制器(在第一虛擬網絡設備子單元中)被配置為根據運行在接口束上的路由選擇協議為第一接口執(zhí)行控制協議處理??刂破鞅慌渲脼閷⒃趫?zhí)行控制協議處理時生成的信息提供到第二虛擬網絡設備子單元中包括的次級控制器。次級控制器被配置為利用該信息來管理第二接口。
一種方法的一個實施例包括向接口束內包括的每個接口分配第一邏輯標識符,其中接口束包括第一虛擬網絡設備子單元的第一接口和第二虛擬網絡設備子單元的第二接口;將第一鏈路的第一端耦合到第一接口,該第一鏈路被包括在虛擬鏈路束內;以及將第二鏈路的第一端耦合到第二接口,該第二鏈路也包括在虛擬鏈路束內。第一鏈路和第二鏈路中每一個的第二端被耦合到第三網絡設備。
一種方法的另一個實施例包括如果與第一分組相關聯的目的地標識符標識虛擬鏈路束,則經由虛擬鏈路束的第一鏈路發(fā)送第一分組;以及如果與第二分組相關聯的目的地標識符標識虛擬鏈路束,則經由虛擬鏈路束的第二鏈路發(fā)送第二分組。第一鏈路被耦合到第一虛擬網絡設備子單元,第二鏈路被耦合到第二虛擬網絡設備子單元。
本發(fā)明的另一個實施例包括接收分組,其中分組的目的地標識符標識包括第一接口的接口束;以及如果分組是經由虛擬網絡設備鏈路接收到的,則從經由第一接口發(fā)送的分組流中過濾掉分組。虛擬網絡設備鏈路耦合虛擬網絡設備內的兩個虛擬網絡設備子單元。如果分組不是經由虛擬網絡設備鏈路接收到的,則經由第一接口發(fā)送分組。
以上只是一個概要,從而必然包括簡化、概括和細節(jié)省略;因此,本領域的技術人員將會意識到,概要只是說明性的,而絕不是限制性的。這里公開的操作可以用多種方式來實現,并且可以在不脫離本發(fā)明及其更寬的方面的情況下作出這種變化和修改。僅由權利要求書限定的本發(fā)明的其他方面將從以下闡述的非限制性詳細描述中清楚顯現出來。
通過參考下面的描述和附圖,可以獲得對本發(fā)明的更徹底的理解,附圖中類似的標號指示類似的特征。
圖1是根據本發(fā)明一個實施例的網絡的框圖。
圖2A和2B示出根據本發(fā)明一個實施例,相同網絡層中的兩個網絡設備如何能夠共同作為單個虛擬網絡設備工作。
圖3示出根據本發(fā)明一個實施例,虛擬網絡設備中包括的每個虛擬網絡設備子單元內的更多細節(jié)。
圖4A-4B示出根據本發(fā)明一個實施例,處理經由跨多個虛擬網絡設備子單元的接口束接收到的數據分組的方法的流程圖。
圖5A-5F示出根據本發(fā)明一個實施例,在虛擬網絡設備未曾知道目的地設備的邏輯標識符的情況下如何處理分組。
圖6A-6D示出根據本發(fā)明一個實施例,在虛擬網絡設備已知目的地設備的邏輯標識符時如何處理分組。
圖7A-7F示出根據本發(fā)明一個實施例,在虛擬網絡設備未曾知道目的地設備的邏輯標識符的情況下如何處理從非衛(wèi)星網絡設備接收到的分組。
雖然本發(fā)明能夠接受各種修改和替換形式,但在附圖和詳細描述中提供了本發(fā)明的特定實施例作為示例。應當理解,附圖和詳細描述并不是用來將本發(fā)明限制到所公開的特定形式的。相反,本發(fā)明將會覆蓋處于由所附權利要求書所限定的本發(fā)明的精神和范圍之內的所有修改、等同物和替換。
具體實施例方式
圖1是一個網絡的框圖,在該網絡中,接口束可以實現在虛擬網絡設備中。在圖1中,若干個客戶端102(1)-102(n)經由網絡彼此通信,并且與服務器104(1)-104(n)通信??蛻舳?02(1)-102(n)可以包括訪問聯網的服務的多種不同設備。例如,客戶端102(1)可以是蜂窩電話,客戶端102(2)可以是個人計算機,客戶端102(n)可以是個人數字助理(PDA)。服務器104(1)-104(n)提供各種服務,例如各種基于軟件的服務和/或對共享的存儲設備的訪問。
網絡耦合的客戶端102(1)-102(n)和服務器104(1)-104(n)的網絡是按照若干網絡層來描述的。與客戶端102(1)-102(n)最接近的層是接入層110。接入層110包括若干個網絡設備120(1)-120(n)。在該示例中,接入層110是分組從客戶端102(1)-102(n)進入網絡的初級層。
分發(fā)層112聚集經由接入層110接收到的流,并將這些聚集的流提供到核心層114。在該示例中,分發(fā)層112包括網絡設備122(1)-122(n)。核心層114是網絡的邏輯上集中的部分,各種聚集的流經過該部分。核心層114包括網絡設備124(1)-124(n)。
在該示例中,數據中心116包括兩組網絡設備網絡設備126(1)-126(n)和網絡設備128(1)-128(n)。網絡設備128(1)-128(n)向各種服務器104(1)-104(n)提供對網絡的訪問。網絡設備126(1)-126(n)聚集來自網絡設備128(1)-128(n)的流,并且將聚集的流提供到核心層114。
注意,在某些實施例中,網絡將不會包括圖1所示的網絡層(例如可以組合和/或去除某些層,并且附加于和/或取代圖1所示的那些,還可以包括替換層)。此外,客戶端和服務器可以按不同于圖1所示的方式被耦合到網絡(例如某些客戶端和/或服務器可以耦合到核心和/或分發(fā)層中的個體網絡設備)。此外,設備相對于彼此的物理位置可以不同于圖1所示的邏輯位置。例如,相同網絡層中的兩個設備物理上可以位于不同的樓層上、不同的建筑物中或不同的校園中。相反,不同網絡層中的兩個設備可以位于同一房間中。
在某些實施例中,位于網絡的外邊緣的網絡設備120(1)-120(n)和網絡設備128(1)-128(n)的工作方式可能不同于位于網絡的較內層的網絡設備122(1)-122(n)、124(1)-124(n)和126(1)-126(n)。例如,在一個實施例中,網絡設備120(1)-120(n)是受網絡的較內層(例如分發(fā)和核心層)中的網絡設備控制或以其他方式從屬于網絡的較內層中的網絡設備的衛(wèi)星網絡設備。在這種實施例中,非衛(wèi)星網絡設備提供L2(第2層)和L3(第3層)轉發(fā)和路由選擇,而衛(wèi)星網絡設備只具有相對有限的轉發(fā)和/或路由選擇能力。在其他實施例中,衛(wèi)星網絡設備不執(zhí)行任何L2轉發(fā)或L3路由選擇。相反,衛(wèi)星網絡設備只是僅僅將所有分組轉發(fā)到非衛(wèi)星網絡設備,以進行L2轉發(fā)和L3路由選擇。在某些實施例中,被耦合到衛(wèi)星網絡設備的非衛(wèi)星網絡設備可以控制衛(wèi)星網絡設備的工作。例如,網絡設備126(1)-126(n)可以根據各種路由選擇協議來配置網絡設備128(1)-128(n)。在某些實施例中,衛(wèi)星網絡設備被視為衛(wèi)星所從屬的網絡設備的遠程線路卡。還注意到,在替換實施例中,非衛(wèi)星網絡設備可以取代衛(wèi)星網絡設備被用于接入層和數據中心中。
網絡設備120(1)-120(n)、122(1)-122(n)、124(1)-124(n)、126(1)-126(n)和128(1)-128(n)可以包括各種路由器、交換機、網絡和其他網絡設備。在許多實施例中,為使網絡工作,在每一層可能只需要一個網絡設備。但是,如圖1所示,在每一層可以包括多個網絡設備,以提供冗余性。
將會注意到,在這里描述的附圖中的若干個實例中,使用了變量標識符“n”來更簡單地指明一系列相關或類似元件的最后一個元件。這種變量標識符的反復使用并不一定是要暗示這種元件系列的大小之間的相關性,雖然這種相關性也可能是存在的。這種變量標識符的使用不要求每個元件系列與由相同的變量標識符定界的另一系列具有相同數目的元件(例如每個網絡層中的網絡設備的數目可能不同)。更確切地說,在每個使用實例中,由“n”(或任何其他這種標識符)標識的變量與同一變量標識符的其他實例相比可能擁有相同或不同的值。
在不同網絡層中的設備之間可以實現多條鏈路以提供額外的冗余性。例如,如圖1所示,接入層110中的每個網絡設備120(1)-120(n)可以通過兩條(或更多條)不同的鏈路被耦合到分發(fā)層112。類似地,分發(fā)層112中的每個網絡設備122(1)-122(n)可以通過兩條(或更多條)不同的鏈路被耦合到核心層114。在一個實施例中,每條鏈路是以太網鏈路。
在每個網絡層內,多個網絡設備可以被配置為共同作為單個虛擬網絡設備工作。例如,如圖1所示,分發(fā)層112中的兩個或更多個網絡設備可以作為虛擬網絡設備202工作。類似地,網絡設備124(1)-124(n)中的兩個或更多個可以作為單個虛擬網絡設備204工作,而網絡設備126(1)-126(n)中的兩個或更多個可以作為單個虛擬網絡設備206工作。關于兩個分發(fā)層網絡設備如何能夠共同作為分發(fā)層虛擬網絡設備202工作的更多細節(jié)在圖2A、圖2B和圖3中示出。如下所述,虛擬網絡設備可以通過虛擬鏈路束被耦合到其他虛擬網絡設備、網絡設備以及/或者客戶端和/或服務器。一般來說,任何多端口設備(不論是諸如網絡設備、客戶端或服務器之類的物理設備,還是虛擬網絡設備)都可以通過包括若干鏈路的虛擬鏈路束被耦合到虛擬網絡設備,所述鏈路中的某些在虛擬網絡設備內的不同子單元上終止。
圖2A示出了一個網絡的示例,在該網絡中,在接入層110中有兩個網絡設備120(1)和120(2)。在分發(fā)層112中也有兩個網絡設備122(1)和122(2)。在該示例中,這兩個網絡設備122(1)和122(2)作為單個虛擬網絡設備202工作。每個網絡設備120(1)-120(2)通過兩條鏈路被耦合到分發(fā)層112。在該示例中,這兩條鏈路中的每一條被耦合到網絡設備122(1)和122(2)中不同的一個。這提供了冗余性,從而即使在網絡設備122(1)或122(2)之一發(fā)生故障或者給定接入層網絡設備與給定分發(fā)層網絡設備之間的鏈路之一發(fā)生故障的情況下也允許網絡設備120(1)和120(2)繼續(xù)與分發(fā)層112通信。
將網絡設備120(1)和120(2)中的每一個耦合到虛擬網絡設備202的冗余鏈路可被當作單個邏輯鏈路來操作,在這里將該單個邏輯鏈路稱為虛擬鏈路束。網絡設備120(1)將把網絡設備120(1)耦合到虛擬網絡設備202的兩條鏈路當作虛擬鏈路束250(1)來操作。在這種實施例中,網絡設備120(1)中的被耦合到鏈路之一的每個接口被包括在接口束中,該接口束對應于虛擬鏈路束250(1)。類似地,網絡設備120(2)將把網絡設備120(2)耦合到虛擬網絡設備202的兩條鏈路當作虛擬鏈路束250(2)來操作。在某些實施例中,虛擬鏈路束250(1)和250(2)各自被當作EtherChannel(TM)或聚集鏈路(在IEEE 802.3中描述)來操作。
如圖2A所示,每個虛擬鏈路束250(1)和250(2)包括在分發(fā)層112中的不同網絡設備處終止的鏈路。例如,虛擬鏈路束250(1)將網絡設備120(1)耦合到網絡設備122(1)和網絡設備122(2)。這與傳統的實現方式不同,在傳統實現方式中,邏輯鏈路只允許存在于單對網絡設備之間。
在某些實施例中,網絡設備120(1)和120(2)意識到(例如,通過每個網絡設備內維護的各種狀態(tài)信息)每個虛擬鏈路束250(1)和250(2)包括在分發(fā)層112中的不同網絡設備上終止的鏈路。在這種實施例中,網絡設備120(1)和120(2)可以基于這種意識選擇特定虛擬鏈路束內的一條鏈路以在其上發(fā)送分組。
在其他實施例中,網絡設備122(1)和122(2)進行操作以掩蓋這種單個邏輯鏈路實際上包括在不同網絡設備處終止的鏈路這一事實。例如,如圖2A所示,網絡設備122(1)和122(2)可以作為單個虛擬網絡設備202工作。圖2B示出從接入層110中的網絡設備120(1)的角度來看網絡設備120(1)是如何通過冗余鏈路對被耦合到分發(fā)層112中的單個網絡設備,即虛擬網絡設備202的。網絡設備120(2)對于虛擬網絡設備202具有類似的觀點。
在網絡設備120(1)和網絡設備120(1)-120(n)將其自身看成是被連接到單個網絡設備的實施例中,例如圖2B所示的實施例中,虛擬鏈路束的使用獲得了簡化。例如,如果網絡設備120(1)意識到虛擬鏈路束250(1)在兩個不同的網絡設備處終止,則網絡設備120(1)可以基于生成樹協議選擇一條鏈路以在其上發(fā)送特定分組。與網絡設備120(1)僅僅將虛擬網絡設備202看作單個實體相比,使用生成樹協議可能涉及更多開銷,以及/或者對于哪些鏈路能被用來發(fā)送給定分組有更多的限制(例如,生成樹協議可能阻塞除一條鏈路之外的所有鏈路,從而防止使用除一條未被阻塞的鏈路之外的所有鏈路)。例如,當將虛擬網絡設備202看作單個實體時,網絡設備120(1)可以僅僅基于負載共享約束來選擇一條鏈路以在其上發(fā)送分組。類似地,如果虛擬鏈路束250(1)內的一條鏈路發(fā)生故障,則網絡設備120(1)無需改變生成樹協議的應用方式。相反,網絡設備120(1)可以僅僅繼續(xù)使用虛擬鏈路束250(1)內的未發(fā)生故障的鏈路。
虛擬網絡設備202中包括的個體網絡設備,例如網絡設備122(1)和網絡設備122(2),在這里各自被稱為“虛擬網絡設備子單元”。在某些實施例中,虛擬網絡設備子單元122(1)和122(2)各自是在單獨的機箱中實現的(即,每個機箱容納單個虛擬網絡設備子單元)。例如,在圖2A中,網絡設備122(1)和122(2)可以各自具有其自己的機箱。即使虛擬網絡設備子單元122(1)和122(2)共享機箱,也可以使每個虛擬網絡設備子單元作為獨立的網絡設備工作,從而允許在虛擬網絡設備中的一個(或多個)虛擬網絡設備子單元發(fā)生故障的情況下其他虛擬網絡設備子單元能夠繼續(xù)工作。例如,虛擬網絡設備子單元122(1)和虛擬網絡設備子單元122(2)可以位于相同的機箱中,但是每個虛擬網絡設備子單元可以具有獨立的硬件、端口、上行鏈路接口和電源,并且每一個可以獨立于另一個地從機箱中移除。如果虛擬網絡設備子單元122(1)發(fā)生故障(例如由于電源故障或軟件差錯),則虛擬網絡設備子單元122(2)可以繼續(xù)運行。在這種實施例中,可以移除虛擬網絡設備子單元122(1)以便維修或替換,而不會干擾虛擬網絡設備子單元122(2)的工作。
在某些實施例中,將網絡設備耦合到衛(wèi)星網絡設備的虛擬鏈路束中的鏈路是用于將衛(wèi)星網絡設備耦合到虛擬網絡設備的專門鏈路,在這里被稱為上行鏈路。每個上行鏈路可以輸送網絡設備之一內生成的分組和額外的信息。此額外信息可以類似于傳統網絡設備內的線路卡間輸送的額外信息。例如,如果分組正在上行鏈路上從接入層衛(wèi)星網絡設備被輸送到分發(fā)層網絡設備,則在上行鏈路上與分組一起被輸送的額外信息可以包括標識衛(wèi)星網絡設備的哪個端口接收到了該分組的信息。額外信息還可以包括指示發(fā)送設備是否已對分組執(zhí)行了任何轉發(fā)或路由選擇的信息。在某些實施例中,上行鏈路的使用允許虛擬網絡設備控制被耦合到該虛擬網絡設備的衛(wèi)星網絡設備。上行鏈路的使用還可以幫助虛擬網絡設備有能力為從屬衛(wèi)星網絡設備執(zhí)行路由選擇和/或轉發(fā)。被耦合到上行鏈路的衛(wèi)星網絡設備或網絡設備內的接口在這里被稱為上行鏈路接口。
圖3示出了虛擬網絡設備中包括的每個網絡設備內的更多細節(jié)。在這里,虛擬網絡設備202包括兩個虛擬網絡設備子單元122(1)和122(2)。注意,在其他實施例中,虛擬網絡設備202可以包括多于兩個組件的網絡設備。在該示例中,虛擬網絡設備202位于網絡的分發(fā)層。但是,類似的虛擬網絡設備也可以實現在其他網絡層中(例如數據中心和/或核心層內)。
虛擬網絡設備202被耦合到若干個接入層網絡設備120(1)-120(3)。網絡設備120(2)和120(3)各自通過兩條上行鏈路被耦合到虛擬網絡設備202,這兩條上行鏈路中的每一條去往虛擬網絡設備子單元122(1)和122(2)中的一個。網絡設備120(2)通過虛擬鏈路束250(2)被耦合到虛擬網絡設備,網絡設備120(3)通過虛擬鏈路束250(3)被耦合到虛擬網絡設備202。結果,即使這些上行鏈路之一和/或虛擬網絡設備子單元122(1)和122(2)之一發(fā)生故障,網絡設備120(2)和120(3)也能繼續(xù)與分發(fā)層通信。網絡設備120(1)通過三條上行鏈路被耦合到虛擬網絡設備202兩條去往虛擬網絡設備子單元122(1)的上行鏈路和一條去往虛擬網絡設備子單元122(2)的上行鏈路。這三條上行鏈路共同形成虛擬鏈路束250(1)。即使三條上行鏈路中的兩條和/或虛擬網絡設備子單元122(1)和122(2)之一發(fā)生故障,網絡設備120(1)也能繼續(xù)與分發(fā)層通信。網絡設備120(1)-120(3)各自將它們的多條去往虛擬網絡設備202的上行鏈路當作單個邏輯上行鏈路來操作。此外,在某些實施例中,每個網絡設備120(1)-120(3)可以像該網絡設備被耦合到單個分發(fā)層設備(虛擬網絡設備202)那樣工作,而不是像該網絡設備被耦合到了兩個獨立的分發(fā)層網絡設備那樣工作。
分發(fā)層虛擬網絡設備子單元122(1)也通過單條鏈路被耦合到服務器104(3)。與接入層網絡設備120(1)-120(3)不同,服務器104(3)并不將分發(fā)層網絡設備單元122(1)和122(2)看作單個邏輯網絡設備。在該示例中,如果網絡設備122(1)或將服務器104(3)耦合到網絡設備122(1)的鏈路發(fā)生故障,則服務器104(3)將無法經由分發(fā)層通信。注意,在替換實施例中,諸如服務器104(3)這樣的但具有多個端口的服務器可以通過虛擬鏈路束被耦合到每個虛擬網絡設備,并且這種服務器能夠像虛擬網絡設備子單元122(1)和122(2)是單個虛擬網絡設備202那樣與這些子單元交互。
虛擬網絡設備子單元122(1)包括若干個卡,其中包括控制卡302(1)以及線路卡304(1)和304(3)。類似地,虛擬網絡設備子單元122(2)包括控制卡302(2)以及線路卡304(2)和304(4)??刂瓶?02(1)包括控制單元310(1)、轉發(fā)引擎312(1)以及接口320(1)和320(3)??刂瓶?02(2)類似地包括控制單元310(2)、轉發(fā)引擎312(2)以及接口320(2)和320(4)。
在虛擬網絡設備子單元122(1)中,線路卡304(1)包括轉發(fā)引擎314(1)以及接口320(5)、320(7)和320(9)。接口320(7)被耦合到網絡設備120(3)。接口320(9)也被耦合到網絡設備120(1)。接口320(5)在該示例中未被使用。線路卡304(3)包括轉發(fā)引擎314(3)、接口320(11)和320(13),以及端口320(15)。接口320(11)和320(13)分別被耦合到網絡設備120(2)和120(1)。接口320(15)被耦合到服務器104(3)。在網絡設備120(1)-120(3)是受虛擬網絡設備202控制的衛(wèi)星網絡設備的實施例中,接口320(7)、320(9)、320(11)和320(13)可以被當作上行鏈路接口來操作,而未被耦合到衛(wèi)星網絡設備的接口320(15)被當作正常端口來操作。
在虛擬網絡設備子單元122(2)中,線路卡304(2)包括轉發(fā)引擎314(2)以及接口320(6)、320(8)和320(10)。接口320(8)被耦合到衛(wèi)星網絡設備120(2),而接口320(6)和接口320(10)未被連接。線路卡304(4)包括轉發(fā)引擎314(4)以及接口320(12)、320(14)和320(16)。接口320(12)和接口320(16)分別被耦合到衛(wèi)星網絡設備120(3)和120(1)。接口320(14)未被使用。在網絡設備120(1)-120(3)是受虛擬網絡設備202控制的衛(wèi)星網絡設備的實施例中,接口320(8)、320(12)和320(16)可以被當作上行鏈路接口來操作。
注意,雖然圖2中的接口被描述成既是進入接口又是外出接口,但是也可以使用充當僅限進入的接口或充當僅限外出的接口的接口。例如,圖2所示的每個接口的功能可以利用一個僅限進入的接口和一個僅限外出的接口來實現。類似地,虛擬鏈路束250(1)-250(3)各自可以包括若干條只將分組從相應的網絡設備120(1)-120(3)輸送到虛擬網絡設備202的鏈路,以及若干條只將分組從虛擬網絡設備202輸送到相應的網絡設備120(1)-120(3)的鏈路。
在圖示實施例中,虛擬網絡設備子單元122(1)中的控制卡302(1)經由虛擬網絡設備鏈路360被耦合到虛擬網絡設備子單元122(2)中的控制卡302(2)。在該示例中,虛擬網絡設備鏈路360包括兩條鏈路(兩條鏈路被用來提供更大的容錯性和/或帶寬;但是,在其他實施例中也可以使用一條鏈路)。在該示例中,這些鏈路是一類上行鏈路,其除了攜帶分組外還攜帶信息(例如與線路卡之間發(fā)送的那些類似的頭部)。虛擬網絡設備鏈路360中的上行鏈路被用于在虛擬網絡設備子單元122(1)和122(2)之間交換控制虛擬網絡設備202的工作的信息以及分組。通過經由這些上行鏈路進行通信,虛擬網絡設備子單元122(1)和122(2)可以協調它們的行為,從而使得對于網絡設備120(1)-120(3)它們看起來是單個虛擬網絡設備。
從而,在虛擬網絡設備子單元122(1)和122(2)之間提供互連可以允許虛擬網絡設備子單元122(1)和122(2)作為單個虛擬網絡設備202工作。網絡設備120(1)-120(3)以與網絡設備120(1)-120(3)和單個物理設備通信的方式相同的方式與虛擬網絡設備202通信。例如,如果網絡設備120(2)正在處理尋址到服務器104(3)的分組,則網絡設備120(2)可以選擇網絡設備束250(2)中的兩條上行鏈路之一以在其上發(fā)送分組。這一選擇可以基于負載共享標準。在這種情形下,由于虛擬網絡設備202看起來是單個網絡設備,因此,盡管只有虛擬網絡設備子單元122(1)具有到服務器104(3)的直接連接,但網絡設備120(2)選擇去往虛擬網絡設備子單元122(2)的上行鏈路的可能性與選擇去往虛擬網絡設備子單元122(1)的上行鏈路的可能性是相同的。如果分組被發(fā)送到虛擬網絡設備子單元122(2),則網絡設備122(2)隨后可以利用虛擬網絡設備子單元122(1)和122(2)之間的虛擬網絡設備鏈路360中包括的上行鏈路之一來將分組發(fā)送到虛擬網絡設備子單元122(1),而虛擬網絡設備子單元122(1)進而又可以將分組提供到其目的地,即服務器104(3)。
在其他實施例中,網絡設備120(1)-120(3)可能意識到它們的虛擬鏈路束250(1)和250(2)實際上在兩個不同的網絡設備上終止。網絡設備120(1)-120(3)可以基于該信息控制分組傳輸。例如,在這種情形下,網絡設備120(2)可以基于網絡設備120(2)認識到邏輯鏈路內去往兩個不同網絡設備的不同連接這一事實,通過選擇被耦合到虛擬網絡設備子單元122(1)的上行鏈路而不是被耦合到虛擬網絡設備子單元122(2)的上行鏈路來處理尋址到服務器104(3)的分組。
各自通過虛擬鏈路束250(1)被耦合到網絡設備120(1)的接口320(13)、320(9)和320(16)形成接口束(例如EtherChannel(TM)端口束)。類似地,接口320(11)和320(8)形成了另一個接口束,該接口束通過虛擬鏈路束250(2)被耦合到網絡設備120(2)。接口320(7)和320(12)形成第三接口束,該接口束通過虛擬鏈路束250(3)被耦合到網絡設備120(3)。在虛擬網絡設備202內,相同接口束中的每個接口被分配以相同的邏輯標識符。例如,接口320(13)、320(9)和320(16)各自被分配以相同的邏輯標識符。在某些實施例中,經由這些接口之一接收到的分組可以被標記以該邏輯標識符或以其他方式與該邏輯標識符相關聯,以指示這些分組是經由將虛擬網絡設備202耦合到網絡設備120(1)的虛擬鏈路束接收到的。注意,類似的接口束實現在每個網絡設備120(1)-120(3)內,并且這種束中包括的接口也可以被每個網絡設備(或者在虛擬網絡設備202控制網絡設備120(1)-120(3)的配置的實施例中是被虛擬網絡設備202)分配以相同的邏輯標識符。例如,網絡設備120(1)可以向被耦合到虛擬鏈路束250(1)的每個接口分配相同的邏輯標識符。
分組和特定邏輯標識符之間的關聯可以被虛擬網絡設備202內的轉發(fā)引擎用來將分組路由和轉發(fā)到網絡設備120(1)-120(3)以及路由和轉發(fā)來自這些網絡設備的分組。例如,當經由上行鏈路接口320(13)接收到來自發(fā)送設備(例如被耦合到網絡設備120(1)的客戶端)的分組時,虛擬網絡設備子單元122(1)可以通過使發(fā)送設備的MAC(媒體訪問控制)地址與上行鏈路接口320(13)的邏輯標識符相關聯來獲知該MAC地址位于上行鏈路接口320(13)“之后”。虛擬網絡設備子單元122(1)可以將該關聯通知給虛擬網絡設備子單元122(1)中的每個轉發(fā)引擎以及虛擬網絡設備子單元122(2)中的每個轉發(fā)引擎?;谠撽P聯,尋址到該MAC地址的分組將會從具有相關聯的邏輯標識符的上行鏈路接口發(fā)送出來。由于在這種情況下,上行鏈路接口320(9)(在虛擬網絡設備子單元122(1)中)和320(16)(在虛擬網絡設備子單元122(2)中)也具有與上行鏈路接口320(13)相同的邏輯標識符,因此尋址到該MAC地址的分組可以經由上行鏈路接口320(9)、320(13)和320(16)中的任何一個被轉發(fā)。
相同的邏輯標識符可以被虛擬網絡設備子單元122(1)和122(2)中的每一個用來標識上行鏈路接口束,并且虛擬網絡設備子單元協作以將相同的邏輯標識符分配給相同上行鏈路接口束內的每個上行鏈路接口。當經由特定邏輯標識符所標識的上行鏈路接口束轉發(fā)分組時,每個虛擬網絡設備子單元122(1)和122(2)生成散列值,以選擇該上行鏈路接口束內的上行鏈路接口之一以在其上發(fā)送分組。每個虛擬網絡設備子單元利用這些散列值來標識該虛擬網絡內的本地上行鏈路接口。從而,每個虛擬網絡設備子單元只會選擇該虛擬網絡設備子單元本地的上行鏈路接口。例如,如果虛擬網絡設備子單元122(1)正在經由包括接口320(9)、320(13)和320(16)的上行鏈路接口束轉發(fā)分組,則由虛擬網絡設備子單元生成的散列值將會標識其接口320(9)或320(13)之一。
在上述示例中,通過使每個散列值與上行鏈路接口束中的本地上行鏈路接口相關聯,減少了對虛擬交換機鏈路360的使用?;旧?,虛擬網絡設備子單元122(1)更傾向于特定上行鏈路接口束內的其本地的上行鏈路接口,而不是相同上行鏈路接口束中處于虛擬網絡設備子單元122(2)上的遠程上行鏈路接口。類似地,虛擬網絡設備子單元122(2)更傾向于特定上行鏈路接口束內的其本地的上行鏈路接口,而不是包括在虛擬網絡設備子單元122(1)中的上行鏈路接口。例如,如果虛擬網絡設備子單元122(2)需要經由上行鏈路接口轉發(fā)分組,則虛擬網絡設備子單元122(2)將會經由上行鏈路接口320(12)發(fā)送該分組,而不是通過虛擬網絡設備鏈路360轉發(fā)該分組以經由上行鏈路接口320(7)發(fā)送。通過更傾向于本地接口,可以減少經由虛擬網絡設備鏈路360發(fā)送的流量的量,這是因為每個虛擬網絡設備子單元122(1)和122(2)將會從本地接口轉發(fā)在本地接收到的分組(即經由除被耦合到虛擬網絡設備鏈路360的接口之外的接口接收到的分組)。下文中描述的圖6A-6D示出關于如何通過更傾向于用第一虛擬網絡設備子單元內的本地接口處理特定分組從而來避免虛擬網絡設備鏈路360上的流量的更詳細示例。
對于給定虛擬鏈路束,該虛擬鏈路束可在中心位置中被管理(例如關于諸如L2協議這樣的控制協議)。例如,針對虛擬鏈路束250(1)的所有控制協議處理可以發(fā)生在虛擬網絡設備子單元122(1)的控制單元310(1)中。該控制協議處理的結果隨后可以被傳輸到虛擬網絡設備子單元122(2)的控制單元310(2)和/或網絡設備120(1)中的控制器。控制單元310(2)隨后在控制如何處理從上行鏈路接口320(16)(其處于被耦合到虛擬鏈路束250(1)的上行鏈路接口束中)發(fā)送來的以及經由上行鏈路接口320(16)接收到的分組時可以使用(但不修改)該信息。例如,控制單元310(2)可以利用該信息來設置或修改線路卡304(2)和/或304(4)上的查找表。這樣,實際控制協議處理集中在控制單元310(1)中,而不是分布在虛擬網絡設備202中的若干個控制單元上。
控制協議處理的中心點可以在虛擬鏈路束之間發(fā)生變化。例如,雖然針對虛擬鏈路束250(1)的控制協議處理由控制單元310(1)管理,但是針對虛擬鏈路束250(2)的控制協議處理可以由控制單元310(2)管理。換言之,控制單元310(2)可以執(zhí)行針對虛擬鏈路束250(2)的所有控制處理,并且由控制單元310(2)生成的信息隨后可以被傳輸到控制單元310(1)以便在虛擬網絡設備子單元122(1)內使用(但不修改)。
在虛擬網絡設備202內為每個虛擬鏈路束的控制協議處理實現一個管理中心點的實施例中,L2協議可以在虛擬鏈路束上運行,以及/或者接口束可以被用作經路由的L3接口。如果虛擬網絡設備202內的虛擬網絡設備子單元彼此獨立地各自為其本地接口束執(zhí)行控制協議處理,則這些能力將不可用。此外,在實現控制協議處理中心點的實施例中,用戶可以通過訪問單個虛擬網絡設備子單元來修改虛擬鏈路束的控制協議行為。在上述示例中,在更新虛擬鏈路束250(1)的控制協議行為時,用戶可以僅僅訪問虛擬網絡設備子單元122(1)(而不是訪問虛擬網絡設備子單元122(1)和122(2)兩者)。虛擬網絡設備子單元122(1)隨后可以將用戶對控制協議作出的任何改變自動傳播到網絡設備122(2)。此外,由于虛擬鏈路束的使用允許了若干個上行鏈路被當作單個邏輯上行鏈路來管理,因此與不使用虛擬鏈路束的情況相比,需要配置的上行鏈路接口更少。例如,如果每個虛擬鏈路束包括兩條上行鏈路,則虛擬網絡設備202內需要由用戶配置的上行鏈路接口的數目減半。
虛擬網絡設備子單元122(1)和122(2)可以實現某些行為以充當虛擬網絡設備202,從網絡設備120(1)-120(3)的角度來看,該虛擬網絡設備202看起來是單個邏輯網絡設備。例如,每當虛擬網絡設備子單元122(2)接收到來自本地網絡設備、客戶端或服務器的分組并且該分組的目的地邏輯標識符標識上行鏈路接口束時,虛擬網絡設備子單元122(2)將可以從所標識的上行鏈路接口束內的本地上行鏈路接口發(fā)送該分組。虛擬網絡設備子單元122(2)也可以將該分組提供給虛擬網絡設備子單元122(1),但虛擬網絡設備子單元122(1)自身不應該在虛擬鏈路束上輸出該分組。這樣,目的地設備只接收到來自虛擬網絡設備202的分組的一個副本(而不是從每個虛擬網絡設備子單元122(1)和122(2)接收到一個副本),并且虛擬網絡設備202作為單個實體的表觀情況得以維持。
為了以這種方式工作,被耦合到虛擬鏈路束中的一條鏈路的每個外出上行鏈路接口被配置為過濾掉經由虛擬網絡設備鏈路360接收到的流量。例如,分組可以經由虛擬網絡設備鏈路360在虛擬網絡設備子單元122(1)處被接收到。接收該分組的接口320(1)或320(3)可以更新與分組相關聯的信息(例如在頭部中)以指示該分組是經由虛擬網絡設備鏈路360接收到的(在替換實施例中,虛擬網絡設備子單元122(2)中的發(fā)送接口可以更新該信息)。當虛擬網絡設備子單元122(1)在查找表中查找分組的目的地地址時,查找表返回標識本地上行鏈路接口320(9)和320(13)的邏輯標識符。分組隨后被轉發(fā)到上行鏈路接口320(13)(例如基于負載共享因素選擇)。當上行鏈路接口320(13)接收到分組時,上行鏈路接口320(13)只會在分組不是經由虛擬交換機鏈路360接收到的的情況下才輸出分組,這是因為如果分組是經由虛擬交換機鏈路接收到的,則另一虛擬網絡設備子單元122(2)已經經由虛擬鏈路束發(fā)送了該分組。從而上行鏈路接口320(13)基于附加到分組的指示分組是否是經由虛擬網絡設備鏈路360接收到的的信息來從經由上行鏈路接口320(13)發(fā)送的分組流中過濾該分組。
在某些實施例中,MAC通知幀被用來使虛擬網絡設備子單元122(1)中的L2表的內容與虛擬網絡設備子單元122(2)中的L2表的內容保持同步,反之亦然。每當在虛擬網絡設備子單元內生成涉及位于虛擬鏈路束之后的端口或上行鏈路接口束中包括的上行鏈路接口的MAC通知時(例如,這種通知可以由一個線路卡生成,以更新另一線路卡上的L2表),MAC通知的副本經由虛擬網絡設備鏈路360被發(fā)送。類似地,如果虛擬網絡設備子單元確定分組應當被擴散(flood),則虛擬網絡設備子單元將會經由虛擬網絡設備鏈路360發(fā)送該分組的副本,從而確保了虛擬網絡設備子單元將會接收到由對等虛擬網絡設備子單元中的轉發(fā)引擎生成的任何MAC通知響應的副本。
例如,假設由于虛擬網絡設備子單元122(1)中包括的轉發(fā)引擎不知道哪個端口或上行鏈路接口與分組的目的地地址相關聯,因而虛擬網絡設備子單元122(1)擴散分組。作為分組擴散的一部分,虛擬網絡設備子單元122(1)經由虛擬交換機鏈路360將分組的副本發(fā)送到虛擬網絡設備子單元122(2)。如果虛擬網絡設備子單元122(2)內的轉發(fā)引擎已經知道目的地地址位于特定上行鏈路接口或端口之后(例如轉發(fā)表已經包括將目的地地址與網絡設備120之一的端口相關聯的條目),則該轉發(fā)引擎生成標識該關聯的MAC通知,該通知被分發(fā)到虛擬網絡設備子單元122(2)內的任何其他轉發(fā)引擎。由于分組最初是經由虛擬網絡設備鏈路360接收到的,因此虛擬網絡設備子單元122(2)也經由虛擬網絡設備鏈路360發(fā)送回MAC通知的副本。該MAC通知隨后可在虛擬網絡設備子單元122(1)中包括的轉發(fā)引擎之間分發(fā)。在基于MAC通知被更新之后,虛擬網絡設備子單元122(1)中的轉發(fā)引擎現在就知道由目的地地址標識的設備的位置了。因此,隨后接收到的尋址到該設備的分組將不會被擴散。
當連接到單個虛擬網絡設備子單元的虛擬鏈路束中的所有物理鏈路都發(fā)生故障時,虛擬鏈路束轉變成被耦合到單個虛擬網絡設備子單元的正常鏈路束。此時,每個虛擬網絡設備子單元相對該網絡設備束的行為被修改。例如,假設被耦合到虛擬網絡設備子單元122(2)的虛擬鏈路束250(1)中的所有上行鏈路都發(fā)生故障。此時,虛擬網絡設備子單元122(2)不再擁有任何可以經由虛擬鏈路束250(1)發(fā)送分組的本地上行鏈路接口。因此,虛擬網絡設備子單元122(2)將會在虛擬網絡設備鏈路360上對所有需要經由虛擬鏈路束250(1)發(fā)送的流量進行重定向。此外,由于網絡設備122(2)不再能夠經由虛擬鏈路束250(1)發(fā)送分組,因此虛擬網絡設備子單元122(1)將會停止阻止經由虛擬網絡設備鏈路360接收到的流量被經由虛擬鏈路束250(1)發(fā)送。如果被耦合到虛擬網絡設備子單元122(2)的虛擬鏈路束250(1)中的上行鏈路中的至少一條被恢復,則虛擬鏈路束250(1)將會轉變回其正常工作模式,在該模式中,虛擬網絡設備子單元122(2)將會經由虛擬鏈路束250(1)發(fā)送在本地接收到的分組,并且虛擬網絡設備子單元122(1)將會阻止經由虛擬網絡設備鏈路360接收到的分組經由虛擬鏈路束250(1)發(fā)送。
圖4A-4B示出了由包括在虛擬網絡設備內的虛擬網絡設備子單元實現的方法的流程圖。在圖4A的401處,接收到分組。基于分組的源地址以及在哪個端口或上行鏈路接口接收到分組,虛擬網絡設備子單元獲知發(fā)送設備的源標識符,如403處所示。如果分組是經由衛(wèi)星網絡設備或虛擬網絡設備內的另一個虛擬網絡設備子單元接收到的,則該源標識符可以標識衛(wèi)星網絡設備或另一虛擬網絡設備子單元中的端口或上行鏈路接口。例如,如果分組是經由虛擬網絡設備鏈路從另一虛擬網絡設備子單元接收到的,則附加到分組的頭部可以指示另一虛擬網絡設備子單元的哪個端口或上行鏈路接口接收到了該分組。在某些實施例中,頭部可以指示衛(wèi)星網絡設備的哪個端口最初從發(fā)送設備接收到該分組。接收該分組的虛擬網絡設備子單元隨后可以獲知所標識的端口或上行鏈路接口的邏輯標識符與分組的源標識符相關聯。該源標識符隨后可被用于將分組轉發(fā)到發(fā)送設備。
如果在405處確定分組是從本地上行鏈路接口或端口接收到的(即,如果分組不是從虛擬網絡設備內的另一虛擬網絡設備子單元接收到的),則虛擬網絡設備子單元嘗試將分組轉發(fā)到其目的地地址。例如,虛擬網絡設備子單元可以將目的地地址提供到轉發(fā)表,以確定哪個邏輯標識符(如果存在的話)與該目的地地址相關聯。如果在407處確定在轉發(fā)表中沒有命中,則虛擬網絡設備子單元尚未獲知(一個或多個)目的地設備之前的(一個或多個)接口的邏輯標識符。在這種情形下,虛擬網絡設備子單元將分組擴散到傳入VLAN(虛擬局域網)(傳入VLAN是包括由分組的源地址標識的設備的VLAN)中除分組到達的接口之外的所有外出端口和/或上行鏈路接口,如409處所示。對于包括在接口束中的接口(例如端口或上行鏈路),虛擬網絡設備子單元對于每個接口束選擇一個外出接口以經由其發(fā)送分組。如果分組是由虛擬網絡設備子單元經由接口束接收到的,則在發(fā)送分組時將排除該接口束中的所有接口。
如果在407處確定分組的目的地地址在轉發(fā)表中命中,則虛擬網絡設備子單元利用轉發(fā)表返回的邏輯標識符來選擇應當將分組發(fā)送到哪個(哪些)接口。如果在411處確定轉發(fā)表未標識接口束,則分組經由所標識的(一個或多個)端口和/或(一個或多個)上行鏈路接口被發(fā)送,如413處所示。如果轉發(fā)表標識了接口束,則虛擬網絡設備子單元經由所標識的接口束內包括的一個本地接口發(fā)送分組,如415處所示(如果轉發(fā)表標識其他非接口束接口,則分組也經由這些接口被發(fā)送)。
圖4B示出了在分組是經由虛擬網絡設備鏈路從另一虛擬網絡設備子單元接收到的(如在圖4A的405處確定)的情況下虛擬網絡設備子單元處理分組的方式。在這種情形下,如果分組應當經由任何接口束被轉發(fā),則處理分組的第一虛擬網絡設備子單元已經在該接口束內的鏈路上發(fā)送了該分組(假設正常工作,無故障)。
虛擬網絡設備子單元確定子單元是否已經獲知與分組的目的地設備相關聯的邏輯標識符。在該示例中,這是通過將目的地地址提供到轉發(fā)表來執(zhí)行的,如417處所示。如果在轉發(fā)表中沒有命中(即,如果尚未獲知關于該目的地地址的關聯),則虛擬網絡設備子單元在傳入VLAN上擴散該分組。這是在419處通過經由所有未包括在接口束中的端口和上行鏈路接口發(fā)送分組來執(zhí)行的。排除接口束是因為處理分組的第一虛擬網絡設備子單元已經經由每個接口束中的外出接口發(fā)送了該分組的副本。
如果在轉發(fā)表中存在命中,并且如果在421處轉發(fā)表未標識接口束,則分組經由所標識的端口和/或上行鏈路接口被發(fā)送,如423處所示。如果相反地,轉發(fā)表標識了接口束,則分組不經由該接口束被發(fā)送。例如,如425處所示,可以從經由所標識的接口束發(fā)送的分組流中過濾掉該分組。分組不經由接口束被發(fā)送是因為分組是經由虛擬網絡設備鏈路接收到的,這表明另一虛擬網絡設備子單元已經經由所標識的接口束發(fā)送了分組。在某些實施例中,功能425是由從該接口束中選出的外出接口執(zhí)行的。附加到分組的頭部包括指示該分組是經由虛擬網絡設備鏈路接收到的的信息。例如,接口束中包括的每個外出接口被配置為從經由該外出接口發(fā)送的分組流中過濾掉具有該頭部的分組。
圖5A-5F示出了當虛擬網絡設備未曾知道目的地設備的端口標識符時如何經由虛擬網絡設備輸送分組。在該示例中,工作為虛擬網絡設備202的線路卡的衛(wèi)星網絡設備被耦合在客戶端102(1)和102(2)以及虛擬網絡設備202之間。這些衛(wèi)星網絡設備上的端口是利用由虛擬網絡設備202分配的邏輯標識符來標識的。例如,在該示例中,虛擬網絡設備202向衛(wèi)星網絡設備520(1)內的端口分配了邏輯標識符“P1”,向衛(wèi)星網絡設備520(2)內的端口分配了邏輯標識符“P2”。由于虛擬網絡設備202將衛(wèi)星網絡設備520(1)和520(2)當作虛擬網絡設備202的線路卡來控制,因此虛擬網絡設備202將端口P1和P2看作本地端口。
如圖5A所示,虛擬網絡設備202包括兩個虛擬網絡設備子單元122(1)和122(2)。虛擬網絡設備子單元122(1)包括上行鏈路接口U1和U2,而虛擬網絡設備子單元122(2)包括上行鏈路接口U3和U4。兩個衛(wèi)星網絡設備520(1)和520(2)被耦合以與虛擬網絡設備202通信。衛(wèi)星網絡設備520(1)經由虛擬鏈路束250(1)與虛擬網絡設備202通信。衛(wèi)星網絡設備520(2)經由虛擬鏈路束250(2)與虛擬網絡設備202通信。虛擬鏈路束250(1)和虛擬鏈路束250(2)各自包括被耦合到虛擬網絡設備子單元122(1)的一條上行鏈路以及被耦合到虛擬網絡設備子單元122(2)的另一條上行鏈路。
在圖5A中,客戶端102(1)向衛(wèi)星網絡設備520(1)發(fā)送尋址到客戶端102(2)的分組。衛(wèi)星網絡設備520(1)經由端口P1接收該分組。在該示例中,衛(wèi)星網絡設備520(1)選擇虛擬鏈路束250(1)中的上行鏈路之一以在其上向虛擬網絡設備202發(fā)送分組。衛(wèi)星網絡設備520(1)可以基于分組中包括的目的地地址將分組發(fā)送到虛擬網絡設備202(例如在衛(wèi)星網絡設備520(1)執(zhí)行本地轉發(fā)的實施例中),或者,當然(例如在衛(wèi)星網絡設備520(1)不執(zhí)行任何本地轉發(fā)的實施例中),衛(wèi)星網絡設備520(1)可以將所有分組轉發(fā)到虛擬網絡設備202以便進行路由選擇和轉發(fā)。如果衛(wèi)星網絡設備520(1)執(zhí)行本地轉發(fā),則衛(wèi)星網絡設備520(1)還可以獲知客戶端102(1)位于端口P1之后(例如通過將使分組的源地址與端口P1相關聯的信息存儲在查找表中)。
如圖5B所示,衛(wèi)星520(1)選擇經由連接到虛擬網絡設備子單元122(1)的上行鏈路將分組發(fā)送到虛擬網絡設備202。該選擇可以基于負載共享因素進行。在許多實施例中,對上行鏈路的選擇是在沒有任何關于哪個上行鏈路連接到虛擬網絡設備202內的哪個虛擬網絡設備子單元的知識的情況下作出的。例如,在這種實施例中,衛(wèi)星設備520(1)不維護任何可用于基于每個上行鏈路被耦合到的虛擬網絡設備子單元來區(qū)分上行鏈路的狀態(tài)信息或其他信息。從而,對上行鏈路接口的選擇可以基于其他因素進行。
在該示例中,衛(wèi)星網絡設備520(1)在在所選上行鏈路上轉發(fā)分組之前將頭部附加到分組。該頭部標識衛(wèi)星網絡設備520(1)的端口P1,分組是經由該端口從客戶端102(1)接收到的。
在圖5C中,虛擬網絡設備子單元122(1)經由上行鏈路接口U1接收分組。基于附加的頭部,虛擬網絡設備子單元122(1)獲知客戶端102(1)位于衛(wèi)星網絡設備520(1)的端口P1之后(如上所述,在該實施例中,虛擬網絡設備子單元122(1)將衛(wèi)星網絡設備520(1)當成虛擬線路卡來操作,從而將端口P1看作本地端口)。
虛擬網絡設備子單元122(1)在轉發(fā)表中查找分組的目的地地址,以確定如何將分組轉發(fā)到客戶端102(2)。在該示例中,網絡設備122(1)不知道哪個端口與客戶端102(2)相關聯,因而查找返回擴散標識符,從而導致虛擬網絡設備子單元122(1)在傳入VLAN中擴散分組(傳入VLAN是包括客戶端102(1)的VLAN)。
虛擬網絡設備鏈路360以及虛擬鏈路束250(1)和250(2)是通過擴散索引被選擇的。由于分組是經由虛擬鏈路束250(1)中的上行鏈路接口接收到的,因此虛擬網絡設備子單元122(1)從經由上行鏈路接口U1發(fā)送的分組流中過濾掉該分組(注意,在替換實施例中,分組經由上行鏈路U1被發(fā)送回衛(wèi)星網絡設備520(1),然后衛(wèi)星網絡設備520(1)從經由端口P1發(fā)送到客戶端102(1)的分組流中過濾掉該分組)。
從而,如圖5D所示,分組經由虛擬網絡設備鏈路360中包括的鏈路之一以及經由上行鏈路接口U2被輸出。在該示例中,頭部被附加到經由上行鏈路接口U2輸出的分組的副本。頭部標識衛(wèi)星網絡設備520(2)內應當經由其輸出分組的(一個或多個)端口。由于分組被擴散,因此該頭部可以包括選擇一個或多個端口的適當群組(例如最初在其中接收到分組的VLAN中的所有端口)的擴散標識符。類似地,標識擴散標識符的頭部可以被附加到經由虛擬網絡設備鏈路360發(fā)送的分組的副本。附加到該分組的副本的頭部也可以包括最初經由其接收到分組的上行鏈路接口束的標識符。
圖5E示出虛擬網絡設備子單元122(2)是如何響應于經由虛擬網絡設備鏈路360接收到分組的副本來獲知發(fā)送設備客戶端102(1)位于端口P1之后的(虛擬網絡設備子單元122(2)已經知道端口P1位于虛擬鏈路束250(1)之后)。在該示例中,虛擬網絡設備子單元122(2)內包括的所有接口都是上行鏈路接口(即,虛擬網絡設備子單元122(2)沒有本地附接的客戶端)。由于虛擬網絡設備子單元122(2)經由虛擬網絡設備鏈路360接收到分組,因此虛擬網絡設備子單元122(2)知道分組已經經由擴散標識符中指示的每個上行鏈路接口束被轉發(fā)。因此,虛擬網絡設備子單元122(2)從經由上行鏈路接口U3和U4輸出的流中過濾掉該分組。在一個實施例中,這是由每個上行鏈路接口中的硬件來執(zhí)行的。例如,上行鏈路接口U3可以基于附加到分組的頭部來過濾分組。如果頭部指示分組是經由虛擬網絡設備鏈路360接收到的,則U3從經由U3發(fā)送的分組流中去除該分組。
在圖5F中,衛(wèi)星網絡設備520(2)已經經由擴散標識符中指示的其所有端口(在這里只示出了端口P2)輸出了分組的副本。因此,分組經由衛(wèi)星網絡設備520(2)的端口P2被轉發(fā)到其目的地設備,即客戶端102(2)。
圖6A-6D示出了當虛擬網絡設備202已經知道目的地設備的端口標識符時如何經由圖5A-5F的虛擬網絡設備輸送分組。在該示例中,客戶端102(2)發(fā)送尋址到客戶端102(1)的分組,如圖6A所示。虛擬網絡設備202中的虛擬網絡設備子單元122(1)和122(2)在該分組被發(fā)送之前各自已經意識到客戶端102(1)位于衛(wèi)星網絡設備102(1)的端口P1之后。分組經由端口P2被衛(wèi)星網絡設備520(2)接收。
圖6B示出了衛(wèi)星網絡設備520(2)如何經由虛擬鏈路束250(2)將分組發(fā)送到虛擬網絡設備202。在該示例中,虛擬鏈路束250(2)包括兩條上行鏈路。衛(wèi)星網絡設備520(2)選擇虛擬鏈路束250(2)內的上行鏈路之一(例如基于負載共享因素)。在這里,衛(wèi)星網絡設備520(2)已選擇了被耦合到上行鏈路接口U4的上行鏈路。在經由所選上行鏈路發(fā)送分組的副本之前,衛(wèi)星網絡設備520(2)還將標識端口P2的頭部附加到分組的該副本。
在圖6C中,虛擬網絡設備子單元122(2)經由上行鏈路接口U4接收來自衛(wèi)星網絡設備520(2)的分組。響應于接收到附加到分組的頭部,虛擬網絡設備子單元122(2)獲知客戶端102(2)位于端口P2之后。由于虛擬網絡設備子單元122(2)已經知道該分組的目的地,即客戶端102(1)位于端口P1之后(例如因為已經分配了使客戶端102(1)的地址與端口P1相關聯的查找表條目),因此虛擬網絡設備子單元122(2)經由虛擬鏈路束250(1)將分組轉發(fā)到衛(wèi)星網絡設備520(1),如圖6D所示。在該示例中,虛擬網絡設備子單元122(2)包括被耦合到虛擬鏈路束250(1)的本地上行鏈路接口U3,從而允許虛擬網絡設備子單元122(2)直接經由上行鏈路接口U3將分組的副本發(fā)送到衛(wèi)星網絡設備520(1),而無需通過虛擬網絡設備子單元122(1)發(fā)送副本。
圖7A-7F示出了如何經由虛擬網絡設備輸送分組的另一個示例。在該示例中,介于客戶端102(1)和102(2)以及虛擬網絡設備202之間的接入層網絡設備120(1)和120(2)是非衛(wèi)星網絡設備。從而,網絡設備120(1)和120(2)執(zhí)行它們自己的路由選擇和轉發(fā),并且不由虛擬網絡設備202配置。類似地,虛擬網絡設備202不將網絡設備120(1)和120(2)的端口看作本地端口,虛擬網絡設備202也不向網絡設備120(1)和120(2)中的端口分配端口標識符。此外,虛擬鏈路束250(1)和250(2)中包括的鏈路不是上行鏈路,并且,與衛(wèi)星網絡設備不同,在將分組轉發(fā)到虛擬網絡設備202之前,網絡設備120(1)和120(2)不向分組附加信息以指定哪個本地端口接收到每個分組。
如圖7A所示,網絡設備120(1)通過虛擬鏈路束250(1)被耦合到虛擬網絡設備202,而網絡設備120(2)通過虛擬鏈路束250(2)被耦合到虛擬網絡設備202。兩個虛擬鏈路束都包括在虛擬網絡設備子單元122(1)上終止的鏈路和在虛擬網絡設備子單元122(2)上終止的鏈路。
在該示例中,與圖5A-5F的示例很相似,網絡設備120(1)經由端口P1接收來自客戶端102(1)的尋址到客戶端102(2)的分組。一旦接收到該分組,網絡設備120(1)就獲知客戶端102(1)位于端口P1之后。網絡設備120(1)確定分組應當被轉發(fā)到虛擬網絡設備202,并且選擇虛擬鏈路束250(1)中的鏈路之一以在其上向虛擬網絡設備202發(fā)送分組。鏈路選擇例如可以通過執(zhí)行基于散列的負載共享算法來進行。在該示例中,網絡設備120(1)選擇被耦合到虛擬網絡設備子單元122(1)的鏈路。
圖7B示出了網絡設備120(1)如何經由虛擬鏈路束250(1)將分組發(fā)送到虛擬網絡設備202。具體而言,網絡設備120(1)經由被耦合到虛擬網絡設備子單元122(1)的接口I1的鏈路來發(fā)送分組。接口I1是接口束IB1的一部分,該接口束還包括虛擬網絡設備子單元122(2)的接口I3。
在圖7C中,虛擬網絡設備子單元122(1)響應于經由接口I1接收到分組而獲知客戶端102(1)位于接口束IB1之后。在該示例中,虛擬網絡設備子單元122(1)不知道哪些接口與分組的目的地地址相關聯。結果,虛擬網絡設備子單元122(1)經由所有外出鏈路擴散分組。
圖7D示出了虛擬網絡設備子單元122(1)通過經由虛擬網絡設備鏈路360發(fā)送分組的一個副本并經由接口I2發(fā)送分組的另一個副本來擴散分組。經由接口I2發(fā)送分組起的作用是經由虛擬鏈路束250(2)將分組的副本發(fā)送到網絡設備120(2)。由于分組是經由接口束IB1接收到的,因此分組不經由該接口束中的任何鏈路被發(fā)送。
在經由虛擬網絡設備鏈路360發(fā)送分組的副本之前,虛擬網絡設備子單元122(1)向分組附加頭部。頭部指示分組是經由接口束IB1接收到的(例如頭部可以包括用于標識接口束IB1中的接口的邏輯標識符)。
如圖7E所示,經由虛擬鏈路束250(2)發(fā)送的分組的副本被網絡設備120(2)接收到。一旦接收到該分組,網絡設備120(2)就獲知客戶端102(1)位于被耦合到虛擬鏈路束250(2)的接口束之后。該接口束包括兩個接口,從而如果網絡設備120(2)隨后處理尋址到客戶端102(1)的分組,則網絡設備120(2)就可以選擇虛擬鏈路束250(2)中的任何一個以在其上發(fā)送分組。
另外,虛擬網絡設備子單元122(2)響應于經由虛擬網絡設備鏈路360接收到分組的副本和附加的頭部而獲知客戶端102(1)位于接口束IB1之后。由于虛擬網絡設備子單元122(2)也不知道如何將分組轉發(fā)到目的地地址,因此虛擬網絡設備子單元122(2)也擴散分組。但是,由于虛擬網絡設備子單元122(2)中僅有的接口不是到虛擬網絡設備鏈路360的接口就是到虛擬鏈路束的接口,因此分組被從經由這些接口發(fā)送的傳出分組流中過濾掉。這是因為分組已經被虛擬網絡設備子單元122(1)處理,從而不需要經由虛擬網絡設備鏈路360將分組的副本轉發(fā)回虛擬網絡設備子單元122(1),也不需要經由虛擬網絡設備鏈路發(fā)送額外的分組副本。在圖7F中,網絡設備120(2)經由端口P2發(fā)送分組,該端口P2被耦合到分組的目的地,即客戶端102(2)。
注意,諸如圖7A-7F所示的系統還可以在虛擬網絡設備202已經知道經由其轉發(fā)分組的適當接口束時處理分組。在這種情形下,可以按與圖6A-6D所示的方式幾乎相同的方式來將分組轉發(fā)過系統。但是,虛擬網絡設備子單元不是基于知道目的地設備位于特定衛(wèi)星網絡設備端口之后來轉發(fā)分組,而是基于它們知道目的地設備位于特定接口束之后來轉發(fā)分組。
注意,在某些實施例中,使用虛擬鏈路束所需的功能是在被耦合到虛擬鏈路束的虛擬網絡設備子單元、網絡設備和/或衛(wèi)星網絡設備上執(zhí)行的軟件中實現的。例如,每個虛擬網絡設備子單元、網絡設備和/或衛(wèi)星網絡設備可以包括計算機可讀介質,可用于控制和/或使用虛擬鏈路束的程序指令和/或數據被存儲在計算機可讀介質上。計算機可讀介質的示例性類型包括CD(高密盤)、DVD(數字多功能盤)、硬盤、光盤、磁帶設備、軟盤和存儲器(例如各種類型的RAM(隨機訪問存儲器)、ROM(只讀存儲器)、閃存、MEMS(微電子機械系統)存儲器等等)。這種網絡設備可以包括被配置為執(zhí)行存儲在計算機可讀介質中的程序指令的一個或多個處理器(例如微處理器、PLD(可編程邏輯器件)或ASIC(專用集成電路))。程序指令可以包括用于執(zhí)行虛擬鏈路束的控制協議處理的程序指令,以及用于經由虛擬鏈路束中包括的鏈路選擇性地轉發(fā)分組(例如基于分組是否是經由虛擬網絡設備鏈路接收到的)的控制指令。程序指令和/或數據也可以經由諸如因特網這樣的網絡或在承載介質上被傳送到虛擬網絡設備子單元、網絡設備和/或衛(wèi)星網絡設備。在某些實施例中,計算機可讀介質是諸如網絡和/或無線鏈路之類的承載介質,諸如電、電磁或數字信號之類的編碼了數據和指令的信號在承載介質上被輸送。
雖然已經針對本發(fā)明的特定實施例描述了本發(fā)明,但是可以向本領域的技術人員建議各種變化和修改。希望這種變化和修改落在所附權利要求書的范圍之內。
工業(yè)應用性本發(fā)明的實施例可用于聯網領域。
權利要求
1.一種系統,包括第一虛擬網絡設備子單元(122(1)),其包括第一接口(320(9));以及被耦合到所述第一接口并且被配置為轉發(fā)經由所述第一接口接收到的分組的控制器(310(1)),其中所述第一接口(320(9))由第一邏輯標識符標識,第二接口(320(16))由所述第一邏輯標識符標識,接口束包括所述第一接口(320(9))和所述第二接口(320(16)),并且所述第二接口(320(16))被包括在第二虛擬網絡設備子單元(122(2))中。
2.如權利要求1所述的系統,還包括所述第二虛擬網絡設備子單元(122(2))。
3.如權利要求2所述的系統,其中所述第一虛擬網絡設備子單元(122(1))被配置為維護與所述第二虛擬網絡設備子單元(122(2))一致的轉發(fā)信息。
4.如權利要求3所述的系統,其中所述控制器(310(1))被配置為根據運行在所述接口束上的路由選擇協議為所述第一接口(320(9))執(zhí)行控制協議處理,所述控制器(310(1))被配置為將在執(zhí)行所述控制協議處理時生成的信息提供到所述第二虛擬網絡設備子單元(122(2))中包括的次級控制器(310(2)),并且所述次級控制器(310(2))被配置為利用所述信息來管理所述第二接口(310(16))。
5.如權利要求1、2、3或4所述的系統,其中所述控制器(310(1))被配置為在查找表中查找分組的目的地地址,并且如果所述查找表返回所述第一邏輯標識符,則所述第一虛擬網絡設備子單元(122(1))被配置為使經由所述第一接口(320(9))發(fā)送所述分組優(yōu)先于經由所述第二接口(320(16))發(fā)送所述分組。
6.如權利要求5所述的系統,其中如果所述查找表返回所述第一邏輯標識符,則所述第一虛擬網絡設備子單元(122(1))被配置為經由所述第一接口(320(9))發(fā)送所述分組而不是經由所述第二接口(320(16))發(fā)送所述分組,除非所述第一接口(320(9))和被耦合到所述第一接口的鏈路中的一個或多個發(fā)生故障。
7.如權利要求6所述的系統,其中所述第一虛擬網絡設備子單元(122(1))包括多個接口(320),所述接口中的多于一個接口各自被包括在所述接口束中,并且所述接口中的所述多于一個接口包括所述第一接口。
8.如權利要求7所述的系統,其中如果被耦合到所述接口中的所述多于一個接口的每條相應的通信鏈路發(fā)生故障,則所述第一虛擬網絡設備子單元(122(1))被配置為經由所述第二虛擬網絡設備子單元(122(2))中包括的所述第二接口(320(16))轉發(fā)所述分組。
9.如權利要求1、2、3、4、5、6、7或8所述的系統,其中所述第一虛擬網絡設備子單元(122(1))通過虛擬網絡設備鏈路(360)被耦合到所述第二虛擬網絡設備子單元(122(2))。
10.如權利要求9所述的系統,其中所述第一虛擬網絡設備子單元(122(1))被配置為響應于經由所述虛擬網絡設備鏈路(360)接收到第二分組而獲知所述第二分組的源地址位于所述第一接口(320(9))之后。
11.如權利要求9所述的系統,其中如果所述第二分組是經由所述虛擬網絡設備鏈路(360)接收到的,則所述第一接口(320(9))被配置為從經由所述第一接口(320(9))發(fā)送的分組流中過濾掉所述第二分組。
12.如權利要求9所述的系統,還包括被耦合到所述接口束的虛擬鏈路束(250(1))。
13.如權利要求12所述的系統,還包括通過所述虛擬鏈路束被耦合到所述第一虛擬網絡設備子單元(122(1))和所述第二虛擬網絡設備子單元(122(2))的網絡設備(120(1))。
14.如權利要求12所述的系統,其中所述網絡設備被配置為利用基于散列的負載共享算法來選擇所述虛擬鏈路束(250(1))中包括的多條通信鏈路之一,并且所述網絡接口被配置為經由所述通信鏈路中被選中的鏈路發(fā)送分組。
15.一種方法,包括接收分組,其中所述分組的目的地標識符標識接口束,并且所述接口束包括第一接口;以及如果所述分組是經由虛擬網絡設備鏈路接收到的,則從經由所述第一接口發(fā)送的分組流中過濾掉所述分組。
16.如權利要求15所述的方法,還包括如果所述分組不是經由所述虛擬網絡設備鏈路接收到的,則經由所述第一接口發(fā)送所述分組。
17.如權利要求16所述的方法,還包括在第一虛擬網絡設備子單元中包括的查找表和第二虛擬網絡設備子單元中包括的第二查找表之間維持一致性。
18.如權利要求16或17所述的方法,還包括在第一虛擬網絡設備子單元中包括的主控制器處為所述接口束執(zhí)行控制協議處理,其中所述第一接口被包括在所述第一虛擬網絡設備子單元中。
19.如權利要求18所述的方法,還包括響應于通過執(zhí)行所述控制協議處理生成的信息管理所述第二虛擬網絡設備子單元的第二接口,其中所述第二接口被包括在所述接口束中。
20.如權利要求19所述的方法,還包括在查找表中查找第二分組的目的地地址,并且如果所述查找表返回所述目的地標識符,則經由所述第一虛擬網絡設備子單元的第一接口發(fā)送所述分組而不是經由所述第二虛擬網絡設備子單元的第二接口發(fā)送所述分組。
21.如權利要求15、16、17、18、19或20所述的方法,還包括響應于經由所述虛擬網絡設備鏈路接收到所述分組,而獲知所述分組的源地址位于本地接口之后。
22.一種系統,包括用于接收分組的裝置,其中所述分組的目的地標識符標識接口束,并且所述接口束包括第一接口;以及用于在所述分組是經由虛擬網絡設備鏈路接收到的的情況下從經由所述第一接口發(fā)送的分組流中過濾掉所述分組的裝置。
23.如權利要求22所述的系統,還包括用于在所述分組不是經由所述虛擬網絡設備鏈路接收到的的情況下經由所述第一接口發(fā)送所述分組的裝置。
24.如權利要求23所述的系統,還包括用于在第一虛擬網絡設備子單元中包括的查找表和第二虛擬網絡設備子單元中包括的第二查找表之間維持一致性的裝置。
25.如權利要求23或24所述的系統,還包括用于在第一虛擬網絡設備子單元中包括的主控制器處為所述接口束執(zhí)行控制協議處理的裝置,其中所述第一接口被包括在所述第一虛擬網絡設備子單元中。
26.如權利要求25所述的系統,還包括用于響應于通過執(zhí)行所述控制協議處理生成的信息管理所述第二虛擬網絡設備子單元的第二接口的裝置,其中所述第二接口被包括在所述接口束中。
27.如權利要求26所述的系統,還包括用于在查找表中查找第二分組的目的地地址的裝置,以及用于在所述查找表返回所述目的地標識符的情況下經由所述第一虛擬網絡設備子單元的第一接口發(fā)送所述分組而不是經由所述第二虛擬網絡設備子單元的第二接口發(fā)送所述分組的裝置。
28.如權利要求22、23、24、25、26或27所述的系統,還包括用于響應于經由所述虛擬網絡設備鏈路接收到所述分組而獲知所述分組的源地址位于本地接口之后的裝置。
29.一種計算機可讀介質,包括可執(zhí)行以實現以下步驟的程序指令檢測分組的接收,其中所述分組的目的地標識符標識接口束,并且所述接口束包括第一接口;以及如果所述分組是經由虛擬網絡設備鏈路接收到的,則從經由所述第一接口發(fā)送的分組流中過濾掉所述分組。
30.如權利要求29所述的計算機可讀介質,其中所述程序指令還可執(zhí)行以實現以下步驟如果所述分組不是經由所述虛擬網絡設備鏈路接收到的,則經由所述第一接口發(fā)送所述分組。
31.如權利要求30所述的計算機可讀介質,其中所述程序指令還可執(zhí)行以實現以下步驟在第一虛擬網絡設備子單元中包括的查找表和第二虛擬網絡設備子單元中包括的第二查找表之間維持一致性。
32.如權利要求30或31所述的計算機可讀介質,其中所述程序指令還可執(zhí)行以實現以下步驟在第一虛擬網絡設備子單元中包括的主控制器處為所述接口束執(zhí)行控制協議處理,其中所述第一接口被包括在所述第一虛擬網絡設備子單元中。
33.如權利要求32所述的計算機可讀介質,其中所述程序指令還可執(zhí)行以實現以下步驟響應于通過執(zhí)行所述控制協議處理生成的信息管理所述第二虛擬網絡設備子單元的第二接口,其中所述第二接口被包括在所述接口束中。
34.如權利要求33所述的計算機可讀介質,其中所述程序指令還可執(zhí)行以實現以下步驟在查找表中查找第二分組的目的地地址,并且如果所述查找表返回所述目的地標識符,則經由所述第一虛擬網絡設備子單元的第一接口發(fā)送所述分組而不是經由所述第二虛擬網絡設備子單元的第二接口發(fā)送所述分組。
35.如權利要求29、30、31、32、33或34所述的計算機可讀介質,其中所述程序指令還可執(zhí)行以實現以下步驟響應于經由所述虛擬網絡設備鏈路檢測到所述分組的接收,而獲知所述分組的源地址位于本地接口之后。
全文摘要
虛擬網絡設備(202)包括若干個不同的虛擬網絡設備子單元,例如(122(1)和122(2)),它們共同作為單個邏輯網絡設備工作。接口束包括位于虛擬網絡設備中包括的不同虛擬網絡設備子單元中的多于一個虛擬網絡設備子單元中的接口。接口束被耦合到虛擬鏈路束(250),該虛擬鏈路束將虛擬網絡設備連接到另一設備。接口束被當作單個邏輯接口來管理。
文檔編號H04L12/56GK1914867SQ200580003792
公開日2007年2月14日 申請日期2005年1月27日 優(yōu)先權日2004年2月19日
發(fā)明者邁克爾·R·史密斯, 杰弗里·伊·王, 艾力·戈爾杉 申請人:思科技術公司