本發(fā)明總體上涉及計算機網絡,具體地涉及用于防止數據中心架構內子網間流量轉接的方法、系統(tǒng)和裝置。
背景技術:
在數據中心架構中,網絡核心可以將多個數據中心彼此連接。此網絡核心可以促進子網間流量從一個數據中心流向另一個數據中心。例如,第一數據中心內的葉子節(jié)點可以經由網絡核心將子網間流量轉移到第二數據中心的脊柱節(jié)點。在一個示例中,第二數據中心內的脊柱節(jié)點可能將子網間流量返回第一數據中心內的葉節(jié)點(或另一葉節(jié)點)的效率較低。此路由效率低在某些時候被稱為轉接(tromboning)。
遺憾的是,轉接可能觸發(fā)數據中心內的若干負面影響。第一,轉接可能導致跨網絡核心和/或數據中心內的網絡延遲增加。第二,轉接可能導致跨網絡核心和/或數據中心內的網絡鏈路擁擠和/或帶寬消耗增加。第三,轉接可能導致由于網絡延遲增加、網絡鏈路擁擠和/或帶寬消耗增加造成的因特網訪問較慢。
因此,本公開標識并解決對用于防止數據中心架構內子網間流量轉接的附加并改進的方法、系統(tǒng)和裝置的需求。
技術實現(xiàn)要素:
如下文更詳細所述,本公開總體上涉及用于防止數據中心架構內子網間流量轉接的方法、系統(tǒng)和裝置。在一個示例中,一種用于完成這種任務的方法可以包括(1)在數據中心的葉節(jié)點處,檢測將路由公告給與數據中心對接的另一數據中心的脊柱節(jié)點的路由公告,(2)在數據中心的葉節(jié)點處,標識路由公告中包括的另一數據中心的脊柱節(jié)點的因特網協(xié)議(ip)標識符,(3)在數據中心的葉節(jié)點處,至少部分基于路由公告中標識的ip標識符來確定路由對應于另一數據中心的脊柱節(jié)點,繼而響應于確定路由對應于另一數據中心的脊柱節(jié)點,(4)在數據中心的葉節(jié)點處拒絕去往另一數據中心的脊柱節(jié)點的路由,從而使得葉節(jié)點不得知去往另一數據中心的脊柱節(jié)點的路由。
類似地,一種用于實現(xiàn)上述方法的系統(tǒng)可以包括(1)在數據中心的葉節(jié)點處的存儲器中存儲的檢測模塊,檢測將路由公告給與數據中心對接的另一數據中心的脊柱節(jié)點的路由公告,(2)在數據中心的葉節(jié)點處的存儲器中存儲的標識模塊,標識路由公告中包括的另一數據中心的脊柱節(jié)點的ip標識符,(3)在數據中心的葉節(jié)點處的存儲器中存儲的確定模塊,至少部分基于路由公告中標識的ip標識符來確定路由對應于另一數據中心的脊柱節(jié)點,(4)在數據中心的葉節(jié)點處的存儲器中存儲的路由模塊,在數據中心的葉節(jié)點處拒絕去往另一數據中心的脊柱節(jié)點的路由,從而使得葉節(jié)點不得知去往另一數據中心的脊柱節(jié)點的路由,以及(5)至少一個物理處理器,被配置為執(zhí)行檢測模塊、標識模塊、確定模塊和路由模塊。
一種用于實現(xiàn)上述方法的裝置可以包括(1)存儲器設備,在數據中心的葉節(jié)點處,存儲定義去往數據中心內其他節(jié)點的路徑的路由,(2)處理單元,通信耦合至在數據中心的葉節(jié)點處的存儲器設備,其中處理單元(a)檢測將路由公告給與數據中心對接的另一數據中心的脊柱節(jié)點的路由公告,(b)標識路由公告中包括的另一數據中心的脊柱節(jié)點的ip標識符,(c)至少部分基于路由公告中標識的ip標識符來確定路由對應于另一數據中心的脊柱節(jié)點,繼而(4)響應于確定路由對應于另一數據中心的脊柱節(jié)點,拒絕去往另一數據中心的脊柱節(jié)點的路由,從而使得葉節(jié)點不得知去往另一數據中心的脊柱節(jié)點的路由。
來自上面提到的實施例中的任何實施例的特征根據在這里描述的一般原則可以相互結合被使用。這些以及其他的實施例、特征和優(yōu)點在結合附圖和權利要求閱讀以下具體實施方式之后將得到更充分的理解。
附圖說明
附圖圖示了若干示例性實施例并且是本說明書的一部分。與以下描述一起,這些附圖展示并說明了本公開內容的各種原理。
圖1是用于防止數據中心架構內子網間流量轉接的示例性系統(tǒng)的框圖。
圖2是用于防止數據中心架構內子網間流量轉接的示例性系統(tǒng)的框圖。
圖3是用于防止數據中心架構內子網間流量轉接的示例性系統(tǒng)的框圖。
圖4是用于防止數據中心架構內子網間流量轉接的示例性方法的流程圖。
圖5是能夠實施在這里描述和/或例示的實施例中的一個或多個和/或能夠結合在這里描述和/或例示的實施例中的一個或多個而被使用的示例性計算系統(tǒng)的框圖。
貫穿附圖,相同的標號和描述指示相似但是不一定相同的要素。盡管在這里描述的示例性實施例易受各種修改和備選形式影響,但是在附圖中已經通過示例方式示出并且將在這里詳細描述特定實施例。然而,在這里描述的示例性實施例并非旨在限制于所公開的具體形式。相反,本公開內容涵蓋落入所附權利要求的范圍內的所有修改、等價物和備選物。
具體實施方式
本公開描述了用于防止數據中心架構內子網間流量轉接的各種方法、系統(tǒng)和裝置。如下文更詳細所述,本公開的系統(tǒng)和方法可以使得本地數據中心內葉節(jié)點能夠在去往本地數據中心內的脊柱節(jié)點的路由與去往遠程數據中心內的脊柱節(jié)點的路由之間進行區(qū)分。通過在這種路由之間進行區(qū)分,這些系統(tǒng)和方法可以使得葉節(jié)點得知去往本地數據中心內的脊柱節(jié)點的路由,但不得知去往遠程數據中心內的脊柱節(jié)點的路由。因此,這些系統(tǒng)和方法可以使得葉節(jié)點總是向本地數據中心內的脊柱節(jié)點轉發(fā)目的地是本地數據中心內另一葉節(jié)點的子網間流量,而不是向簡單地將流量返回到本地數據中心內該另一葉節(jié)點的遠程數據中心內的脊柱節(jié)點轉發(fā)上述流量,由此產生跨數據中心的轉接影響。
本文所使用的術語“轉接”和短語“去轉接”通常指的是產生子網間流量經由網絡核心從本地數據中心轉移到遠程數據中心繼而經由網絡核心回到本地數據中心的任意類型或形式的次優(yōu)路由。本文所使用的術語“數據中心架構”通常指的是包括一個或多個數據中心的任意類型或形式的網絡配置和/或架構。
下面將參考圖1至圖3提供用于防止數據中心架構內子網間流量轉接的示例性系統(tǒng)的詳細描述。對應的計算機實現(xiàn)的方法的詳細描述將結合圖4提供。另外,能夠實現(xiàn)本文所述一個或多個實現(xiàn)方式的示例性計算系統(tǒng)的詳細描述將結合圖5提供。
圖1是用于防止數據中心架構內子網間流量轉接的示例性系統(tǒng)100的框圖。如圖所示,示例性系統(tǒng)100可以包括用于執(zhí)行一個或多個任務的一個或多個模塊102。例如,并且如下文更詳細所述,示例性系統(tǒng)100可以包括檢測模塊104,該檢測模塊104在數據中心的葉節(jié)點處檢測將路由公告給與該數據中心對接的另一數據中心的脊柱節(jié)點的路由公告。示例性系統(tǒng)100還可以包括標識模塊106,該標識模塊106在數據中心的葉節(jié)點處標識路由公告中包括的該另一數據中心的脊柱節(jié)點的ip標識符。示例性系統(tǒng)100可以進一步包括確定模塊108,該確定模塊108在數據中心的葉節(jié)點處至少部分基于路由公告中標識的ip標識符來確定路由對應于該數據中心的脊柱節(jié)點。
另外,并且如下文更詳細所述,示例性系統(tǒng)100可以包括路由模塊110,該路由模塊110響應于確定路由對應于該另一數據中心的脊柱節(jié)點而拒絕去往該另一數據中心的脊柱節(jié)點的路由從而使得葉節(jié)點不得知去往該另一數據中心的脊柱節(jié)點的路由。此外,示例性系統(tǒng)100可以包括轉發(fā)模塊112,該轉發(fā)模塊112經由去往數據中心的脊柱節(jié)點的路由向另一葉節(jié)點轉發(fā)分組。最后,示例性系統(tǒng)100可以包括接收模塊114,該接收模塊114在數據中心的葉節(jié)點處從該另一數據中心的脊柱節(jié)點接收分組即使該葉節(jié)點還不得知去往該另一數據中心的脊柱節(jié)點的路由。雖然圖示為單獨元件,但是圖1中的一個或多個模塊102可以表示單個模塊或應用(諸如網絡操作系統(tǒng))的各部分。
在某些實施例中,圖1的一個或多個模塊102可以表示一個或多個軟件應用或程序,當由計算設備執(zhí)行時,使得該計算設備執(zhí)行一個或多個任務。例如,并且如下文更詳細所述,一個或多個模塊102可以表示被存儲并配置為在一個或多個計算設備上運行的軟件模塊,諸如圖2中圖示的任意設備(例如,葉節(jié)點202和葉節(jié)點204、脊柱節(jié)點206和脊柱節(jié)點208、以及結構節(jié)點210和結構節(jié)點212)、圖3中圖示的任意設備(例如,葉節(jié)點302和葉節(jié)點304、脊柱節(jié)點306和脊柱節(jié)點308、以及結構節(jié)點310和結構節(jié)點312)和/或圖5中的計算設備500。圖1中的一個或多個模塊102還可以表示被配置為執(zhí)行一個或多個任務的一個或多個專用計算機的全部或各部分。
如圖1所示,系統(tǒng)100還可以包括一個或多個路由表,諸如路由表120。在一個示例中,路由表120可以包括和/或表示定義去往數據中心內或跨數據中心的多個網絡目的地的路徑的多個路由。如本文所使用的術語“路徑”通常指的是促進數據中心內或跨數據中心的源與目的地之間的通信和/或流量流。如本文所使用的術語“路由”通常指的是指示或標識數據中心內或跨數據中心的路徑的任意類型或形式的信息、數據和/或表示。
路由表120通常表示包括、存儲和/或標識一個或多個路由的任意類型或形式的表和/或數據庫。路由表120可以包括以各種方式布置和/或組織的多個路由。每個路由可以指示和/或標識表示路徑的各種信息和/或數據。這種信息和/或數據的示例包括但不限于目的地設備的ip地址、網關設備的ip地址、目的地或網關設備的路由前綴、標識服務提供商的訂戶的訂戶標識符、標識網絡內社區(qū)的社區(qū)標識符、路由目標、下一跳的ip地址、上述各項中一個或多個的組合或變體、和/或任意其他適當的信息或數據。
圖1中示例性系統(tǒng)100可以通過各種方式實現(xiàn)。例如,示例性系統(tǒng)100的全部或一部分可以表示圖2中示例性系統(tǒng)200的各部分。如圖2中所示,系統(tǒng)200可以包括和/或表示數據中心220。在此示例中,數據中心220可以包括葉節(jié)點202和葉節(jié)點204、脊柱節(jié)點206和脊柱節(jié)點208、以及結構節(jié)點210和結構節(jié)點212。雖然圖2僅圖示了數據中心220內的葉節(jié)點202和葉節(jié)點204、脊柱節(jié)點206和脊柱節(jié)點208、以及結構節(jié)點210和結構節(jié)點212,但是各種其他網絡節(jié)點、計算系統(tǒng)和/或虛擬機(圖2中未示出)可以表示數據中心220的一部分和/或包括在數據中心220中。
在一個示例中,葉節(jié)點202可以由一個或多個模塊102編程。在此示例中,葉節(jié)點202可以包括、存儲和/或維護路由表120。雖然不必以圖2中的方式圖示,但是葉節(jié)點204也可以由一個或多個模塊102編程。附加地或備選地,葉節(jié)點204可以包括、存儲和/或維護路由表。
作為另一示例,示例性系統(tǒng)100的全部或一部分可以表示圖3中示例性系統(tǒng)300的各部分。如圖3中所示,系統(tǒng)300可以包括經由網絡核心330與數據中心220通信的數據中心320。在此示例中,數據中心320可以包括葉節(jié)點302和葉節(jié)點304、脊柱節(jié)點306和脊柱節(jié)點308、以及結構節(jié)點310和結構節(jié)點312。雖然圖3僅圖示了數據中心320內的葉節(jié)點302和葉節(jié)點304、脊柱節(jié)點306和脊柱節(jié)點308、以及結構節(jié)點310和結構節(jié)點312,但是各種其他網絡節(jié)點、計算系統(tǒng)和/或虛擬機(圖3中未示出)可以表示數據中心320的一部分和/或包括在數據中心320中。
雖然不必以圖3中的方式圖示,但是葉節(jié)點302可以由一個或多個模塊102編程。在此示例中,葉節(jié)點302可以包括、存儲和/或維護路由表。葉節(jié)點304也可以由一個或多個模塊102編程。附加地或備選地,葉節(jié)點304可以包括、存儲和/或維護路由表。
在一個示例中,來自圖1的一個或多個模塊102可以在由圖2中葉節(jié)點202的至少一個處理器執(zhí)行時使得葉節(jié)點202防止跨數據中心220和數據中心320的子網間流量轉接。例如,并且如下文更詳細所述,一個或多個模塊102可以使得葉節(jié)點202(1)檢測將路由公告給與數據中心220對接的數據中心320的脊柱節(jié)點306或脊柱節(jié)點308的路由公告,(2)標識路由公告中包括的脊柱節(jié)點306或308的ip標識符,(3)至少部分基于路由公告中標識的ip標識符來確定路由對應于脊柱節(jié)點306或脊柱節(jié)點308,繼而響應于確定路由對應于脊柱節(jié)點306或脊柱節(jié)點308,(4)拒絕去往脊柱節(jié)點306或308的路由從而使得葉節(jié)點202不得知去往脊柱節(jié)點306或脊柱節(jié)點308的路由。
葉節(jié)點202、204、302和/或304各自通常表示促進數據中心和/或網絡內通信和/或網絡流量的任意類型或形式的設備、系統(tǒng)和/或機制。在一個示例中,葉節(jié)點202、204、302和/或304可以各自表示網絡交換機。在此示例中,葉節(jié)點202、204、302和/或304可以各自促進和/或支持層2橋接和/或交換。附加地或備選地,葉節(jié)點202、204、302和/或304可以各自轉發(fā)層2流量。葉節(jié)點202、204、302和/或304的示例包括但不限于交換機、集線器、路由器、調制解調器、橋接器、中繼器、網關、復用器、網絡適配器、網絡接口、網絡機柜、機箱、服務器、計算設備、上述各項中一個或多個上運行的虛擬機、上述各項中一個或多個的各部分、上述各項中一個或多個的組合或變體和/或任意其他適當的葉節(jié)點。
脊柱節(jié)點206、208、306和/或308各自通常表示促進數據中心和/或網絡內通信和/或網絡流量的任意類型或形式的設備、系統(tǒng)和/或機制。在一個示例中,脊柱節(jié)點206、208、306和/或308可以各自表示路由器(諸如,網關路由器)。在此示例中,脊柱節(jié)點206、208、306和/或308可以各自促進和/或支持層3路由以及轉發(fā)層2和/或層3流量。附加地或備選地,脊柱節(jié)點206、208、306和/或308可以各自執(zhí)行路由和網關功能。脊柱節(jié)點206、208、306和/或308還可以通過多協(xié)議標簽交換(mpls)封裝或虛擬可擴展局域網(vxlan)封裝的方式實現(xiàn)和/或支持以太虛擬專用網絡(evpn)功能。脊柱節(jié)點206、208、306和/或308的示例包括但不限于路由器、網關、交換機、集線器、調制解調器、橋接器、中繼器、復用器、網絡適配器、網絡接口、網絡機柜、機箱、服務器、計算設備、上述各項中一個或多個上運行的虛擬機、上述各項中一個或多個的各部分、上述各項中一個或多個的組合或變體和/或任意其他適當的脊柱節(jié)點。
結構節(jié)點210、212、310和/或312各自通常表示能夠建立和/或形成數據中心和/或網絡之間物理和/或虛擬互連的任意類型或形式的設備、系統(tǒng)和/或機制。在一個示例中,結構節(jié)點210、212、310和/或312可以各自表示網絡交換機。在此示例中,結構節(jié)點210、212、310和/或312可以各自支持和/或促進數據中心220內和/或跨數據中心220和數據中心320的全網狀覆蓋隧道。例如,結構節(jié)點210、212、310和/或312可以通過vxlan來促進和/或實現(xiàn)evpn。附加地或備選地,結構節(jié)點210、212、310和/或312可以通過mpls網絡來促進和/或實現(xiàn)evpn。結構節(jié)點210、212、310和/或312的示例包括但不限于交換機、集線器、路由器、調制解調器、橋接器、中繼器、網關、復用器、網絡適配器、網絡接口、網絡機柜、機箱、服務器、計算設備、上述各項中一個或多個上運行的虛擬機、上述各項中一個或多個的各部分、上述各項中一個或多個的組合或變體和/或任意其他適當的葉節(jié)點。
網絡核心330通常表示將數據中心和/或網絡彼此對接的任意類型或形式的網絡互連、路徑和/或鏈路。在一個示例中,網絡核心330可以包括和/或表示促進跨數據中心220和數據中心230和/或數據中心220和數據中心230之間通信的一個或多個vxlan和/或mpls鏈路和/或電纜。在此示例中,網絡核心330可以使得葉節(jié)點202能夠建立去往數據中心320內一個或多個葉節(jié)點302和304和/或脊柱節(jié)點306和308的vxlan和/或mpls隧道。
數據中心220和數據中心320各自通常表示能夠出于特定目的存儲、管理和/或轉移數據的任意類型和/或形式的集中化物理和/或虛擬設施。在一個示例中,數據中心220和數據中心320可以各自包括和/或實現(xiàn)多級(例如,5級)克洛斯(clos)網絡。在此示例中,數據中心220和數據中心320可以各自組織和/或轉移子網間和/或虛擬局域網間(vlan)流量。
圖4是用于防止數據中心架構內子網間流量轉接的示例性計算機實現(xiàn)的方法400的流程圖。圖4中所示步驟可以由任意適當的計算機可執(zhí)行代碼和/或計算系統(tǒng)執(zhí)行。在某些實施例中,圖4中所示步驟可以由圖1中的系統(tǒng)100、圖2中的系統(tǒng)200和/或圖5中的計算系統(tǒng)500的一個或多個部件執(zhí)行。
如圖4所示,在步驟410,本文所述的一個或多個系統(tǒng)可以在數據中心的葉節(jié)點處檢測將路由公告給與該數據中心對接的另一數據中心的脊柱節(jié)點的路由公告。例如,檢測模塊104可以作為葉節(jié)點202的一部分檢測將路由公告給數據中心320的脊柱節(jié)點306或308的路由公告。在一個示例中,路由公告可以包括和/或表示類型1或類型2公告。附加地或備選地,路由公告可以公告和/或標識針對脊柱節(jié)點306或308上集成的路由橋接(irb)接口的媒體訪問控制(mac)地址的單宿主或多宿主以太段標識符(esi)的每個evpn路由轉發(fā)實例(evi)自動發(fā)現(xiàn)(a-d)路由。路由公告中公告的路由類型示例包括但不限于以太a-d路由、mac公告路由、包容性多播路由、以太段路由、ip前綴路由、邊界網關協(xié)議(bgp)路由、上述各項中一個或多個的組合或變體、和/或任意其他適當的路由類型。
本文所述系統(tǒng)可以通過各種方式和/或上下文來執(zhí)行步驟410。在某些示例中,檢測模塊104可以檢測路由公告同時監(jiān)測正由數據中心220和數據中心320內節(jié)點公告的新的和/或更新的路由。例如,數據中心320內的脊柱節(jié)點306或脊柱節(jié)點308可以生成將路由公告給脊柱節(jié)點306或脊柱節(jié)點308的路由公告。在此示例中,脊柱節(jié)點306或脊柱節(jié)點308可以經由網絡核心330將此路由公告?zhèn)鬏?、多播?或廣播給數據中心220。當路由公告到達數據中心220內的葉節(jié)點202時,檢測模塊104可以接收和/或檢測路由公告。
返回圖4,在步驟420,本文所述的一個或多個系統(tǒng)可以在數據中心的葉節(jié)點處標識路由公告中包括的該另一數據中心的脊柱節(jié)點的ip標識符。例如,標識模塊106可以作為葉節(jié)點202的一部分標識路由公告中包括的脊柱節(jié)點306或脊柱節(jié)點308的ip標識符。ip標識符的示例包括但不限于ip地址(諸如,選播ip地址和/或虛擬隧道終端(vtep)ip地址)、路由區(qū)分符、路由目標、mac地址、上述各項中一個或多個的組合或變體、和/或任意其他適當類型的ip標識符。
本文所述的系統(tǒng)可以通過各種方式和/或上下文來執(zhí)行步驟420。在某些示例中,標識模塊106可以通過分析路由公告來標識ip標識符。例如,標識模塊106可以解析路由公告和/或針對任意ip標識符搜索路由公告。在解析和/或搜索路由公告時,標識模塊106可以標識路由公告內的一個或多個ip標識符。
在某些示例中,路由公告內標識的一個或多個ip標識符可以對應于數據中心220和數據中心320內的多個節(jié)點。例如,標識模塊106可以標識路由公告內對脊柱節(jié)點306或脊柱節(jié)點308不是唯一的ip標識符。相反,此ip標識符可以對應于所有脊柱節(jié)點206、208、306和/或308。
然而,路由公告內標識的一個或多個ip標識符可以對于其路由正被公告的節(jié)點是特定和/或唯一的。例如,標識模塊106可以標識路由公告內對脊柱節(jié)點306是特定或唯一的ip標識符。換言之,此ip標識符可以具有與脊柱節(jié)點306的一對一關系。
返回圖4,在步驟430,本文所述的一個或多個系統(tǒng)可以在數據中心的葉節(jié)點處至少部分基于路由公告中標識的ip標識符來確定路由對應于該另一數據中心的脊柱節(jié)點。例如,確定模塊108可以作為葉節(jié)點202的一部分至少部分基于路由公告中標識的ip標識符來確定路由對應于數據中心320的脊柱節(jié)點306或脊柱節(jié)點308。換言之,確定模塊108可以確定此路由定義經由網絡核心330去往數據中心320的脊柱節(jié)點306或脊柱節(jié)點308的路徑。
本文所述的系統(tǒng)可以通過各種方式和/或上下文來執(zhí)行步驟430。在某些示例中,確定模塊108可以通過將路由公告中標識的ip標識符與列表進行比較來確定路由對應于數據中心320內的脊柱節(jié)點之一。例如,確定模塊108可以將路由公告中標識的ip標識符與已知對應于數據中心320的脊柱節(jié)點的ip標識符的黑名單進行比較。在通過此方式將路由公告中標識的ip標識符與黑名單進行比較之后,確定模塊108可以確定路由公告中標識的ip標識符匹配來自黑名單的ip標識符之一。因此,確定模塊108可以確定路由公告中公告的路由導向數據中心320內的脊柱節(jié)點之一,而不是數據中心220內的脊柱節(jié)點之一。
作為特定示例,標識模塊106可以標識路由公告內的下一跳ip地址。確定模塊108繼而可以將此下一跳ip地址與包括和/或標識數據中心320內脊柱節(jié)點306和脊柱節(jié)點308的下一跳ip地址的列表進行比較。在通過此方式將路由公告內標識的下一跳ip地址與列表進行比較之后,確定模塊108可以確定此下一跳ip地址包括和/或標識在該列表中。因此,確定模塊108可以確定葉節(jié)點202不得知此路由公告內公告的路由。
作為另一示例,標識模塊106可以標識路由公告內社區(qū)標識符和/或路由目標。例如,脊柱節(jié)點306或脊柱節(jié)點308可以將社區(qū)標識符和/或路由目標包括和/或插入至路由公告。在此示例中,社區(qū)標識符和/或路由目標可以將數據中心320標識和/或指示為路由公告的源。因此,確定模塊108可以確定葉節(jié)點202不得知此路由公告內公告的路由。
針對這些示例,確定模塊108可以為了避免跨網絡核心330反復轉接流量而進行這些確定。換言之,由于葉節(jié)點202無法得知此類路由,因此葉節(jié)點202可能無法將流量轉發(fā)給數據中心320內的脊柱節(jié)點。因此,葉節(jié)點202可以被限制選擇數據中心220內的脊柱節(jié)點206和脊柱節(jié)點208之一以促進層3路由,由此防止目的地是附接到數據中心220內葉節(jié)點204的計算系統(tǒng)的流量的轉接。
返回圖4,在步驟440,本文所述的一個或多個系統(tǒng)可以在葉節(jié)點處拒絕去往該另一數據中心的脊柱節(jié)點的路由從而使得葉節(jié)點不得知去往該另一數據中心的脊柱節(jié)點的路由。例如,路由模塊110可以作為葉節(jié)點202的一部分響應于確定路由對應于數據中心320內的脊柱節(jié)點之一拒絕路由公告中公告的路由。由于此拒絕,葉節(jié)點202可能無法得知去往數據中心320內該脊柱節(jié)點的路由。
本文所述的系統(tǒng)可以通過各種方式和/或上下文來執(zhí)行步驟440。在某些示例中,路由模塊110可以通過拒絕將路由添加到葉節(jié)點202中包括的路由表120來拒絕該路由。例如,路由模塊110可以指導葉節(jié)點202忽視和/或忽略路由公告中公告的路由。由于該指導,葉節(jié)點202可能無法得知路由公告中公告的路由。通過以此方式拒絕將路由添加到路由表120,路由模塊110可以強制葉節(jié)點202將目的地是葉節(jié)點204的流量轉發(fā)給數據中心220內的脊柱節(jié)點206或脊柱節(jié)點208。
換言之,路由模塊110可以防止葉節(jié)點202經由數據中心320內脊柱節(jié)點306或脊柱節(jié)點308轉發(fā)目的地是葉節(jié)點204的流量。因此,路由模塊110可以確保葉節(jié)點202不經由去往數據中心320內脊柱節(jié)點306或脊柱節(jié)點308的路由將流量轉發(fā)給葉節(jié)點204。例如,標識模塊106可以在葉節(jié)點202標識待向附接到數據中心220的葉節(jié)點204的計算系統(tǒng)(諸如,虛擬機)轉發(fā)的分組。在此示例中,標識模塊106可以標識去往數據中心220的脊柱節(jié)點206或脊柱節(jié)點208的路由。葉節(jié)點202可能早先已經得知了此路徑,這是由于此路徑是去往數據中心220的脊柱節(jié)點206或脊柱節(jié)點208而不是去往數據中心320的脊柱節(jié)點306或脊柱節(jié)點308。
一旦此路由被標識,本文所述的一個或多個系統(tǒng)可以經由去往脊柱節(jié)點306或脊柱節(jié)點308的路由將分組轉發(fā)給葉節(jié)點204。例如,轉發(fā)模塊112可以作為葉節(jié)點202的一部分經由去往脊柱節(jié)點206或脊柱節(jié)點208的路由將分組轉發(fā)給葉節(jié)點204。更具體地,轉發(fā)模塊112可以將分組轉發(fā)給數據中心220的脊柱節(jié)點206或脊柱節(jié)點208。在接收到分組之后,脊柱節(jié)點206或208可以轉而將該分組轉發(fā)給葉節(jié)點204。通過以此方式將分組轉發(fā)給脊柱節(jié)點206或脊柱節(jié)點208,轉發(fā)模塊112可以確保分組在去往葉節(jié)點204的途中不穿過數據中心320的脊柱節(jié)點306或脊柱節(jié)點308。
在某些示例中,葉節(jié)點202可以促進和/或支持數據中心220內的層2橋接和/或交換。例如,標識模塊106可以標識來自附接到葉節(jié)點202的源虛擬機的分組。標識模塊106繼而可以至少部分基于分組的目的地ip地址確定該分組的目的地是附接到數據中心220內葉節(jié)點204的虛擬機。在源虛擬機和目的地虛擬機包括在相同子網的情況下,轉發(fā)模塊112能夠通過層2橋接和/或交換的方式將分組從葉節(jié)點202直接轉發(fā)給葉節(jié)點204。然而,在源虛擬機和目的地虛擬機包括在不同子網的情況下,轉發(fā)模塊112可能無法通過層2橋接和/或交換的方式將分組從葉節(jié)點202直接轉發(fā)給葉節(jié)點204。
繼續(xù)此示例,葉節(jié)點202可能無法促進和/或支持數據中心220內或跨數據中心220和數據中心320的層3路由。與之相反,脊柱節(jié)點206和脊柱節(jié)點208可以各自能夠促進和/或支持數據中心220內或跨數據中心220和數據中心320的層3路由。因此,在源虛擬機和目的地虛擬機包括在不同子網的情況下,葉節(jié)點202可以依賴脊柱節(jié)點206或脊柱節(jié)點208來促進分組的層3路由。由于路由模塊110拒絕了去往脊柱節(jié)點306和脊柱節(jié)點308的路由,因此標識模塊106可以被限制選擇去往數據中心220內脊柱節(jié)點206或脊柱節(jié)點208的路由。在選擇路由之后,轉發(fā)模塊112可以向分組指派對應脊柱節(jié)點的mac地址,繼而將該分組轉發(fā)給該脊柱節(jié)點。
在從葉節(jié)點202接收分組之后,脊柱節(jié)點可以至少部分基于分組的目的地ip地址查找脊柱節(jié)點的路由表中對應于葉節(jié)點204的層3路由。在此查找期間,脊柱節(jié)點可以標識對應于葉節(jié)點204的層3路由。此層3路由可以標識和/或指示與包括目的地虛擬機的子網相關聯(lián)的橋域。脊柱節(jié)點繼而可以根據路由表中標識的層3路由經由葉節(jié)點204將分組轉發(fā)給目的地虛擬機。
雖然葉節(jié)點202可能無法將流量直接轉發(fā)給數據中心320內的脊柱節(jié)點306和脊柱節(jié)點308,但是葉節(jié)點202能夠直接從脊柱節(jié)點306和脊柱節(jié)點308接收流量。在一個示例中,本文所述的一個或多個系統(tǒng)可以在葉節(jié)點202處從脊柱節(jié)點306或脊柱節(jié)點308接收分組,即便葉節(jié)點202尚不得知去往脊柱節(jié)點306和脊柱節(jié)點308的路由。例如,接收模塊114可以作為葉節(jié)點202的一部分處從脊柱節(jié)點306或脊柱節(jié)點308接收分組,即便葉節(jié)點202尚不得知去往脊柱節(jié)點306和脊柱節(jié)點308的路由。在此示例中,分組可以源自附接到數據中心320內葉節(jié)點302或葉節(jié)點304的計算系統(tǒng)(諸如,虛擬機)。在葉節(jié)點202處接收分組之后,轉發(fā)模塊112可以將分組轉發(fā)給附接到葉節(jié)點202的計算系統(tǒng)(諸如,虛擬機)。
如上文結合圖1至圖4所述,處理數據中心架構內流量的葉節(jié)點可以在去往本地數據中心內的脊柱節(jié)點的路由與去往遠程數據中心內的脊柱節(jié)點的路由之間進行區(qū)分。通過在這種路由之間進行區(qū)分,這些葉節(jié)點可以得知去往本地數據中心內的脊柱節(jié)點的路由,并拒絕去往遠程數據中心內的脊柱節(jié)點的路由。因此,這些葉節(jié)點總是向本地數據中心內的脊柱節(jié)點轉發(fā)目的地是本地數據中心內另一葉節(jié)點的子網間流量,而不是將此流量轉發(fā)給遠程數據中心內的脊柱節(jié)點。通過這樣做,這些葉節(jié)點可以防止跨數據中心的轉接,由此減少網絡延遲、緩解擁擠網絡鏈路、減少帶寬消耗和/或增加因特網訪問速度。
圖5是示例性計算系統(tǒng)500的框圖,計算系統(tǒng)500能夠實施這里所描述和/或所例示的實施例中的一個或多個實施例,和/或結合這里所描述和/或所例示的實施例中的一個或多個實施例而被使用。在一些實施例中,計算系統(tǒng)500的全部或者一部分可以單獨地或者結合其他元件地執(zhí)行結合圖3所描述的步驟中的一個或多個步驟,和/或可以是用于單獨地或者結合其他元件地執(zhí)行結合圖3所描述的步驟中的一個或多個步驟的裝置。計算系統(tǒng)500的全部或者一部分也可以執(zhí)行這里所描述和/或所例示的任何其他步驟、方法或過程,和/或可以是執(zhí)行和/或實施這里所描述和/或所例示的任何其他步驟、方法或過程的裝置。在一個示例中,計算系統(tǒng)500可以包括和/或表示執(zhí)行和/或構成用于執(zhí)行和/或實現(xiàn)本文所述和/或所示的任意其他步驟、方法或過程的模塊的裝置。
計算系統(tǒng)500寬泛地表示任何類型或形式的電負載,包括能夠執(zhí)行計算機可讀指令的單個或多個處理器計算設備或系統(tǒng)。計算系統(tǒng)500的示例包括但不限于工作站、膝上型計算機、客戶側終端、服務器、分布式計算系統(tǒng)、移動設備、網絡交換機、網絡路由器(例如,主干路由器、邊緣路由器、核心路由器、移動服務路由器、寬帶路由器等)、網絡電器(例如,網絡安全電器、網絡控制電器、網絡定時電器、sslvpn(安全套接字層虛擬專用網)電器等)、網絡控制器、網關(例如,服務網關、移動分組網關、多接入網關、安全網關等)和/或任何其他類型或形式的計算系統(tǒng)或設備。
計算系統(tǒng)500可以被編程、被配置和/或以其他方式被設計,以遵從一個或多個網絡協(xié)議。根據某些實施例,計算系統(tǒng)500可以被設計為與開放系統(tǒng)互連(osi)參考模型的一個或多個層的協(xié)議(諸如物理層協(xié)議、鏈路層協(xié)議、網絡層協(xié)議、傳輸層協(xié)議、會話層協(xié)議、表示層協(xié)議和/或應用層協(xié)議)一起工作。例如,計算系統(tǒng)500可以包括根據通用串行總線(usb)協(xié)議、電氣和電子工程師協(xié)會(ieee)1394協(xié)議、以太網協(xié)議、tl協(xié)議、同步光纖網絡(sonet)協(xié)議、同步數字階層(sdh)協(xié)議、綜合業(yè)務數字網(isdn)協(xié)議、異步傳輸模式(atm)協(xié)議、點對點協(xié)議(ppp)、通過以太網的點對點協(xié)議(pppoe)、通過atm的點對點協(xié)議(pppoa)、藍牙協(xié)議、ieee802.xx協(xié)議、幀中繼協(xié)議、令牌環(huán)協(xié)議、生成樹協(xié)議、mpls協(xié)議和/或任何其他合適的協(xié)議而配置的網絡設備。
計算系統(tǒng)500可以包括各種網絡和/或計算組件。例如,計算系統(tǒng)500可以包括至少一個硬件處理器514和系統(tǒng)存儲器516。處理器514一般性地表示能夠處理數據或者解譯和執(zhí)行指令的任何類型或形式的處理單元。例如,處理器514可以表示專用集成電路(asic)、片上系統(tǒng)(例如,網絡處理器)、硬件加速器、通用處理器和/或任何其他適當的處理元件。
處理器514可以根據上面所討論的聯(lián)網協(xié)議中的一個或多個聯(lián)網協(xié)議來處理數據。例如,處理器514可以執(zhí)行或實施協(xié)議棧的一部分、可以處理分組、可以執(zhí)行存儲器操作(例如,將用于稍后處理的分組排隊)、可以執(zhí)行終端用戶應用和/或可以執(zhí)行任何其他處理任務。
系統(tǒng)存儲器516一般性地表示能夠存儲數據和/或其他計算機可讀指令的任何類型或形式的易失性或非易失性存儲設備或介質。系統(tǒng)存儲器516的示例包括但不限于隨機存取存儲器(ram)、只讀存儲器(rom)、閃存或任何其他合適的存儲器設備。雖然未被要求,但是在某些實施例中,計算系統(tǒng)500可以包括易失性存儲單元(諸如,例如,系統(tǒng)存儲器516)和非易失性存儲設備(諸如,例如,如在下面詳細描述的主存儲設備532)。系統(tǒng)存儲器516可以被實施為網絡設備中的共享式存儲器和/或分布式存儲器。另外,系統(tǒng)存儲器516可以存儲分組和/或在聯(lián)網操作中使用的其他信息。在一個示例中,系統(tǒng)存儲器516可以包括和/或存儲來自圖1的一個或多個模塊102。
在某些實施例中,示例性計算系統(tǒng)500還可以包括除了處理器514和系統(tǒng)存儲器516之外的一個或多個組件或元件。例如,如圖5中所圖示的,計算系統(tǒng)500可以包括存儲器控制器518、輸入/輸出(i/o)控制器520以及通信接口522,它們中的每個都可以經由通信基礎設施512而被互連。通信基礎設施512一般性地表示能夠有助于計算設備的一個或多個組件之間的通信的任何類型或形式的基礎設施。通信基礎設施512的示例包括但不限于通信總線(諸如串行ata(sata)、工業(yè)標準結構(isa)、外圍組件互連(pci)、pci高速(pcie)和/或任何其他適當總線),以及網絡。
存儲器控制器518一般性地表示能夠處置存儲器或數據或者控制計算系統(tǒng)500的一個或多個組件之間的通信的任何類型或形式的設備。例如,在某些實施例中,存儲器控制器518可以經由通信基礎設施512來控制處理器514、系統(tǒng)存儲器516、以及i/o控制器520之間的通信。在一些實施例中,存儲器控制器518可以包括直接存儲器訪問(dma)單元,該直接存儲器訪問單元可以向鏈路適配器或者從鏈路適配器傳送數據(例如,分組)。
i/o控制器520一般性地表示能夠協(xié)調和/或控制計算設備的輸入和輸出功能的任何類型或形式的設備或模塊。例如,在某些實施例中,i/o控制器520可以控制或有助于計算系統(tǒng)500的一個或多個元件(諸如處理器514、系統(tǒng)存儲器516、通信接口522、以及存儲接口530)之間的數據傳送。
通信接口522寬泛地表示能夠有助于示例性計算系統(tǒng)500與一個或多個附加設備之間的通信的任何類型或形式的通信設備或適配器。例如,在某些實施例中,通信接口522可以有助于計算系統(tǒng)500與包括附加計算系統(tǒng)的私有或公有網絡之間的通信。通信接口522的示例包括但不限于鏈路適配器、有線網絡接口(諸如網絡接口卡)、無線網絡接口(諸如無線網絡接口卡)、以及任何其他適當的接口。在至少一個實施例中,通信接口522可以經由通向網絡(諸如因特網)的直接鏈路而提供通向遠程服務器的直接連接。通信接口522也可以通過例如局域網(諸如以太網)、個域網、廣域網、私有網絡(例如,虛擬專用網絡)、電話或電纜網絡、蜂窩電話連接、衛(wèi)星數據連接或者任何其他適當的連接,來間接地提供這樣的連接。
在某些實施例中,通信接口522也可以表示被配置為經由外部總線或通信信道來有助于計算系統(tǒng)500與一個或多個附加網絡或存儲設備之間的通信的主機適配器。主機適配器的示例包括但不限于小型計算機系統(tǒng)接口(scsi)主機適配器、通用串行總線(usb)主機適配器、ieee1394主機適配器、先進技術附件(ata)主機適配器、并行ata(pata)主機適配器、串行ata(sata)主機適配器、以及外部sata(esata)主機適配器、光纖信道接口適配器、以太網適配器等。通信接口522也可以使得計算系統(tǒng)500能夠參與分布式或遠程計算。例如,通信接口522可以從遠程設備接收指令或者向遠程設備發(fā)送指令以用于執(zhí)行。
如圖5中所圖示的,示例性計算系統(tǒng)500也可以包括經由存儲接口530而耦合到通信基礎設施512的主存儲設備532和/或備份存儲設備534。存儲設備532和534一般性地表示能夠存儲數據和/或其他計算機可讀指令的任何類型或形式的存儲設備或介質。例如,存儲設備532和534可以表示磁盤驅動器(例如,所謂的硬盤驅動器)、固態(tài)驅動器、軟盤驅動器、磁帶驅動器、光盤驅動器、閃存驅動器等。存儲接口530一般性地表示用于在存儲設備532和534與計算系統(tǒng)500的其他組件之間傳送數據的任何類型或形式的接口或設備。
在某些實施例中,存儲設備532和534可以被配置為從可移除存儲單元讀取和/或向可移除存儲單元寫入,該可移除存儲單元被配置為存儲計算機軟件、數據或其他計算機可讀信息。適當的可移除存儲單元的示例包括但不限于軟盤、磁帶、光盤、閃存設備等。存儲設備532和534也可以包括用于允許計算機軟件、數據或其他計算機可讀指令被加載到計算系統(tǒng)500中的其他類似的結構或設備。例如,存儲設備532和534可以被配置為讀取和寫入軟件、數據或其他計算機可讀信息。存儲設備532和534可以是計算系統(tǒng)500的一部分或者可以是通過其他接口系統(tǒng)訪問的分開的設備。
許多其他的設備或子系統(tǒng)可以被連接到計算系統(tǒng)500。相反地,為了實踐這里所描述和/或例示的各實施例,不必出現(xiàn)圖5中所圖示的所有組件和設備。上面所提及的設備和子系統(tǒng)也可以按照與圖5中所示出的方式不同的方式被互連。計算系統(tǒng)500也可以采用任何數量的軟件、固件和/或硬件配置。例如,這里所公開的示例性實施例中的一個或多個可以被編碼為計算機可讀介質上的計算機程序(也被稱為計算機軟件、軟件應用、計算機可讀指令或者計算機控制邏輯)。術語“計算機可讀介質”一般指代能夠存儲或攜帶計算機可讀指令的任何形式的設備、載體或介質。計算機可讀介質的示例包括但不限于:傳輸型介質,諸如載波;以及非瞬態(tài)型介質,諸如磁存儲介質(例如,硬盤驅動器和軟盤)、光存儲介質(例如,壓縮盤(cd)和數字視頻盤(dvd))、電子存儲介質(例如,固態(tài)驅動器和閃存介質);以及其他分布系統(tǒng)。
雖然前述公開內容使用具體框圖、流程圖以及示例闡述了各種實施例,但是使用寬范圍的硬件、軟件、或者固件(或它們的任何組合)配置,可以個別地和/或共同地實施這里所描述和/或例示的每個框圖組件、流程圖步驟、操作和/或組件。此外,包含在其他組件內的組件的任何公開內容應當被考慮為本質上是示例性的,因為能夠實施許多其他架構來實現(xiàn)相同的功能。
在一些示例中,圖1中的系統(tǒng)100的全部或者一部分可以表示云計算或基于網絡的環(huán)境的部分。云計算或基于網絡的環(huán)境可以經由因特網來提供各種服務和應用。這些云計算和基于網絡的服務(例如,軟件即服務、平臺即服務、基礎設施即服務等)可以通過web瀏覽器或其他遠程接口而是可訪問的。這里所描述的各種功能也可以提供網絡交換能力、網關接入能力、網絡安全功能、用于網絡的內容緩存和交付服務、網絡控制服務和/或其他聯(lián)網功能。
此外,這里所描述的模塊中的一個或多個模塊可以將數據、物理設備和/或物理設備的表示從一種形式變換為另一種形式。例如,這里所記載的模塊中的一個或多個模塊可以通過在計算設備上執(zhí)行、在計算設備上存儲數據和/或以其他方式與計算設備交互,而將處理器、易失性存儲器、非易失性存儲器和/或物理計算機設備的任何其他部分從一種形式變換為另一種形式。
這里所描述和/或例示的步驟的過程參數和次序僅通過示例的方式給出,并且能夠根據需要而變化。例如,雖然這里所例示和/或描述的步驟可以以特定的順序被示出或討論,但是這些步驟并非必然需要按照所例示或討論的順序被執(zhí)行。這里所描述和/或例示的各種示例性方法也可以省略這里所描述或例示的步驟中的一個或多個步驟或者包括除了所公開的那些步驟之外的附加步驟。
已經提供了前面的描述,從而使得本領域的技術人員能夠最好地利用這里所公開的示例性實施例的各個方面。這一示例性描述并非旨在是詳盡的或者被限制為所公開的任何精確形式。在不脫離本公開的精神和范圍的情況下,許多修改和變型是可能的。這里所公開的實施例應當在各方面被考慮為是說明性而非限制性的。在確定本公開的范圍時,應當對所附權利要求以及它們的等價物做出參考。
除非另有指明,說明書和權利要求中所使用的術語“連接至”和“耦合至”(以及它們的派生詞),將被解釋為準許直接和間接(即,經由其他元件或組件)連接兩者。此外,如說明書和權利要求中所使用的術語“一”或“一種”,將被解釋為意指“至少一個”。最后,為使用的簡單性,說明書和權利要求中所使用的術語“包括”和“具有”(以及它們的派生詞)與詞語“包含”是可互換的并且與詞語“包含”具有相同含義。