專利名稱:多鏈路透明互連路由橋之間掩蔽的以太網地址的使用的制作方法
技術領域:
本發明涉及網絡計算領域,尤其涉及在多鏈路透明互連(TRILL)路由橋之間使用掩蔽的(masked)以太網地址。
背景技術:
計算機網絡通常包括能夠相互通信以用于處理數據流量和控制指令的計算設備的集合。例如,這種設備可以包括服務器,數據中心,路由器,網絡交換機,管理應用,無線接入點和客戶端計算機。計算機網絡可提供網絡連接給有線計算設備和/或無線計算設備。計算機網絡可以包括各種配置。一種這樣的配置被稱為虛擬專用網(VPN),它是ー種運行在公共通信網絡(如因特網)上為遠程辦公室或個人客戶提供對特定網絡的安全、 私人的訪問的網絡,所述特定網絡例如是特定于組織或公司的網絡。VPN通過對不在同一專用網絡上的兩個或更多聯網設備之間的數據傳送進行封裝來工作。這種封裝使得所傳送的數據對于一個或多個中介局域網或廣域網上的其他設備保持私密性。VPN可以使ー組客戶端計算機作為給定廣播域的成員進行通信和訪問特定的資源,即使各成員客戶端計算機沒有附接到同一網絡交換機也是如此。包括VPN服務在內的網絡服務通常是采用以太網技術提供的。以太網已經成為數據傳輸的默認數據鏈路層技術,也就是對于開放系統互連(OSI)模型的第二層(L2)是默認的。存在將以太網技術擴展到其他或更大網絡的若干種伴隨的技術和協議。ー種這樣的協議是多鏈路透明互連(TRILL)協議。TRILL是ー種被設計為提供通過傳輸網絡承載L2用戶流量的透明機制的技術。TRILL使用傳輸網絡中被稱為路由網橋(RBridge)的節點或設備。RBridge是支持TRILL規約的設備。TRILL目前是因特網工程任務組(IETF)的協議草茱,其規約 nI從 ietf. org(tools, ietf. org/search/draft-ietf-trill-rbridge-protoco1-16)獲得。在TRILL拓撲結構中,RBridge被傳輸網絡分開。傳輸網絡可以使用各種各樣的技術,但以太網技術是傳輸網絡的最受歡迎的選擇。當使用RBridge之間的以太網傳輸吋,轉發的分組承載TRILL以太網頭部,該TRILL以太網頭部包括媒體訪問控制(MAC)源地址(MAC-SA)和MAC目的地址(MAC-DA)。使用TRILL的網絡可以直接通過RBridge或通過ー個或多個傳輸網絡連接客戶網絡,允許多個RBridge的互連而不失去各個客戶的單獨定義的虛擬局域網(VLAN)。存在其他相關技術,這些其他相關技術遵循連接兩個或更多的客戶網絡(接入網絡)的傳輸網絡的模型,其中傳輸網絡的功能與客戶網絡不同,即使ー個管理員運行這兩個網絡也是如此。
發明內容
諸如多鏈路透明互連(TRILL)網絡或使用以太網封裝技術的其他網絡之類的傳輸網絡面臨的挑戰之ー是擴展路由和交換功能。TRILL網絡在將分組(已經具有至少ー個封裝的分組)通過傳輸網絡進行路由之前對這樣的分組進行封裝。分組被在入口 RBridge處封裝,在中間RBridge處部分解封并重新封裝,并在出ロ RBridge處解封,然后再繼續到目的客戶網絡。對現有的分組(已經有頭部)的以太網封裝可以簡化并加快通過傳輸網絡的數據傳輸,但可能以降低路由功能為代價。在RBridge之間轉發分組時,常常希望能夠在分組中包括可由RBrid ge甚至接收分組的以太網傳輸設備使用的額外的信息,以進行某種高效的處理。例如,如果管理員想在傳輸網絡內添加另外的功能,那么管理員將必須配置傳輸網絡以使每個節點對給定分組進行更為深入的查看(檢查封裝頭部內的頭部)。這種附加特征可包括支持等成本多路徑路由(ECMP)而不對用戶流進行不正確的排序,識別特定的用戶網絡接ロ(入口 RBridge的非傳輸接ロ),提供生存時間(TTL)信息,識別流路徑,或任何額外的信息或元數據。然而,讓每個節點執行這樣的深度分組檢測會減慢傳輸網絡內的流量,這可能導致延遲和分組丟失。或者,可引入新的路由協議,但新的協議將需要遍及傳輸網絡內所有節點的大量的硬件和軟件更新,時間和成本可能過高。本申請所公開的技術包括擴展傳輸網絡的功能的特征和方法。技術包括對以太網地址頭部內的一部分信息進行掩蔽。通過使用用于TRILL頭部中以太網MAC地址的地址掩碼,掩蔽的位可用于除了尋址以外——或不同于尋址——的目的。系統限制在RBridge (傳輸網絡節點)的轉發表中進行地址查找時應由RBridge考慮的地址頭部中的位數。使用地址位的一子集來標識TRILL網絡中的地址信息。(ー個或多個)地址字段中其余的位變為可用于多種應用目的的空閑位。當執行地址查找時,空閑位針對地址查找可被掩蔽或以其他方式忽略,但被用于另外的網絡管理或路由操作。通過使用已經存在于TRILL封裝頭部中的信息字段,這種技術提供了另外的信息而不増加分組大小。地址字段中釋放的位不被視為地址信息。因此,將這些空閑位用于其他目的并不會導致需要存儲在轉發表中的地址數目的増加。這種解決方案不給RBridge和以太網傳輸功能帶來實現過于復雜的負擔。一個實施例包括地址管理器,該地址管理器執行分組交換處理。地址管理器在第一數據交換設備處接收數據分組,所述第一數據交換設備例如是TRILL網絡的RBridge或傳輸網絡的邊緣節點。數據分組具有現有的頭部,并且是從客戶網絡接收到的。地址管理器使用TRILL頭部封裝數據分組。TRILL頭部具有至少包括傳輸設備地址空間和TRILL設備地址空間的數據結構。封裝數據分組包括在傳輸設備地址空間內設定第一部分位,以使得該第一部分位指示作為TRILL網絡內節點的數據交換設備地址。即,地址管理器在該設備地址空間的可用位總數的一子集中輸入設備地址信息。封裝數據分組還包括在傳輸設備地址空間內設定第二部分位,以使得該第二部分位指示與作為TRILL網絡內節點的數據交換設備地址不同的信息。換言之,可將該第二部分位用作元數據或額外信息,對其的使用不同于指示設備地址(源或目的地址)。封裝數據分組還包括設定TRILL設備地址空間中的位,以使得這些位指示入口 RBridge別名和出ロ RBridge別名。第一數據交換設備(入口RBridge)然后經由TRILL網絡轉發數據分組。在另ー實施例中,使用TRILL頭部包括在TRILL頭部的VLAN指示器空間內指示出傳輸設備地址空間的哪些位指示數據交換設備地址,以及傳輸設備地址空間的哪些位指示與數據交換設備地址不同的信息。因此,在TRILL頭部的VLAN空間內包含的另外的信息可以指示針對地址查找要掩蔽哪些位,使用哪些位。在另ー實施例中,在提供商地址空間內包括另外的信息,以標識流標識符或提供用于流路徑計算的信息。在另ー實施例中,地址管理器在TRILL網絡內的RBridge設備(例如中間RBridge)處接收來自TRILL網絡內另ー節點的數據分組。該數據分組具有通過TRILL頭部封裝的客戶網絡頭部。TRILL頭部包括傳輸設備地址空間和RBridge別名空間。地址管理器從TRILL頭部內的傳輸設備地址空間識別傳輸設備地址,傳輸設備地址空間具有指示第一數據交換設備的傳輸設備地址的第一部分位。傳輸設備地址空間具有指示與第一數據交換設備的傳輸設備地址不同的信息的第二部分位。地址管理器基于在所述第一部分位中指示的傳輸設備地址,在RBridge設備的轉發表中執行查找。RBridge然后利用指示第二數據交換設備地址的位來替換指示第一數據交換設備的傳輸設備地址的第一部分位,同時保持第二部分位不變。因此,RBridge僅修改傳輸設備地址空間內的一部分位,同時保持其余部分不變,或將其余部分原樣拷貝到用來轉發數據分組的另ー TRILL頭部實例。RBridge然后經由TRILL網絡轉發數據分組。
本申請所公開的技術還可通過提供逐跳路徑選擇(下ー節點選擇)來支持等成本多路徑路由(ECMP),而不増加分組開銷或需要深入分組檢查。在一個實施例中,地址管理器在第一數據交換設備處接收數據分組。該數據分組具有現有的頭部,并且是從客戶網絡接收到的。第一數據交換設備是傳輸網絡的邊緣節點。這種邊緣節點可以是TRILL網絡的入口 RBridge,提供商骨干橋接(PBB)網絡的骨干邊緣橋,等等。地址管理器使用傳輸網絡頭部封裝數據分組。傳輸網絡頭部具有一數據結構,該數據結構包括傳輸設備地址空間,可選地還包括虛擬局域網(VLAN)指示器空間。封裝數據分組包括設定傳輸設備地址空間內的第一部分位,以使得該第一部分位指示作為傳輸網絡內節點的數據交換設備地址。地址管理器通過使用來自現有的頭部的分組信息作為用于生成流標識符的計算輸入,例如通過對下面的客戶信息進行哈希計算,來生成流標識符。封裝數據分組包括設定傳輸設備地址空間內的第二部分位,以使得該第二部分位指示流標識符。數據交換設備通過使用來自傳輸設備地址空間的流標識符作為用于選擇到傳輸網絡的下一跳節點的轉發路徑的計算輸入,來選擇轉發路徑。數據交換設備然后使用所選擇的轉發路徑將數據分組轉發到傳輸網絡中的下ー跳節點。后續的節點然后可以使用流標識符以用于下ー跳選擇。后續節點還可提供反向路徑轉發(RPF)檢查和生存時間(TTL)功能。本申請的另外實施例包括用于執行以上總結和以下詳細公開的步驟和操作的軟件程序。一個這種實施例包括計算機程序產品,其具有計算機存儲介質(例如,非暫態的有形計算機可讀介質,位置分開或位于ー處的存儲介質,計算機存儲媒體或介質,等等),該計算機存儲介質包括在其上編碼的計算機程序邏輯,其當在具有處理器和相應存儲器的計算機化裝置中執行時對處理器進行編程以執行(或使處理器執行)本申請所公開的操作。這種設置通常作為軟件、固件、微代碼、代碼數據(例如數據結構)等等來提供,其被設置或編碼在諸如光學介質(例如CD-ROM),軟盤,硬盤,ー個或多個ROM或RAM或PROM芯片,專用集成電路(ASIC),現場可編程門陣列(FPGA)等等的計算機可讀存儲介質上。軟件或固件或其他這種配置可以安裝到計算機化設備上,以使該計算機化設備執行本申請所說明的技木。因此,本發明的ー個具體實施例涉及ー種計算機程序產品,其包括ー個或多個在其上存儲有指令以用于支持操作的非暫態計算機存儲介質,所述操作例如有在第一數據交換設備處接收數據分組,該數據分組具有現有的頭部,并且是從客戶網絡接收到的,第一數據交換設備是TRILL網絡的入ロ RBridge ;使用TRILL頭部封裝數據分組,該TRILL頭部具有一數據結構,該數據結構包括傳輸設備地址空間和TRILL設備地址空間;封裝數據分組包括設定傳輸設備地址空間內的第一部分位,以使得該第一部分位指示作為TRILL網絡內節點的數據交換設備地址;封裝數據分組包括設定傳輸設備地址空間內的第二部分位,以使得該第二部分位指示與TRILL網絡內節點的數據交換設備地址不同的信息;封裝數據分組包括設定TRILL設備地址空間內的位,以使得這些位指示入口 RBridge別名和出ロRBridge別名;以及經由TRILL網絡轉發數據分組。或者,本發明的另一具體實施例涉及ー種ー種計算機程序產品,其包括一個或多個在其上存儲有指令以用于支持操作的非暫態計算機存儲介質,所述操作例如有在第一數據交換設備處接收數據分組,該數據分組具有現有的頭部,并且是從客戶網絡接收到的,第一數據交換設備是傳輸網絡的邊緣節點;使用傳輸網絡頭部封裝數據分組,傳輸網絡頭部具有一數據結構,該數據結構包括傳輸設備地址空間和虛擬局域網(VLAN)指示器空間;封裝數據分組包括設定傳輸設備地址空間內的第一部分位,以使得該第一部分位指示作為傳輸網絡內節點的數據交換設備地址;封裝數據分組包括設定傳輸設備地址空間內的第二部分位,以使得該第二部分位指示流標識符;通過使用來自傳輸設備地址空間的流標識符作為用于選擇到傳輸網絡的下一跳節點的轉發路徑的計算輸入,來選擇轉發路徑;并且使用所選擇的轉發路徑將數據分組轉發到傳輸網絡中的下ー跳節點。本申請所描述的指令和方法當被相應計算機設備的處理器實施時,使得該處理器執行本申請所公開的方法。本發明的其他實施例包括用于執行以上總結和以下詳細公開的方法實施例步驟和操作中任何步驟和操作的軟件程序。當然,本申請所描述的不同步驟的討論順序的提出是為了清楚起見。一般而言,這些步驟可以按任何合適的順序來執行。而且應當理解,本申請中的系統、方法、設備等等中的每ー個都可以被嚴格作為軟件程序,作為軟件和硬件的混合體,或僅作為硬件例如在處理器內,或在操作系統內或在軟件應用程序內,或經由執行所有或部分操作的諸如人之類的非軟件應用而實施。本申請所描述的示例實施例可實現在例如美國新澤西州林克勞福特(Lincroft)的阿瓦雅公司所制造的產品和/或軟件應用中。如上所述,本申請中的技術非常適合于用在支持分組交換和路由的軟件應用中。但是應當注意,本申請的實施例不限于用在這種應用中,并且本申請所討論的技術也非常適合于其他應用。此外,盡管本申請中的不同特征、技術、配置等等中的每ー個可能在本申請的不同位置進行了討論,但希望這些概念中的每ー個都可以彼此獨立地執行,或彼此結合執行。因此,可以以許多不同方式實施和觀察本發明。 注意,本申請中的該“發明內容”部分并不指定本發明或所要求保護的發明的每個實施例和/或遞增的新穎方面。相反,該發明內容僅提供了對不同實施例和相對于傳統技術的相應新穎點的初歩討論。對于本發明和實施例另外的細節和/或可能的前景,請讀者參考本申請的“具體實施方式
”部分和相應附圖,這些將在下面進ー步討論。
從附圖所示的本申請的優選實施例的以下更具體描述中將會更清楚本發明的前述及其他目的、特征和優點,在附圖的所有不同視圖中,相似的標號指代相同部件。附圖不一定是按比例繪制的,而是將重點放在示出實施例、原理和概念上。圖IA和圖IB示出了 TRILL網絡以太網頭部的數據結構的概念表示。圖2是TRILL網絡的網絡示圖。圖3是根據本申請實施例的TRILL網絡的網絡示圖。圖4A、圖4B和圖4C根據本申請的實施例,示出了傳輸設備地址頭部內的示例劃分。圖5A和圖5B示出了用于與ECMP和TTL操作一起使用的示例MAC中MAC(MAC-in-MAC)封裝頭部。圖6-圖8的流程圖示出了根據本申請實施例,支持TRILL頭部地址掩蔽的處理的示例。圖9-圖11的流程圖示出了根據本申請實施例,支持TRILL頭部地址掩蔽的處理的示例。圖12的流程圖示出了根據本申請實施例,在傳輸網絡中使用地址掩蔽支持ECMP的處理的示例。圖13的流程圖示出了根據本申請實施例,在傳輸網絡中使用地址掩蔽支持ECMP的處理的示例。圖14是根據本申請實施例,在計算機/網絡環境中操作的地址管理器的示例框 圖。
具體實施例方式本申請所公開的技術包括擴展傳輸網絡功能的系統和方法。技術包括在封裝數據分組的TRILL頭部的傳輸設備地址空間內添加額外信息——其不同于設備源和目的地地址。以太網媒體訪問控制(MAC)或類似地址空間內的該額外信息用于不同于設備尋址的目的。例如,該額外信息可用于等成本多路徑路由(ECMP),標識特定的用戶網絡接ロ,提供生存時間(TTL)信息,指示流ID,流路徑,或用于其他任何數據傳輸管理目的。系統限制在RBridge (傳輸網絡節點)的轉發表中進行地址查找時應由RBridge考慮的地址頭部中的位數。使用地址位的一子集來標識TRILL網絡中的地址信息。(ー個或多個)地址字段中其余的位變為可用于多種應用目的的空閑位。當執行地址查找時,空閑位針對地址查找可被掩蔽或以其他方式忽略,但被用于另外的網絡管理或路由操作。本申請所公開的技術可與在客戶/接入網絡和提供商/傳輸網絡之間存在功能差異的任何網絡,以及使用封裝處理以用于通過傳輸網絡傳輸數據的傳輸網絡一起使用。為了方便描述本申請的特征和實施例,以下公開內容將主要在多鏈路透明互連(TRILL)技術的上下文中描述各實施例,但本領域技術人員將清楚如何可以將這些技術應用到另外的和相當的網絡技術,如提供商骨干橋接(PBB)或IEEE 802. Iah和最短路徑橋接(SPB)或IEEE802. Iaq的網絡技術。使用IEEE 802. Iah的網絡可以通過提供商的網絡對客戶網絡進行路由,允許多個提供商橋接網絡的互連而不失去各個客戶的単獨定義的虛擬局域網(VLAN)。另ー個這樣的協議是最短路徑橋接或IEEE 802. Iaq協議。使用IEEE 802. Iaq的網絡可以對拓撲結構和邏輯網絡成員資格這兩者進行通告。分組在邊緣節點處封裝在MAC中MAC 802. Iah或Q中Q(Q-in_Q)802. Iad幀中,并僅傳輸到邏輯網絡的其他成員。IEEE 802. Iaq支持單播和多播,并且所有的路由都在対稱的最短路徑上。IEEE 802. Iaq包括最短路徑橋接MAC(SPBM)功能。TRILL網絡是使用以太網封裝在位于TRILL網絡(傳輸網絡)邊緣的兩個或更多L2網絡之間傳輸用戶L2流量的L2網絡。使用TRILL封裝,入口 RBridge利用以太網頭部對從客戶網絡接收的數據分組進行封裝,以供在TRILL網絡中使用。圖IA和圖IB示出了這樣一個示例封裝頭部110的組成部分。頭部110-1示出了若干頭部字段。請注意這種封裝頭部可以包含除了圖IA所示的字段以外的另外字段。字段111是MAC目的地址頭部(MAC-DA)。目的地址字段包含6個字節(48位)的數據。字段112是MAC源地址頭部(MAC-SA)。源地址字段包含6個字節(48位)的數據。字段115包含用于TRILL以太網類型標簽的兩個字 節的數據。字段116用來標識正在使用的具體的TRILL版本(2位)。字段117是留作將來使用的2位的字段。字段118指示是否有多個目的地(I位)以使得幀(分組)要經由分布樹遞送到ー類目的終端站并且出ロ RBridge別名字段指定此樹。字段121是用來指示可選的能力和針對該能力將信息編碼到頭部中的選項的長度(5位)。字段122是用于生存時間(TTL)功能的跳計數字段,具有6位。RBridge丟棄接收到的跳計數為零的幀,否則它遞減跳計數。字段125是出ロ RBridge別名(2字節),字段126是入ロ RBridge別名(2字節)。RBridge別名是16位的動態指派的數量,其充當RBridge的IS-IS(中間系統到中間系統)ID的縮寫以實現更緊湊的編碼,并將被用來指定可能不同的同根樹。基本上,字段125 和 126 指示 RBridge 源地址(RBridge-SA)和 RBridge 目的地址(RBridge-DA)。頭部110-2類似于頭部110-1,只不過由于頭部110-2包括VLAN標簽,所以頭部110-2是具有標簽的以太網頭部。具體來說,字段114是VLAN標簽,其包括VLAN ID和優先級。需要注意的是,TRILL頭部將尋址分為TRILL尋址和傳輸網絡尋址。這是因為在轉發操作期間,某些字段在某些節點處被交換或替換,而其他字段保持不變。括號151標識的字段指示出在被中間RBridge或其他轉發節點轉發時保持不變的TRILL尋址字段。括號152標識的字段內的數據在轉發操作期間由中間RBridge改變,這將在下面說明。改變的數據來自用于傳輸網絡尋址(在這個特定例子中是以太網)的字段。參見圖2,TRILL網絡200包括RBridge 241。在這個例子中,節點241-1是入口RBridge,節點241-2是中間RBridge,節點241-3是出ロ RBridge。在這個簡化的示例示圖中,數據分組通過TRILL網絡200由左到右傳輸。請注意,在TRILL網絡中的RBridge可以具有中介網絡227-1和227-2,這些中介網絡可以是能夠使用本地MAC地址的基于以太網的L2橋接網絡。在進行轉發時,RBridge 241-1添加封裝頭部,其中MAC目的地址是網絡227-1中RBridge 241-2的MAC地址,還具有網絡227-1中RBridge 241-1的MAC源地址。可能需要在連接241-1和241-2的網絡227-1中被認可的VLAN標簽。封裝頭部還包括 RBridge 241-1 的入口 RBridge 別名和 RBridge 241-3 的出口 RBridge 別名。網絡227-1然后使用到RBridge 241-2的MAC-DA的傳統以太網橋接,將封裝后的數據分組遞送到RBridge 241-2。RBridge 241-2然后向RBridge 241-3轉發封裝后的數據分組,并通過用網絡 227-2 中 RBridge 241-3 的 MAC地址取代網絡 227-1 中 RBridge 241-2 的 MAC-DA,以及用網絡 227-2 中 RBridge 241-2 的MAC地址取代網絡 227-1 中 RBridge 241-1 的 MAC-SA,來改變封裝頭部。然后去除任何VLAN標簽,或代之以在作為連接RBridge 241-2和RBridge241-3的VLAN的網絡227-2中認可的VLAN標簽。網絡227-2然后使用到RBridge 241-3的MAC-DA的傳統橋接,將封裝后的數據分組遞送到RBridge 241-3。當在RBridge之間通過以太網傳輸網絡轉發分組時,當前使用兩個MAC地址(源和目的地)的所有48位來確定是否轉發分組,以及還確定在哪個外出接口上轉發分組。在RBridges之間轉發分組時,常常希望能夠在分組中包括可由入口/出口 RBridge和/或接收分組的中間RBridge使用的額外信息,作為用于高效處理的手段。TRILL技術與其他用于傳輸網絡的封裝技術相比有所不同。例如,對于PBB網絡,PBB封裝頭部從PBB網絡的一端到PBB網絡的另一端,即從邊緣節點到邊緣節點保持不變。然而,對于TRILL網絡,MAC-SA,MAC-DA和VLAN標簽在每ー跳(是RBridge節點的節點)處被替換。換句話說,姆次通過中間RBridge設備轉發TRILL分組時,中間RBridge保持封 裝頭部的一部分(通常是字段115,116,117,118,121,122,125和126),但改變或替換封裝頭部的一部分(字段111,112和114)。因此,中間RBridge對TRILL頭部進行解封并重新封裝,以使得第一部分字段保持不變,第二部分字段改變。MAC-SA和MAC-DA字段可以逐跳改變,這是因為TRILL頭部包括用于源TRILL設備和目的地TRILL設備的不同字段(字段125和126)。雖然MAC-SA和MAC-DA在每ー跳丟失,但TRILL頭部仍將TRILL設備頭部從入口 RBridge 承載到出 ロ RBridge。TRILL通過如下方式工作在RBridge當中廣播連接,使每個RBridge知道所有其他RBridge,以及它們之間的連接,以用于維護轉發表。TRILL還可以與不是基于以太網的傳輸網絡一起工作。在其他網絡,例如多協議標簽交換(MPLS)中,會使用不同的字段而非MAC-SA/MAC-DA,但TRILL頭部部分保持不變。通過將TRILL頭部分解成兩部分,TRILL可以在任何兩個RBridge之間具有単獨的傳輸網絡。于是頭部的以太網部分有效地僅標識下一跳RBridge,而RBridge-DA/RBridge_SA指示初始和最終目的地。因此,傳輸尋址不是端到端的尋址,而是下一跳尋址。在本申請的實施例中,TRILL頭部的MAC-SA和MAC-DA字段自身被構造為承載位的掩蔽部分和非掩蔽部分。在TRILL分組轉發過程中的中間RBridge處,MAC-SA和/或MAC-DA的掩蔽部分保持不變(或被帶過去),而非掩蔽部分根據進行轉發的RBridge而被交換或改變。換言之,在中間RBridge的轉發期間,MAC-SA/MAC-DA的一部分保持不變,而一部分改變了。TRILL頭部中的MAC-DA和MAC-SA各是48位,準備了 TRILL網絡中完整的“2的48次冪”(2的48次方)個地址。從本質上講,TRILL使用48位跨越ー個鏈路,即從ー跳到另ー跳。這是ー個極大的數字。大量的地址是不太可能在實際的TRILL網絡中部署的。確實,在實踐中,這種下一跳操作需要的地址數量是兩個或三個地址。這種下一跳尋址可以通過僅使用三到五位左右來完成。本申請的系統通過如下方式來使用此發現限制地址空間/字段中應該由RBridge在進行下ー跳轉發查找操作時考慮的位數。對于以太網傳輸網絡,這涉及到使用MAC-DA/MAC-SA和VLAN標簽的操作。因此,使用地址空間的48位的ー個較小子集來標識TRILL網絡中的設備地址信息,即用于地址字段的所希望用途,而其余位可用來在RBridge之間透明地傳遞信息。任何方案可用來選擇用于下ー跳TRILL尋址的子集的大小和配置。例如,可以使用一個簡單的規則,該規則使用地址信息的固定數目如前5位或前6位。其他的變體也是可能的。其余位有多種用途。其余位被標識為掩蔽位,即被指定為在轉發表查找期間被掩蔽或忽略,并在地址頭部的重新封裝期間被帶過去(保持)的位。這兩個地址字段(MAC-SA和MAC-DA)中這些其余的掩蔽位然后可以被視為可用于各種應用目的的空閑位。通過使用TRILL封裝頭部中已存在的信息字段,分組大小沒有增加。MAC-DA和MAC-SA內已被釋放用于不同的應用用途的位不被視為地址信息。因此,將這些空閑位用于其他目的,這不會導致需要位于(VLAN-ID,MAC)轉發表中的地址數目的増加。此外,連接故障管理(CFM) (IEEE-802, lag)不會受到影響,這是因為RBridges對轉發路徑的選擇仍僅限于VLAN-ID,MAC-DA和MAC-SA字段。至于 這種技術的實現,進行基于TRILL查找的轉發的若干傳統的半導體器件和網絡處理單元(NPU)已經有能力在進行查找時掩蔽MAC地址的ー部分。實施例并不限于應在(VLAN-ID,MAC-DA)和(VLAN_ID,MAC_SA)查找中掩蔽的特定數量的地址位。相反,實施例包括在源或目標設備地址查找中不使用的用于其他創造性和有益的應用用途(如ECMP)的地址位。對這樣的功能的支持可以經由對TRILL的版本更新,或數據路徑實現方式更新來實現。多個實施例可以確定要掩蔽的多個位,或與地址位不同的位。存儲在分組中固定位置的分組“熵”(entropy)的足夠大(若干位)的編碼可以用來支持ECMP,而不錯誤地對用戶流進行排序。其他實施例可以提供傳遞有關入口 RBridge上的進入非TRILL網絡接ロ和出ロ RBridge上的外出非TRILL網絡接ロ的信息的能力。還可以包括入口和出ロ RBridge可能感興趣但應被中間RBridge忽略的其他形式的元數據。這種技術提供了可擴展的功能而不増加分組開銷,不需要RBridge支持更大的基于(VLAN-ID,MAC)的轉發記錄,不影響CFM有效地測試所有可能被用戶數據幀使用的轉發路徑,且不給RBridge帶來實現過于復雜的負擔。—個一般的聯網目標在于將轉發表保持得小,以用于更好的縮放。在TRILL網絡,或具有分層尋址方案的其他傳輸網絡中,網絡通常被構造為連接兩個或更多客戶(接入)網絡的傳輸網絡。圖3示出了客戶網絡225-1和225-2。請注意,客戶網絡225-1包括用戶網絡接ロ(UNI) 205-1,205-2和205-3,而客戶網絡225-2包括用戶網絡接ロ (UNI) 205-4,205-5和205-6。請注意,傳輸網絡可以由ー個管理員或多個管理員提供。另外還要注意,傳輸網絡和客戶網絡也可由ー個管理員提供,但還是在功能上被視為或識別為不同的網絡。利用這樣的網絡配置(傳輸網絡連接兩個或更多客戶網絡),傳輸網絡已添加或定義了諸如TRILL封裝之類的封裝層。在第一接入網絡和傳輸網絡之間的接ロ處接收到給定幀后,TRILLRBridge將客戶幀封裝在尋址方案的TRILL封裝頭部內。在圖3中,在入口 RBridge241-1處接收到來自UNI 205-3的數據分組207 (客戶分組)。入口 RBridge 241-1利用以太網封裝頭部(或類似的封裝頭部)封裝分組207。封裝后的分組現在表示為分組207-1。入口 RBridge 241-1然后沿著流路徑217通過TRILL網絡227轉發分組207-1。注意,根據分組指令,流路徑217可以表示任意流路徑或確定性的流路徑。分組207-1接下來到達中間RBridge 241-2。中間RBridge 241-2然后交換出TRILL頭部的一部分。具體來說,傳輸設備地址空間中的信息。然而,根據本申請所公開的實施例,中間RBridge 241-2保持(拷貝或帶過去)傳輸設備地址空間內被掩蔽或指示為不同于傳輸設備尋址的位。例如,網絡227 (或227-1和227-2)識別出用于尋址的前八位,而掩蔽后40位,以便它可以在邊緣節點之間傳遞另外80位的信息。此修改后的TRILL頭部現在被標識為數據分組207-2。同樣的過程發生在中間RBridge 241-7處,其中修改后的TRILL頭部現在由數據分組207-3指示。數據分組207-3接下來在出口 RBridge 241-3處接收。出口 RBridge 241-3然后將分組207-3解封,并在客戶網絡225-2內轉發原始分組207。TRILL封裝頭部可包括客戶網絡225_1的源地址和第二客戶網絡225_2的目的地址。每個地址是完整的48位地址。從本質上講,TRILL功能在現有框架上増加了一個尋址層,以將下面的地址對TRILL網絡和任何中介網絡內的傳輸網絡設備隱藏起來。因此,傳輸網絡內的路由器和交換機在使用TRILL協議時看不見下面的分組地址。在實踐中,客戶設備的數量可以數以百萬計或更多,從而必須在傳輸網絡內每個數據交換設備處為每ー個客戶設備維護轉發表,這將由于所需的大量查找而顯著增加每個傳輸設備處理并顯著減慢轉發操作。TRILL作為ー個解決方案,創建了傳輸網絡內的尋址方案。傳輸網絡不同于客戶網絡,這是因為傳輸網絡通常所具有的設備少得多。雖然客戶網絡能有幾千萬的地址,但大型傳輸網絡常常有1000到2000個設備地址或更少。由于TRILL通常不是用于傳輸設備地址空間的端到端尋址方案,則任何給定的RBridge所使用的地址的數量可少到僅僅幾個傳輸設備。TRILL于是在TRILL網絡內使用與客戶網絡相比不同的尋址方案。傳輸網絡內的地址是傳輸網絡227自身內設備的地址,而不是終端用戶設備地址。TRILL尋址方案與以太網尋址方案的相似之處在于,傳輸設備(通常是RBridge)的源和目的地址字段提供48位的數據。請注意,TRILL將單獨的地址空間用于RBridge入ロ/出口別名。從概念上講,這意味著在TRILL頭部中傳輸設備空間的每個地址字段可以標識2~48個地址(2的48次方)。傳統的TRILL網絡不能使用這么多地址,而確實通常僅使用幾個到幾十個地址。不要求全局地管理這些傳輸地址。因此,可以有非常靈活的管理方案,包括在指派地址上的完全自由。更具體地說,可以具有本地管理的地址,而不是必須從監管機構購買地址。例如,管理員就不需要從IEEE或IETF獲取MAC地址,或以其他方式購買MAC地址。結合給定傳輸網絡內較少數量的傳輸設備來使用本地管理的地址,這意味著所需的設備地址數量比地址空間潛カ少若干個數量級。通過僅使用足以標識預期的傳輸設備地址總數的地址空間的一部分位,其余位可以被視為可用于許多不同目的的空閑位。利用這些本地管理的地址,并且這樣的地址總數通常是數百到幾千,在TRILL頭部的每個傳輸設備地址空間內有很大的數據潛力。換句話說,有很大的信息潛カ僅承載約3到1000個地址。本申請所公開的技術通過如下方式利用這個信息潛力提供了 TRILL頭部中ー個或兩個48位地址空間的掩蔽地址格式。這種技術保留了 TRILL尋址結構,使得網絡處理単元,硬件和用于地址轉發的其他組件仍可照樣工作,而不用任何硬件升級。在一個實施例中,系統管理TRILL頭部中的源和目的地址空間,作為本地管理。然后系統為本地管理的傳輸設備保留地址空間的一部分,以指示傳輸網絡中的實際設備(通常是交換機和路由器)。這種技術釋放了其余位,或余下的部分中未被保留用于傳輸設備地 址的位,以用于其他目的。這些目的可以包括非地址的目的。該系統提供了其余位以用于其他用途,而不增加在傳輸網絡內每個傳輸設備處維護的轉發記錄的數目。如果不掩蔽或以其他方式指示出所釋放的位不被用于轉發表中,則轉發表將大大増大,這是因為每次傳輸設備識別ー個新的地址時,該地址都將需要被添加到各自的轉發表。
在一種技術中,系統可以指示每個傳輸設備使用掩蔽轉發。該系統可以使用各種技術執行掩蔽。例如,對于包含48位的地址空間,這些位中的10位可用于傳輸設備尋址,而其余位用于其他目的。在ー種掩蔽技術中,在轉發表中執行給定的查找時,將其余位轉換為零。因此,盡管其余位具有各種不同用途,但轉發查找操作將忽略這些其余位。這導致查找鍵值的變化和組合更少,從而提供或保持小的轉發表。請注意,用于傳輸設備尋址的位相比于用于其他目的位的選擇可以根據設計來選擇。例如,一個簡單的方案指定前24位用于尋址,后24位用于其他目的。或者,可將隨機或偽隨機選擇的位用于尋址,而所有其余的位用于其他功能目的。在另ー個例子中,可將可用的位分段,每段用于ー不同的目的(一段用于傳輸設備源/目的地尋址)。這種技術提供了額外的路由和轉發功能,而不定義新的封裝協議,也不增加轉發表的大小。用于傳輸設備地址的位的實際數目可取決于傳輸網絡中預期的總設備數。例如,地址空間內的12個非掩蔽位(包括本地管理的和單播指定位)將提供約1024個地址。太少的地址位將限制可參與到TRILL網絡中的節點數目,而太多的非掩蔽位將會浪費地址位。當傳輸網絡內給定的傳輸設備接收到具有修改后的TRILL頭部(MAC地址加上另 外的數據)的分組時,該給定的傳輸設備(通常是RBridge)可以通過如下方式工作在執行地址查找之前掩蔽地址空間中的一部分位(例如,通過將值歸零),而使地址空間內的其它位保持原樣。在其他實現方式中,轉發表自身(在傳輸設備的轉發數據平面運行)可具有掩蔽功能,因此即使全部48位被傳遞到轉發表,轉發表一找到前24位(或其他量的位)上的匹配,轉發表也就停止試圖匹配剰余的位。換句話說,轉發表可以搜索最長前綴匹配或地址空間中與轉發表中的地址相匹配的最長的ー組位。因此,在一種情況下,給定的傳輸設備知道或識別出地址空間正使用特定的或固定的掩碼大小。在這種情況下,設備可以在MAC地址位上預先應用掩碼,然后進行查找。在其他實施例中,該設備可能不知道掩碼的確切大小,因此將會隨后執行查找以找到匹配的最長位序列,然后可將最長匹配之外的其余位視為熵位或ECMP位,或用于其他轉發功能的位。在任一示例中,分組地址字段中的位都可以保持不變,在轉發處理期間不修改。這種技術可以提供另外的轉發功能(如流信息),而無需傳輸設備更深入地查看分組,也不增加轉發表的大小。分組流標識符(ID)對于該系統也是可能的。如果沒有本申請所公開的技術,則要使用流ID,傳輸設備將需要更深入地查看分組并識別用戶字段,然后生成流ID,然后使用該生成的流ID來選擇路徑。這種傳統的做法需要傳輸設備更深入地查看分組并且還進行協議特定的檢查,這是人們不希望的。通過更深入地查看給定分組,傳輸設備承擔了知道內部頭部內的每個字段是什么意思的責任。然而,本申請所公開的技術集中于統一地描述的地址信息,并且這種地址信息可以是永遠可擴展的。例如,解決方案需要ー種新的協議,這意味著每個傳輸設備需要被更新,重新配置,或以其他方式替換,以能夠理解該新的協議。由于給定傳輸網絡內有數百個傳輸設備,因此這不是人們希望的解決方案。利用本申請所公開的技術,系統將此信息抽取到現有頭部的地址字段中。每個核心節點于是可以執行掩蔽轉發,并可以使用非掩蔽位進行散列(hashing)和生成流ID,而不更深入地查看下面的分組頭部。在一個實施例中,可在單播MAC中掩蔽位。在此實施例中,該系統通過如下方式來使用本地管理的單播MAC地址將MAC上的位41設定為“ I ”來指示出該MAC地址是本地管理的,然后將MAC的位40設定為“O”來指示出它是單播地址。然后,系統掩蔽單播MAC的48位的一子集,以用于地址識別/查找的目的。為了確定地址匹配的目的,忽略掩蔽位的值。位41 (本地管理位)和位40 (多播位)都沒有被掩蔽。圖4A示出了尋址空間400的ー個示例劃分。請注意,部分402和部分404大小近似相等。在地址空間400中,部分302可以包含傳輸設備地址,從而保持非掩蔽,而相等的部分(24位)被掩蔽(希望用于除了源/目的地尋址以外的目的)。此不透明信息可被定制,以用于任意數量的應用。圖4B示出尋址空間410的另ー非限制性的示例劃分。部分412沒有被掩蔽。部分414被掩蔽,并承載用戶網絡接ロ ID。部分416被掩蔽,并承載流標識符,并且部分418被掩蔽以承載任何其他數據。圖4C類似于圖4B,只不過尋址空間420還包括部分417,用于承載生存時間(TTL)信息或跳計數。返回到圖3,可向傳輸網絡227內的所有節點指派MAC地址,所述MAC地址的前8位是獨特的,后40位被認為是空閑或掩蔽的。入口 RBridge 241-1通過掩蔽MAC地址的后 40位而封裝分組207-1。當分組207-1到達中間RBridge 241-2時,中間RBridge 241-2將MAC-DA的前8位識別為入口 RBridge 241-2的地址(TRILL RBridge別名目的地址空間被用來標識出ロ RBridge 241-3)。中間RBridge 241-2將MAC-SA的后8位識別為入口節點241-1的地址,然后將分組207-2轉發到中間RBridge 241-7。從那里,中間RBridge 241-7轉發到出口 RBridge 241-3。因此,節點244-1只需要知道其轉發表中的三個MAC地址,但可以將另外的80位數據從節點241-1傳遞到節點241-2。在另ー個實施例中,可以掩蔽預定數目的高位和預定數目的低位,而中央部分的位不被掩蔽。空閑地址空間位的一個示例用途是用于傳輸用戶網絡接ロ(UNI) ID或其他客戶網絡信息。請注意,在圖3中,邊緣節點241-1與來自客戶網絡225-1的多個UNI 205連接。在某些情況下,重要的是知道在入口 RBridge 241-1從哪個接ロ(哪個UNI)接收到給定的分組。做到這一點的ー種方式是入口 RBridge為每個不同的UNI創建單獨的地址,但該做法増加了將在轉發表中保持的地址的數目,這是因為另外的傳輸設備可以識別UNI地址并不得不將這些UNI的地址添加到它們各自的轉發表。在一個實施例中,系統不將這些UNI視為單獨的地址,而是在MAC地址字段的掩蔽部分中増加一代表值。雖然邊緣節點需要管理每個UNI的標識,但如果這些標識作為完全合格的地址而被傳遞,則中間節點的轉發表將會填滿。利用釋放的位,該系統可以將UNI-ID拷貝到MAC地址的掩蔽部分中。中間傳輸設備不關心UNI-ID,但當到達的分組包含作為MAC地址字段內掩蔽數據的UNI-ID號時,接收的出口 RBridge隨后可以抽取該UNI ID信息以用于轉發目的。這使轉發表保持得小,同時能夠遍及傳輸網絡傳遞UNI信息。通過將某些位視為不透明的,井向其指派含義,該系統可以透明地將此信息遍及傳輸網絡地傳送,并且該含義和解釋可以完全取決于邊緣節點設備而非核心節點傳輸設備。在另ー個實施例中,邊緣節點或核心節點(傳輸設備)可以將掩蔽的UNI信息用于路徑選擇。例如,傳輸節點不將(MAC地址空間中的)UNI-ID信息用于表查找,而是將此信息用于哈希運算。這種技術可以允許TRILL網絡內的ECMP或路徑功能,而不增加轉發表的大小或需要単獨的協議。在另ー個例子中,可以遍及MAC頭部的地址空間釋放出最大數量的位,以將TRILL網絡轉換到單個交換機網絡架構體系結構,以控制出ロ接ロ。
舉ー個非限制性的例子,在邊緣節點241-1處的UNI 205-3上進入的分組207需要最終被轉發到邊緣節點241-2處的UNI 205-4。在傳統的系統中,從邊緣節點241-1轉發到邊緣節點241-2的分組可能做深入的分組檢查,以識別目的地UNI。然而,利用本申請所公開的技木,在TRILL頭部內可掩蔽UNI目的地址,因此在邊緣節點241-2處不必進行深入分組檢查。這是做出掩蔽的UNI-ID的原理。該技術可用于在轉發和學習處理這兩者中。例如,邊緣節點241-2可以學習與邊緣節點241-1和UNI 205-3相關聯的分組。在另ー個實施例中,用戶網絡接ロ也可以在本地識別,從而最大限度地減少地址空間中準確識別附接到每個RBridge的用戶網絡接ロ所需要的位數。等成本多路徑路由(ECMP)或流ID的一目標在于,創建從ー個終端用戶到另ー終端用戶的單個流路徑,以使得某些數據流不破碎。如果不指定流路徑,則傳輸網絡具有可基于負載均衡或其他標準選擇的多條可能的數 據路徑。然而,某些數據傳輸應沿單個流路徑發送。當某些流遍及多條路徑而破碎時,作為該流一部分的分組可在不同的時間到達。例如,接收設備在接收第三個發送的分組之前接收到第五個發送的分組。當發生這種情況吋,接收端用戶設備可能會丟棄這些分組并請求重傳,于是這降低了網絡性能。流和流ID的一目標在于,如果有可能向網絡指示出構成流的是什么,則該流不應當遍及多條路徑而破碎,該流動應被執行而不需要給定分組內的深入檢查(即,檢查封裝頭部內的頭部信息)。ECMP可能是重要的,這是因為當給定的網絡線性增長時,可能的流路徑可以呈指數増加。正因為如此,預先計算路徑在計算上是不實際或不可能的。ECMP允許使用網絡中的所有路徑,同時保持非常小的計算負載。ECMP在具有很多鏈路和節點的數據中心或網絡,或提供多重終端用戶會話的服務器中是尤其有利的。在傳統的ECMP技術中,傳輸設備檢查下面的頭部字段,例如標識IP源地址,IP目的地址,傳輸控制協議,用戶數據報協議(UDP),和其他字段,然后對這些字段進行哈希運算,以確保所有具有相同的IP源,IP目的地和UDP信息的分組走完全相同的路徑。哈希運算將獨特的IP頭部信息轉換成一個小的數,該數用于路徑選擇或流路徑識別。因此,為了讓傳輸裝置執行ECMP,每個傳輸設備必須理解下面的協議,理解如何將給定的分組解碼,井能夠選擇正確的數作為計算輸入,以創建流路徑ID。這種技術在傳輸網絡內不是人們希望的。如果需要傳輸網絡內的每個節點做這樣深入或復雜的處理,則這種處理會減慢網絡。此外,當給定的下面的協議變化,并且傳輸設備不知道如何正確處理新的協議時,則流ID的選擇可能不正確。解決這個問題的傳統技術嘗試在封裝頭部內創建標識一具體流ID的新的地址空間,使得只有邊緣節點需要理解所有不同的協議,并且傳輸網絡內的傳輸設備可被視為啞(dumb)設備。換句話說,傳統的技術嘗試創建新的頭部條目,該條目明確標識流ID。當下面的分組包含加密信息,傳輸設備可能不知道如何讀取該加密信息以生成流ID時,添加明確的流ID可以有幫助,但是這増加了分組開銷。然而,本申請所公開的技術能夠支持確定性的流路徑,而不需要添加明確的流ID作為封裝頭部的額外的或新的字段。相反,本申請所公開的技術將流ID作為封裝頭部內現有的地址字段的一部分而承載。這防止了分組大小的擴大,還防止了轉發表的膨脹。這使得處理保持更簡單,且更可擴展以供將來使用。傳輸設備于是僅需要對地址字段或僅地址字段的掩蔽部分進行哈希運算。該技術有效消除了承載另外的頭部字段的需求。在ー個處理階段,傳輸邊緣設備241-1生成流ID并將此流ID插入到封裝頭部的地址空間中。在第二處理階段,傳輸邊緣設備241-1對地址空間內掩蔽的流ID執行哈希運算以選擇給定的流路徑。隨后的傳輸核心設備244然后將會執行相同的哈希運算以選擇下一跳。由于流ID在地址頭部內是相同的,傳輸網絡227內隨后的節點可以一致地計算相同的各自哈希結果以用于選擇單個流路徑,例如流路徑217。所述哈希可以在整個地址空間上執行,或僅在地址空間內流ID掩蔽的部分上執行。通過在封裝頭部的地址空間內插入流ID,分組的大小不增加,轉發表的大小也不增加。地址空間內的掩蔽位還可用于提供生存時間(TTL)功能。生存時間如果存在不正常工作的控制平面,或要防止允許分組無休止地環流的循環,生存時間功能是有益的。傳統上,TTL字段位于封裝內且位于用戶字段內,所述用戶字段在分組內較深的位置。通常,傳輸設備不查看用戶字段。傳統技術建議在封裝頭部內添加另外的字段以提供生存時間數據,但該建議增加了頭部大小并需要廣泛的升級。地址字段或VLAN-ID字段可用來掩蔽TTL數據,以提供此功能而不需要深入的分組檢查。在另ー個實施例中,VLAN-ID字段可以用來識別源和目的地址字段內的掩蔽部分。 換句話說,12位的VLAN-ID字段可用于指示地址字段中空閑位的使用,即,VLAN-ID字段內的位可用于指示哪些位是被掩蔽的而哪些不是,即修改后地址空間的結構。VLAN-ID的每個不同的值可以代表實際使用的格式的一単獨格式。可用的12位VLAN-ID準備了多達4096種對MAC地址空間進行格式化的不同方式。否則,每個傳輸節點可被配置為知道哪些位是地址位,哪些是空閑/掩蔽位。使用VLAN-ID字段來指示掩蔽位可以是更可擴展的選項,這是因為傳輸網絡中所發送的每個分組指示出對空閑位的實際使用。圖14示出根據本申請的實施例在計算機/網絡環境中操作的地址管理器140的示例框圖。現在經由圖6到圖13中的流程圖和示圖,討論與地址管理器140相關聯的功能。為了以下討論的目的,地址管理器140或其他合適的實體執行流程圖中的步驟。現在更具體地描述實施例,圖6是示出本申請所公開實施例的流程圖。在步驟610中,地址管理器140在第一數據交換設備處接收數據分組。該數據分組具有現有的頭部,且是從客戶網絡接收到的。第一數據交換設備是TRILL網絡的入口 RBridge,例如傳輸網絡227的節點241-1。在步驟620中,地址管理器140使用TRILL頭部封裝數據分組。TRILL頭部所具有的數據結構包括傳輸設備地址空間和TRILL設備地址空間,可選地還包括虛擬局域網(VLAN)指示器空間。例如,地址管理器140可以使用TRILL封裝。TRILL頭部封裝已有現有的頭部的分組。在步驟621中,封裝數據分組包括在傳輸設備地址空間內設定第一部分位,以使得該第一部分位指示作為TRILL網絡內節點的數據交換設備地址。換句話說,在傳輸設備地址空間內插入數據以指示數據交換設備,如路由器或交換機。在步驟622中,封裝數據分組包括在傳輸設備地址空間內設定第二部分位,以使得該第二部分位指示與作為TRILL網絡內節點的數據交換設備地址不同的信息。因此,地址管理器140向地址空間添加不用來指示TRILL網絡設備的本地地址的數據。在步驟630中,封裝數據分組包括設定TRILL設備地址空間中的位,以使得這些位指示入口 RBridge別名和出ロ RBridge別名。在步驟640中,數據交換設備經由TRILL網絡轉發數據分組。
圖7-圖8包括的流程圖示出了本申請所公開的地址管理器140的另外和/或替代實施例和可選功能。在步驟610中,地址管理器140在第一數據交換設備處接收數據分組。該數據分組具有現有的頭部,且是從客戶網絡接收到的。第一數據交換設備是TRILL網絡的入口RBridge,例如傳輸網絡227的節點241-1。在步驟620中,地址管理器140使用TRILL頭部封裝數據分組。TRILL頭部所具有的數據結構包括傳輸設備地址空間和TRILL設備地址空間,可選地還包括虛擬局域網(VLAN)指示器空間。在步驟621中,封裝數據分組包括在傳輸設備地址空間內設定第一部分位,以使得該第一部分位指示作為TRILL網絡內節點的數據交換設備地址。在步驟622中,封裝數據分組包括在傳輸設備地址空間內設定第二部分位,以使 得該第二部分位指示與作為TRILL網絡內節點的數據交換設備地址不同的信息。在步驟623中,設定指示與數據交換設備地址不同的信息的第二部分位包括指示用戶網絡接ロ(UNI)身份。該UNI身份可以指示出數據分組用來進入TRILL網絡的接ロ。該數據交換設備可以通過使用來自傳輸設備地址空間的UNI身份作為用于選擇轉發路徑的計算輸入,從而選擇轉發路徑。例如,每個傳輸節點可以使用UNI ID作為哈希運算的輸入。在步驟624中,地址管理器使用第二部分位指示流標識符。在步驟625中,封裝數據分組包括使用以太網頭部封裝數據分組,所述以太網頭部在傳輸設備地址空間內指示出該傳輸設備地址空間使用本地管理的媒體訪問控制地址。因此,MAC地址不需要被購買來使用。封裝還可以指示出該數據分組是單播傳輸。在步驟626中,地址管理器在TRILL頭部的VLAN指示器空間內指示出傳輸設備地址空間的哪些位指示數據交換設備地址,以及傳輸設備地址空間的哪些位指示與數據交換設備地址不同的信息。換言之,給定分組的VLAN-ID自身內的信息指示出地址空間中哪些位是空閑位。在步驟627中,地址管理器設置VLAN空間內的第一部分位,以使得該VLAN空間內的第一部分位指示ー客戶VLAN。地址管理器還設置VLAN空間內的第二部分位,以使得該VLAN空間內的第二部分位指示TRILL網絡內數據分組的生存時間(TTL)值。雖然TTL數據可以包括在地址空間內,但有時希望將地址空間內的數據(掩蔽和非掩蔽數據)保持為在整個傳輸網絡中不變的數據。在步驟630中,封裝數據分組包括設定TRILL設備地址空間中的位,以使得這些位指示入口 RBridge別名和出ロ RBridge別名。TRILL頭部將入口 /出口 RBridge標識與傳輸節點標識分開。在步驟635中,地址管理器通過使用來自傳輸設備地址空間的流標識符作為用于選擇下一跳轉發路徑的計算輸入,從而選擇下ー跳轉發路徑。例如,地址管理器或數據交換設備將流標識符用于哈希運算。在步驟640中,數據交換設備經由TRILL網絡轉發數據分組。在步驟641中,數據交換設備經由所選擇的下ー跳轉發路徑,將數據分組轉發到TRILL網絡內的下ー跳節點。
以太網頭部可包括媒體訪問控制(MAC)目的地址,以及媒體訪問控制源地址。封裝數據分組可以包括使用來自MAC目的地址和MAC源地址的位來指示與數據交換設備地址不同的信息。封裝數據分組還可以包含使用跨MAC目的地址和MAC源地址兩者的位來提供另外的功能,所述另外的功能需要比單個地址空間所能提供的更多的合計位。圖9是示出本申請所公開實施例的流程圖。在步驟910中,地址管理器在TRILL內的RBridge設備處接收數據分組。該數據分組是從TRILL網絡內的另ー節點接收到的。該數據分組具有通過TRILL頭部封裝的ー客戶網絡頭部。例如,傳輸網絡中間RBridge 241-2接收數據分組207-1。在步驟920中,地址管理器140從TRILL頭部內的傳輸設備地址空間識別傳輸設備地址。傳輸設備地址空間具有指示第一數據交換設備的傳輸設備地址的第一部分位。傳 輸設備地址空間還具有指示與第一數據交換設備的傳輸設備地址不同信息的第二部分位。例如,節點241-2接收具有TRILL封裝的數據分組207-1,其中MAC地址位的一部分是空閑或掩蔽位。在步驟930中,數據交換設備基于在第一部分位中指示的傳輸設備地址,即,地址空間的未掩蔽部分,在RBridge設備的轉發表中執行查找。在步驟940中,數據交換設備將指示第一數據交換設備地址的傳輸設備地址的第一部分位替換為指示第二數據交換設備地址的位,同時保持第二部分位不變。例如,中間RBridge作為其轉發處理的一部分而交換TRILL頭部的一部分。在步驟950中,數據交換設備經由TRILL網絡轉發數據分組。圖10-圖11包括的流程圖示出了本申請所公開的地址管理器140的另外和/或替代實施例和可選功能。在步驟910中,地址管理器在TRILL內的RBridge設備處接收數據分組。該數據分組是從TRILL網絡內的另ー節點接收到的。該數據分組具有通過TRILL頭部封裝的ー客戶網絡頭部。在步驟920中,地址管理器140從TRILL頭部內的傳輸設備地址空間識別傳輸設備地址。傳輸設備地址空間具有指示第一數據交換設備的傳輸設備地址的第一部分位。傳輸設備地址空間還具有指示與第一數據交換設備的傳輸設備地址不同信息的第二部分位。在步驟922中,傳輸設備地址空間指示出傳輸設備地址空間使用了本地管理的媒體訪問控制(MAC)地址,所述MAC地址是單播地址。傳輸設備地址空間是具有48個可用位的以太網頭部媒體訪問控制地址空間。在步驟924中,數據分組使用ー以太網頭部,該以太網頭部包括媒體訪問控制(MAC)目的地址空間和媒體訪問控制(MAC)源地址空間,所述以太網頭部使用跨MAC目的地址空間和MAC源地址空間兩者的位來指示與數據交換設備地址不同的信息。在步驟930中,數據交換設備基于在第一部分位中指示的傳輸設備地址,在RBridge設備的轉發表中執行查找。在步驟932中,數據交換設備在執行查找之前,掩蔽傳輸設備地址空間中的第二部分位。在步驟934中,地址管理器140基于來自TRILL頭部的虛擬局域網(VLAN)指示器空間的信息,識別標識數據交換設備地址的第一部分位。在步驟940中,地址管理器將指示第一數據交換設備地址的傳輸設備地址的第一部分位替換為指示第二數據交換設備地址的位,同時保持第二部分位不變。因此,當RBridge交換或修改了 TRILL頭部信息時,掩蔽部分保持在頭部中或被帶過去到新的頭部實例。在步驟945中,數據交換設備通過使用流標識符作為哈希運算的計算輸入,來執行哈希運算,從而選擇轉發路徑。流標識符在傳輸設備地址空間的第二部分內被指示出來。在步驟950中,數據交換設備經由TRILL網絡轉發數據分組。在步驟952中,數據交換設備經由所選擇的轉發路徑將數據分組轉發到TRILL網絡內的下ー跳節點。地址管理器140還可以遞減在數據分組的VLAN空間內指示的生存時間(TTL)值。數據分組包括在傳輸網絡以太網頭部的VLAN空間中的第一部分位,其指示客戶VLAN。數據 分組還包括在VLAN空間內的第二部分位,其指示數據分組的TTL值。如上所述,本申請所公開的技術可用于支持等成本多路徑路由(ECMP)或流ID。在數據網絡中將分組從網絡中的一點轉發到另一點時,常常存在可用來繼續轉發分組的多條等成本路徑。常常希望能夠應用網絡中所有可能的路徑,這是因為這種應用使得網絡流量不會集中在任何一條鏈路上,并提供了對可用帶寬的更好使用。支持ECMP的設備需要確保網絡和設備不分割任何給定的用戶流。分割用戶流可導致分組亂序地到達目的地,這經常導致網絡性能和終端用戶體驗的嚴重下降。還希望能夠使用操作、監管和管理(OAM)分組來分析/應用與屬于網絡用戶的數據分組所采取的路徑完全相同的路徑。這樣做是為了排除網絡故障。如果存在數據傳輸問題,那么網絡運營商需要跟蹤與問題相關聯的分組采取的確切路徑。在實踐中,網絡運營商通常發送分組/幀,所述分組/幀是網絡運營商發起并發送以能夠跟蹤與網絡問題相關聯的確切路徑的。如果網絡運營商不能跟蹤故障的路徑,那么網絡運營商提供給定的服務水平(服務質量)的能力就受到影響。這樣的隔離和修復網絡中問題的操作工具,被稱為OAM或0Α&Μ(操作、監管和管理)。對于給定的問題,網絡運營商將沿著路徑發送OAM幀以隔離數據傳輸問題。一般而言,網絡中OAM幀和用戶數據分組所具有的僅有的共同信息是網絡層地址。在其他方面,用戶和OAM幀使用不同的協議。分組中有不同的字段可用來識別具有不同程度粒度的用戶流。這種分組字段的一些例子包括源MAC,目的MAC,源IP,目的IP,源TCP/UDP端ロ,目的TCP/UDP端ロ等。網絡中可用來識別用戶流的粒度越高,ECMP機制就會越有效地在可用來轉發用戶流的所有可能路徑之間分布流量。在體系結構上,存在兩種用于支持網絡內ECMP的高級模型算法頭端定向的ECMP(Algorithmic Head End DirectedECMP),以及逐跳 ECMP (Hop-by-Hop ECMP)。粒度量越高,ECMP方案識別終端用戶流的作用越有效。換言之,越是接近于識別出在哪個節點處終端用戶流不能被分割,就可以越好地遵循相應的ECMP方案。存在兩種用于支持ECMP的模型。ー種模型是算法端到端,另ー種模型是逐跳尋址。傳統上,利用算法頭端定向的ECMP,網絡的入口節點預先計算網絡中從其自身到任何其他節點的所有可用路徑,并給每個這樣的路徑指派路徑標識符。在節點之間轉發分組時,使用確保在任何單個用戶流內的所有分組使用相同的確切路徑標識符的規則,將路徑標識符添加到分組頭部。網絡的所有節點上的轉發表包括關于針對每個単獨的路徑標識符要使用哪些外出接ロ的信息。節點之間的所有中間設備在決定使用哪個外出接ロ轉發分組時僅僅使用路徑標識符。這種做法簡化了中間設備上的處理,所述中間設備不需要進行超出分組頭部的查看以識別用戶流,因此不必在引入新的協議時升級,并且由于OAM幀可承載路徑標識符而允許OAM機制有效。然而,這種做法也存在若干缺點。例如,在具有很多鏈路的網絡中,當網絡中的鏈路數量線性增長時,網絡中的路徑數目呈指數增長。這將導致用于支持所有預期的路徑標識符的轉發表的大小呈指數增長。它給CPU和路由協議實現方式帶來很大的負擔,這是因為需要預先計算的路徑數呈指數變大。此外,對大量的路徑標識符的支持可能需要向分組添加另外的字段,導致開銷增加。因此,這種做法對于支持使用該機制的大型網絡中的ECMP是非常不切實際的。另ー種傳統的機制是逐跳ECMP路徑選擇,其通常通過在每一跳處進行散列計算,而不是計算所有可能的端到端選擇而執行。每個給定的入口節點預先計算從其自身到網絡中任何其他直接附接節點的所有可能的下一跳選擇。與可能的端到端路徑的總數相比,可能的下一跳的數目較少。下一跳的數目限于給定盒子或設備中現有鏈路的數目。這個數字 通常是數百或數千,或甚至僅僅是幾條鏈路。每個入口節點和在兩個節點間的分組路途上處理分組的每個其他節點執行相同的路徑選擇處理。每個節點使用分組中可用來識別用戶流的不同字段來生成哈希索引。這種哈希計算涉及識別用戶數據的深入的分組檢查,以進行哈希運算。通常在分組中沒有路徑標識符,因此每個節點識別用戶信息以用于哈希計算。應注意,這應當考慮到如下事實在用戶分組中可能表示了多個協議。每個節點然后使用所生成的哈希索引來選擇可用來到達后續節點的可能的下一跳之一。由于轉發表中不表示端到端路徑,因此當網絡大小增長時,轉發表的大小不會呈指數增長。相反,增長相對于網絡中設備的數據是線性的。而且,由于僅需計算下一跳選擇而非所有可能的端到端路徑,因此CPU和路由算法的計算簡単。該計算對于網絡中鏈路的數目是線性的,而非指數的。但是,逐跳ECMP散列計算需要網絡上的每個設備在每個分組的用戶字段上進行哈希計算。這使得難以處理新協議的增加。此外,一些協議使用加密來對分組有效載荷進行加擾,而人們不能指望傳輸設備對該加密進行解碼。此外,OAM分組不能被用來對該網絡中用戶數據流量所采取的路徑進行故障排除。這是因為OAM幀通常使用不同于用戶數據分組的協議。一般情況下,OAM幀與用戶數據分組所具有的唯一共同的東西就是網絡層地址信息,但源和目的地址所提供的粒度不足以利用網絡中給定節點之間所有可用的路徑。因此,實際的實現方式是可能的,但它們受制于上述的缺點。另ー種傳統的機制是使用明確流ID的逐跳ECMP。本申請的系統通過向分組頭部明確添加流ID字段而修改了以上定義的逐跳ECMP方案。例如,緊接在網絡層地址之后添カロ。流ID是將分組中可能的用戶流信息編碼成可在分組中公知的位置承載并被認為是分組網絡層信息一部分的值的ー種標準方式。分組的入口(或第一個)設備基于對分組各個字段的計算而給該分組指派一流ID。該指派也可以是基于策略的。入口節點和處理分組的所有后續節點基于該流ID的值作出它們對于下ー跳接ロ的選擇。雖然這是可擴展到新協議并保留了 OAM能力,但這種機制増加了分組開銷,這是因為流ID是分組中另外的字段,并且網絡設備必須處理兩種不同的分組格式——網絡層頭部中具有流ID的格式和沒有流ID的格式。這是很嚴重的擔心,因為舊的協議仍在使用,似乎比預期的更久,即,舊的協議不會很快消失。本申請所公開的技術使用BMAC地址掩蔽來支持ECMP功能。如上文所公開的,將地址空間的一部分用于設備地址,而第二部分(掩蔽或空閑部分)用于流ID。入口(邊緣)節點給它發送到PBB網絡中的每個分組指派流ID。然后將該流ID拷貝到地址空間中。這可以拷貝到BMAC-SA和BMAC-DA這兩者中。一旦將流ID拷貝到了 BMAC地址中,處理分組的所有PBB網絡設備都進行BMAC-SA和BMAC-DA的哈希計算,來從可能的下一跳選擇之一當中選擇外出接ロ。或者,每個節點僅在BMAC-SA和BMAC-DA中進行掩蔽的流ID字段的哈希計算。當地址字段包含另外的信息,例如UNI-ID,TTL數據或其他數據,使得地址字段中存在三個或更多數據段時,則每個節點可以在任何字段組合上進行哈希計算以用于可能的 下一跳選擇。因此,本申請所公開的技術避免了層違規——即,檢查傳輸網絡封裝內的頭部和其他信息。對相同的層/頭部信息執行尋址和哈希計算,這確保了有效的縮放。本申請所公開的技術還支持反向路徑轉發檢查(RPFC)(又稱入口檢查)以防止循環。傳統的SPB標準已采用了 RPFC和該機制,以防止/減輕SPB網絡中的循環。在實踐中,對于在SPB網絡中接收到的每ー個單播分組,執行(BVLAN-ID,BMAC-SA)查找。如果BMAC-SA查找失敗(未知的單播BMAC-SA),則分組被丟棄。成功的BMAC-SA查找給出的具有該BMAC-SA的分組預期到達的“預期的SPB接ロ ”。如果預期的接ロ與該分組實際到達的實際接ロ不完全相同,則分組被丟棄。對于在SPB網絡中接收到的每個多播分組,執行(BVLAN-ID,BMAC-DA)查找。如果BMAC-DA查找失敗(未知的多播BMAC-DA),則分組被丟棄。由于對于SPB多播,源是編碼在BMAC-DA的,因此成功的BMAC-DA查找給出具有該BMAC-DA的分組預期到達的預期的SPB接ロ。如果預期的接ロ與該分組實際到達的實際接ロ不完全相同,則分組被丟棄。接ロ可以基于對傳輸網絡內節點拓撲結構的知識而被識別為預期的。這種拓撲結構可以是自動發現的,或手動配置的。如果正在使用ECMP,則來自SPB網絡中給定的源節點的分組可以預期將在多于ー個可能的SPB接口上被接收到。在SPB網絡中任何給定的設備(節點)上,控制平面(IS-ISSPB)可以計算可接收來自任何其他設備的分組的所有接ロ。當預期的接ロ更像是接ロ列表時,可以修改單播RPFC檢查。因此,對于給定的(BVLAN-ID,BMAC-SA)的RPFC檢查進入接ロ是否與預期將接收到它的接ロ列表中任何接ロ相匹配。注意,多播流量不能使用ECMP。換句話說,對于任何給定的目的地存在多個路徑,并且對于任何給定的源,給定的節點可以在多個可能的接ロ上接收來自該給定的源的分組。本申請所公開的技術還支持使用TTL的循環抑制。一般而言,RPFC是防止和減輕循環的有效機制。但是,有時可能希望在數據路徑中具有用于循環抑制的另一保護。生存時間(TTL)字段可用于這一目的。雖然TTL不防止循環的形成,但TTL可以停止循環的永久持續。TTL對于控制平面無響應或遭受故障的情況可能是有用的。技術可以包括RPFC和TTL的組合。RPFC可以用來防止循環的形成(或如果形成了的話,迅速減輕之),而TTL在致命的控制平面故障(其是RPFC不會防止的)的情況下防止循環持續。本申請所公開的這種ECMP支持可應用于TRILL網絡(如上所述),PBB網絡,和其他傳輸網絡。PBB網絡是一 L2橋接網絡,其使用MAC中MAC封裝在位于PBB網絡(提供商網絡)邊緣處的兩個或更多L2網絡之間傳輸用戶L2流量。請注意,PBB網絡包括使用MAC中MAC封裝技術的所有網絡,包括但不限于使用通常稱為SPB或SPBV或SPBM的最短路徑橋接技術的網絡。PBB網絡通常包括骨干邊緣橋(Backbone Edge Bridge, BEB)和骨干核心橋(Backbone Core Bridge, BCB)。BEB (又稱提供商網絡邊緣節點)作為允許去柱/來自PBB網絡內的接口和去往/來自PBB網絡外的接ロ的分組傳輸的設備而工作。BCB(又稱提供商核心節點)允許PBB網絡內的接ロ之間的分組傳輸。使用MAC中MAC封裝,給定的BEB利用用于在提供商網絡中使用的以太網頭部來封裝從客戶網絡接收到的數據分組。圖5A示出了當前的PBB頭部(MAC中MAC封裝頭部)。封裝頭部510包括BMAC-DA字段511 (骨干MAC-DA),BMAC-SA字段512,BTAG以太網類型字段515,PCP/DEI字段519和BVLAN-ID字段518。字段515,519和518—起被稱為BTAG 554字段。可以修改頭部 510-1以用于組合的RPFC和TTL功能。BTAG 554可與圖5B的頭部510-2中稱為ECMP TAG或ETAG 555的新標簽交換。字段518成為“ECMP以太網類型”516(16位),而字段528被分段,其中保留(12個可用位中的)6位,6位用于TTL數據。TTL和保留字段的大小可以改變,只要它們兩者一起占用不多于12位即可。為了保持PBB頭部的大小使之不會增加以支持ETAG,PBB頭部中現有的BTAG可以用ETAG代替。由于它們都是4字節長,因此這不會導致任何分組開銷的凈增加。BMAC-DA和BMAC-SA字段可結合ETAG使用掩蔽的地址格式。因此,在一個實施例中,地址管理器使用BMAC掩蔽來釋放BMAC-SA和/或BMAC-DA地址空間中的ー些位。撥出全部或部分空閑位以用于承載流ID。發送者BEB執行不同的分組字段的哈希計算,并生成一個值,該值大到足以讓哈希索引使用BMAC-SA和/或BMAC-DA地址空間中所撥出或指定用作流ID的所有位。地址管理器然后使用上面生成的哈希索引,在MAC中MAC頭部中設置流ID位。發送者BEB和在分組路途上處理分組的所有其他BCB使用在作為BMAC-SA和/或BMAC-DA地址空間一部分的(ー個或多個)MAC中MAC地址頭部中所承載的流ID來執行各自的ECMP路徑選擇。因此,沒有増加分組大小,CFM/0AM分組通過包括客戶分組的流ID可以有效地對真實數據分組所采取的路徑進行故障排除,并且掩蔽BMAC地址的使用確保轉發表的大小不必增加。現在更具體地描述ECMP實施例,圖12是示出本申請所公開實施例的流程圖。在步驟1210中,第一數據交換設備接收數據分組。該數據分組具有現有的頭部,并且是從客戶網絡接收到的。第一數據交換設備是傳輸網絡的邊緣節點,如BEB或RBridge或其他網絡交換機。在步驟1220中,地址管理器使用傳輸網絡頭部來封裝數據分組。傳輸網絡頭部所具有的數據結構包括傳輸設備地址空間和虛擬局域網(VLAN)指示器空間。例如,這可包括MAC地址空間。在步驟1222中,地址管理器通過如下方式來封裝數據分組設定傳輸設備地址空間內的第一部分位(用數據來填充字段),以使得所述第一部分位指示作為傳輸網絡內節點的數據交換設備地址。在步驟1225中,地址管理器通過使用來自現有的頭部的分組信息作為用于生成流標識符的計算輸入,來生成流標識符。這可涉及邊緣節點的深入分組檢查以生成初始流標識符。在步驟1226中,封裝數據分組包括設定傳輸設備地址空間內的第二部分位,以使得該第二部分位指示流標識符。因此,地址管理器取得所生成的流標識,并將其包括在傳輸封裝頭部中。在步驟1230中,數據交換設備通過使用來自傳輸設備地址空間的流標識符作為用于選擇到傳輸網絡下ー跳節點的轉發路徑的計算輸入,來選擇轉發路徑。因此,在生成初始流標識符之后,數據交換設備使用來自封裝頭部的此信息來選擇下一跳。在步驟1240中,數據交換設備使用選定的轉發路徑,將數據分組轉發到傳輸網絡中的下ー跳節點。在其他實施例中,生成流標識符可以包含在現有頭部內識別的客戶信息上生成哈希索引。封裝數據分組還可以包括設置傳輸設備地址空間內的第三部分位,以使得該第三部分位指示數據分組的生存時間(TTL)值。 在其他實施例中,封裝數據分組包括設定VLAN空間內的第一部分位,以使得該VLAN空間內的第一部分指示客戶VLAN。封裝數據分組于是還包括設定VLAN空間內的第二部分位,以使得該VLAN空間內的第二部分位指示數據分組的生存時間(TTL)。傳輸網絡頭部可以是以太網頭部,該以太網頭部包括骨干媒體訪問控制(MAC)目的地址空間和骨干媒體訪問控制源地址空間。因此,封裝數據分組可以包括來自骨干MAC目的地址空間和骨干MAC源地址空間的位來指示流標識符。使用以太網頭部封裝數據分組可以包括在骨干MAC空間內指示出傳輸設備地址空間使用本地管理的媒體訪問控制地址。傳輸網絡可以是提供商骨干橋接(PBB)網絡。在圖13中,是說明本申請所公開實施例的流程圖。在步驟1310中,數據交換設備接收數據分組。數據交換設備是傳輸網絡中的節點。該數據分組是從傳輸網絡內另ー節點接收到的。數據分組具有通過傳輸網絡頭部封裝的客戶網絡頭部。例如,此實施例中的數據交換設備可以是傳輸網絡內的核心節點或中間節點。在步驟1320中,地址管理器從傳輸網絡頭部內的傳輸設備地址空間識別傳輸設備地址。傳輸設備地址空間具有第一部分位,該第一部分位指示第二數據交換設備的數據交換設備地址,傳輸設備地址空間還具有第二部分位,該第二部分位指示流標識符。在步驟1330中,數據交換設備基于在所述第一部分位中指示的數據交換設備地址,即,基于從地址空間的非掩蔽部分抽取的信息,在數據交換設備的轉發表中執行查找。在步驟1340中,數據交換設備通過使用來自傳輸設備的地址空間的流標識符作為用于選擇到傳輸網絡中下一跳節點的轉發路徑的計算輸入,例如經由哈希運算,來選擇轉發路徑。在步驟1350中,數據交換設備使用選定的轉發路徑,將數據分組轉發到傳輸網絡中的下ー跳節點。在其他實施例中,在數據交換設備的數據轉發表中執行查找包括執行反向路徑轉發(RPF)檢查。RPF檢查可以包括響應于識別出該數據分組是從與用于傳輸網絡中數據交換設備的預期進入接ロ的列表上任何進入接ロ都不匹配的接ロ接收到的,而將該數據分組丟棄。在某些傳輸網絡中,預期接ロ可以包含多個可能的接ロ。因此,數據交換設備可以將接收到的接ロ與列表相比較,以識別匹配。如果存在匹配,則數據交換設備繼續轉發操作。如果沒有匹配,那么該分組被丟棄。在另ー個實施例中,數據分組包括傳輸設備地址空間(或VLAN-ID字段)內的第三部分位。該傳輸設備地址空間內的第三部分位指示數據分組的生存時間(TTL)值。數據交換設備在轉發之前遞減傳輸設備地址空間內指示的TTL值。選擇到下一跳節點的轉發路徑可以包括使用由傳輸設備地址空間中第二部分位指示的流標識符,提供等成本多路徑路由(ECMP)。因此,實施例可以將ECMP功能與RPF檢查和TTL保護同時組合起來。繼續到圖14,下面的討論提供一基本實施例,其指示出如何實施與上述地址管理器140相關聯的功能。但是,應該指出,用于實施地址管理器140的實際配置可根據各自的應用而有所不同。例如,計算機系統149可包括實施本申請所描述處理的一個或多個計算機。在不同的實施例中,計算機系統149可以是多種類型的設備中任ー種,所述多種類型的設備包括但不限于網絡交換機,路由器,手機,個人計算機系統,臺式電腦,膝上型電腦、筆記本或上網本計算機,大型計算機系統,掌上電腦,工作站,網絡計算機,應用服務器,存儲設備,消費電子設備,如相機,攝像機,機頂盒,移動設備,視頻游戲機,手持視頻游戲設備,或一般意義上任何類型的計算設備或電子設備。
所示出的計算機系統149連接到顯示監視器130,該顯示監視器130用于顯示供用戶136使用輸入設備135進行操作的圖形用戶界面133。可選地可以將存儲庫138用于在處理之前和之后存儲數據文件和內容。輸入設備135可以包括一個或多個設備,如鍵盤,計算機鼠標,麥克風等。如圖所示,本示例的計算機系統149包括互連143,該互連耦合存儲系統141,處理器142,I/O接ロ 144和通信接ロ 145。I/O接ロ 144提供到諸如輸入設備135之類的外圍設備的連接,所述輸入設備135包括計算機鼠標,鍵盤,用于移動光標的選擇工具,顯示屏幕等等。通信接ロ 145使計算機系統149的地址管理器140能通過網絡進行通信,以及如果有必要,則檢索根據本申請實施例創建視圖、處理內容、與用戶通信等所需的任何數據。如圖所示,存儲系統141編碼有地址管理器140-1,該地址管理器支持如上面所討論的以及下文將進ー步討論的功能。地址管理器140-1 (和/或本申請所描述的其他資源)可以實現為軟件代碼,如數據和/或邏輯指令,其支持根據本申請所描述的不同實施例的處理功能。在一個實施例的操作中,處理器142通過使用互連143來訪問存儲系統141,以啟動,運行,執行,解釋或以其他方式進行地址管理140-1的邏輯指令。地址管理器140-1的執行產生地址管理器處理140-2中的處理功能。換句話說,地址管理器處理140-2表示在計算機系統149的處理器142內或之上執行的地址管理器140的ー個或多個部分。應當指出,除了實施本申請所討論的方法操作的地址管理器處理140-2以外,本申請的其他實施例包括地址管理器140-1自身(即,未執行或非進行的邏輯指令和/或數據)。地址管理器140-1可存儲在非暫態的有形的計算機可讀存儲介質上,所述介質包括計算機可讀的存儲介質,如軟盤,硬盤,光學介質,等等。根據其他實施例,地址管理器140-1還可以存儲在存儲器類型的系統中,如在固件,只讀存儲器(ROM)中存儲,或在這個例子中存儲為存儲系統141內的可執行代碼。除了這些實施例以外,還應該注意,本申請的其他實施例包括地址管理器140-1在處理器142中作為地址管理器處理140-2的執行。因此,本領域技術人員將會理解,計算機系統149可包括其他處理和/或軟件和硬件組件,如控制硬件資源的分配和使用的操作系統,或多個處理器。本領域技術人員將會理解,可以對以上說明的技術的操作做出許多改變,而仍實現本發明的相同目標。希望這種改變覆蓋在本發明的范圍內。這樣,不希望以上對本發明實施例的描述是限制性的。相反,在隨附的權利要求書中闡述對本發明實施例的任何限定。本申請要求如下申請的利益美國臨時專利申請第61/454,944號,申請日為2011年3月21日,題為“Layer 2 Address Modification”,該申請的全部內容合并在本申請中作為參考。本申請與如下申請有關美國專利申請第13/097,224號,申請日為2011年4月 29 日,題為 “Usage Of Masked BMAC Addresses In A Provider Backbone Bridged(PBB)Network”,該申請的全部內容合并在本申請中作為參考。
權利要求
1.一種用于多鏈路透明互連TRILL網絡中的分組交換的計算機實現的方法,該計算機實現的方法包括 在TRILL網絡內的RBridge設備處接收數據分組,該數據分組是接收自所述TRILL網絡內另ー節點的,所述數據分組具有通過TRILL頭部封裝的客戶網絡頭部,所述TRILL頭部包括傳輸設備地址空間和RBridge別名空間; 從所述TRILL頭部內的傳輸設備地址空間識別傳輸設備地址,所述傳輸設備地址空間具有指示第一數據交換設備的傳輸設備地址的第一部分位,并且所述傳輸設備地址空間具有指示與所述第一數據交換設備的傳輸設備地址不同的信息的第二部分位; 基于在所述第一部分位中指示的傳輸設備地址,在所述RBridge設備的轉發表中執行查找; 將指示所述第一數據交換設備的傳輸設備地址的所述第一部分位替換為指示第二數據交換設備地址的位,同時保持所述第二部分位不變;并且經由所述TRILL網絡轉發所述數據分組。
2.如權利要求I所述的計算機實現的方法,其中,執行所述查找包括在執行該查找之前,掩蔽所述傳輸設備地址空間中的所述第二部分位。
3.如權利要求I所述的計算機實現的方法,其中,執行所述查找包括基于來自所述TRILL頭部的虛擬局域網VLAN指示器空間的信息,識別指示所述第一數據交換設備的傳輸設備地址的所述第一部分位。
4.如權利要求I所述的計算機實現的方法,其中,所述傳輸設備地址空間指示出所述傳輸設備地址空間使用作為單播地址的本地管理的媒體訪問控制MAC地址,所述傳輸設備地址空間是具有48個可用位的以太網頭部媒體訪問控制地址空間。
5.如權利要求I所述的計算機實現的方法,還包括 通過使用流標識符作為用于哈希運算的計算輸入,來執行哈希運算,從而選擇轉發路徑,所述流標識符在所述傳輸設備地址空間的第二部分內指示出來;并且 其中,經由所述TRILL網絡轉發所述數據分組包括經由所選擇的轉發路徑將所述數據分組轉發到所述TRILL網絡內的下ー跳節點。
6.如權利要求I所述的計算機實現的方法,其中,通過所述TRILL頭部封裝的數據分組包括使用以太網頭部的數據分組,所述以太網頭部包括媒體訪問控制MAC目的地址空間和媒體訪問控制MAC源地址空間,所述以太網頭部使用來自所述MAC目的地址空間和所述MAC源地址空間兩者的位來指示與所述數據交換設備地址不同的信息。
7.一種用于傳輸網絡中的分組交換的計算機實現的方法,所述計算機實現的方法包括 在第一數據交換設備處接收數據分組,所述數據分組具有現有的頭部并且是接收自客戶網絡的,所述第一數據交換設備是傳輸網絡的邊緣節點; 使用傳輸網絡頭部來封裝所述數據分組,所述傳輸網絡頭部所具有的數據結構包括傳輸設備地址空間和虛擬局域網VLAN指示器空間; 封裝所述數據分組包括設定所述傳輸設備地址空間中的第一部分位,以使得所述第一部分位指示ー數據交換設備地址,該數據交換設備地址是所述傳輸網絡內的節點; 封裝所述數據分組包括設定所述傳輸設備地址空間中的第二部分位,以使得所述第二部分位指示流標識符; 通過使用來自所述傳輸設備地址空間的流標識符作為用于選擇到所述傳輸網絡的下一跳節點的轉發路徑的計算輸入,來選擇所述轉發路徑;并且 使用所選擇的轉發路徑,將所述數據分組轉發到所述傳輸網絡中的下ー跳節點。
8.如權利要求7所述的計算機實現的方法,還包括 通過使用來自所述現有的頭部的分組信息作為用于生成所述流標識符的計算輸入,來生成所述流標識符。
9.如權利要求8所述的計算機實現的方法,其中,生成所述流標識符包括在所述現有的頭部內識別出的客戶信息上生成哈希索引。
10.如權利要求9所述的計算機實現的方法,其中,封裝所述數據分組包括在所述傳輸設備地址空間內設定第三部分位,以使得所述第三部分位指示所述數據分組的生存時間TTL 值。
全文摘要
本申請涉及多鏈路透明互連路由橋之間掩蔽的以太網地址的使用。本申請的技術包括的系統和方法擴展了包括多鏈路透明互連(TRILL)網絡在內的傳輸網絡的功能。技術包括將傳輸設備地址封裝頭部內的一部分信息用于除了標識源和目的地設備之外的目的。系統掩蔽地址頭部中的一部分位,以用于傳輸網絡節點的轉發表中的查找。(一個或多個)地址字段中其余的位變為可用于諸如流標識符選擇之類的多種應用目的的空閑位。通過使用已經存在于封裝頭部中的信息字段,這種技術提供了另外的信息而不增加分組大小或需要新的協議。實施例可以同時組合等成本多路徑路由(ECMP)功能,反向路徑轉發(RPF)檢查和生存時間(TTL)保護。
文檔編號H04L29/06GK102694721SQ20111046126
公開日2012年9月26日 申請日期2011年12月30日 優先權日2011年3月21日
發明者斯利坎斯·吉薩拉 申請人:阿瓦雅公司