管理和保護網(wǎng)絡的網(wǎng)絡操作系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開管理和保護網(wǎng)絡的網(wǎng)絡操作系統(tǒng)。描述管理網(wǎng)絡的系統(tǒng)和方法。維護網(wǎng)絡的當前狀態(tài)的概觀,其中網(wǎng)絡的當前狀態(tài)表征網(wǎng)絡拓撲和網(wǎng)絡組成,所述網(wǎng)絡組成包括駐留在網(wǎng)絡中或網(wǎng)絡上的網(wǎng)絡實體和網(wǎng)絡部件。通告與網(wǎng)絡狀態(tài)的變化對應的事件,并且能夠相應地配置一個或多個網(wǎng)絡部件。描述了管理網(wǎng)絡業(yè)務的方法,所述方法確保網(wǎng)絡部件采取的轉(zhuǎn)發(fā)和其它動作實現(xiàn)全局聲明的網(wǎng)絡策略,并涉及高級名稱,而與網(wǎng)絡拓撲和網(wǎng)絡組成的位置無關。描述了發(fā)現(xiàn)網(wǎng)絡組成的方法,從而自動配置網(wǎng)絡組成。利用ACL可實現(xiàn)路由,能夠截取分組,以允許主機繼續(xù)保持休眠模式。這些方法適用于虛擬環(huán)境。
【專利說明】管理和保護網(wǎng)絡的網(wǎng)絡操作系統(tǒng)
[0001] 本申請是申請日為2008年9月26日、申請?zhí)枮?00880116637. X、發(fā)明名稱為"管 理和保護網(wǎng)絡的網(wǎng)絡操作系統(tǒng)"的發(fā)明專利申請的分案申請。
[0002] 交叉引用
[0003] 本發(fā)明要求2007年9月26日提交的題目為"Flow Based Network Operating System"的美國臨時專利申請No. 60/995435,以及2008年1月14日提交的題目為"Network Operating System for Managing and Securing Enterprise Networks" 的美國臨時專利 申請No. 61/010985的優(yōu)先權,將這兩個申請整體包括在此用于所有目的。
【技術領域】
[0004] 本發(fā)明一般地涉及計算機網(wǎng)絡管理和安全,更具體地說,涉及用于控制網(wǎng)絡的可 縮放和可自動配置的系統(tǒng)和方法。
【背景技術】
[0005] 許多當前的企業(yè)具有大型且復雜的網(wǎng)絡,這些網(wǎng)絡包含支持各種連接、應用和 系統(tǒng)的鏈路、交換機、集線器、路由器、服務器、工作站和其它聯(lián)網(wǎng)設備。同時待審的申請 No. 11/970976(申請日2008年1月8日,該申請的內(nèi)容在此引為參考)推進了網(wǎng)絡管理領 域的狀態(tài)。不過,盡管這些和其它重大的商業(yè)和學術努力減輕了網(wǎng)絡管理員的負擔,不過這 些網(wǎng)絡仍然難以被管理和保護。
[0006] 參考主機操作系統(tǒng)和網(wǎng)絡操作系統(tǒng)的開發(fā)的差異,能夠更好地舉例說明這些網(wǎng)絡 的管理員遇到的一些問題。在早期的計算中,程序是利用不存在對底層物理資源的通用抽 象(abstraction)的機器語言編寫的。這使得程序難以編寫、移植、推理(reason about) 和調(diào)試。開發(fā)了現(xiàn)代操作系統(tǒng),以通過提供對諸如內(nèi)存、存儲器、通信和文件、目錄等中的信 息之類資源的高級抽象的受控訪問,便利程序開發(fā)。這些抽象使程序能夠在各種各樣的計 算硬件上執(zhí)行復雜的任務。
[0007] 相反,網(wǎng)絡一般是通過各個組件的低級配置來管理的。網(wǎng)絡配置常常取決于底層 網(wǎng)絡:例如,用訪問控制列表("ACL")條目阻斷用戶的訪問要求知道用戶的當前IP地址。 更復雜的任務要求更大量的網(wǎng)絡知識:強迫訪客用戶的端口 80業(yè)務經(jīng)過HTTP代理服務器 則要求知道當前的網(wǎng)絡拓撲和每個訪客的位置。傳統(tǒng)的網(wǎng)絡類似無操作系統(tǒng)的計算機,與 網(wǎng)絡相關的組件配置起與硬件相關的機器語言編程的作用。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的一些實施例提供控制全局路由和其它轉(zhuǎn)發(fā)行為(包括網(wǎng)絡地址轉(zhuǎn)換、力口 密、封裝、有狀態(tài)的隧穿,和各種形式的服務質(zhì)量)的系統(tǒng)和方法。當流起始時,可實時地對 每個流單獨做出這些決策,這些決策可基于按照高級名稱(主機、用戶、服務等的名稱)表 述的通用策略。這些策略的實現(xiàn)可與網(wǎng)絡拓撲無關,并且當用戶和主機移動,并且網(wǎng)絡變化 時,這些策略仍然有效。通過利用在多數(shù)商用交換芯片中提供的ACL功能,能夠?qū)崿F(xiàn)本發(fā)明 的一些實施例。
[0009] 本發(fā)明的一些實施例提供保持全面網(wǎng)絡概觀的系統(tǒng)和方法。在這些實施例的一些 中,網(wǎng)絡概觀包括網(wǎng)絡部件的拓撲。在這些實施例的一些中,網(wǎng)絡概觀識別實體的位置,實 體包括用戶,服務和主機。在這些實施例的一些中,保持網(wǎng)絡概觀的歷史以及網(wǎng)絡流的歷 史。
[0010] 本發(fā)明的一些實施例提供集中的編程接口,所述編程接口使高級語言可以訪問網(wǎng) 絡概觀,通知包括流發(fā)起和網(wǎng)絡概觀的變化的網(wǎng)絡事件,和控制網(wǎng)絡部件的控制機制。該系 統(tǒng)可提供全局路由的實時逐流控制。在這些實施例的一些中,系統(tǒng)控制流通過網(wǎng)絡的路徑, 和網(wǎng)絡部件對流的處理。在這些實施例的一些中,通過一致性要求的嚴格分離,系統(tǒng)是可縮 放的,只有網(wǎng)絡概觀要求全局一致性。在這些實施例的一些中,關于流的決策基于全局網(wǎng)絡 概觀和流狀態(tài)。在這些實施例的一些中,這允許把一致但是緩慢改變的網(wǎng)絡概觀和局部但 是快速變化的參數(shù)分開。在這些實施例的一些中,獨立于多個控制器中的每一個來處理流 狀態(tài)。
[0011] 本發(fā)明的一些實施例提供自動配置網(wǎng)絡的方法。在這些實施例的一些中,自動配 置包括自動檢測與網(wǎng)絡連接的新設備和服務。在這些實施例的一些中,自動配置包括自動 更新流條目和其它配置信息。在這些實施例的一些中,流條目和其它配置信息的自動更新 允許在面臨各種網(wǎng)絡變化時,保持全局指示("策略")的實現(xiàn)方式。
[0012] 本發(fā)明的一些實施例支持分組的智能截取,使主機能夠保持功率降低模式。
[0013] 本發(fā)明的一些實施例支持虛擬環(huán)境,包括支持遷移VM。在這些實施例的其中多個 VM與某些設備相關聯(lián)的一些實施例中,系統(tǒng)允許控制這些共同駐留的VM之間的通信。在這 些實施例的一些中,使用帶內(nèi)控制來管理設備。在這些實施例的一些中,通過利用ACL功能 提供全局功能,來控制交換機。
[0014] 本發(fā)明的一些實施例支持通過單系統(tǒng)管理和保護多個網(wǎng)絡。
[0015] 本發(fā)明的一些實施例支持使多個管理系統(tǒng)共享單網(wǎng)絡基礎結(jié)構(gòu)的控制,使不同的 管理機構(gòu)能夠分開控制。
[0016] 本發(fā)明的一些實施例提供管理網(wǎng)絡的系統(tǒng)和方法。這些實施例的一些包括維護網(wǎng) 絡的當前狀態(tài)的網(wǎng)絡概觀,網(wǎng)絡的當前狀態(tài)表征網(wǎng)絡組件和網(wǎng)絡拓撲,網(wǎng)絡組成包括網(wǎng)絡 上目前可尋址的網(wǎng)絡實體和網(wǎng)絡部件,通告與網(wǎng)絡狀態(tài)的變化對應的事件,和根據(jù)網(wǎng)絡概 觀和事件之一配置網(wǎng)絡部件之一。在這些實施例的一些中,網(wǎng)絡實體包括網(wǎng)絡用戶。在這 些實施例的一些中,一個或多個網(wǎng)絡管理應用訪問網(wǎng)絡概觀。在這些實施例的一些中,網(wǎng)絡 的當前狀態(tài)包括網(wǎng)絡組件的位置。在這些實施例的一些中,網(wǎng)絡的當前狀態(tài)還表征網(wǎng)絡中 的流。
【專利附圖】
【附圖說明】
[0017] 圖la和lb是按照本發(fā)明的一些方面的網(wǎng)絡管理器和網(wǎng)絡部件的示意方框圖。
[0018] 圖2是示出按照本發(fā)明的一些方面的網(wǎng)絡管理器的組件的示意方框圖。
[0019] 圖3描述按照本發(fā)明的一些方面的一些Ν0Χ核心組件。
[0020] 圖4描述按照本發(fā)明的一些方面的目錄管理器和其與系統(tǒng)的集成。
[0021] 圖5描述按照本發(fā)明的一些方面的與Ν0Χ集成的策略控制的例子。
[0022] 圖6描述按照本發(fā)明的一些方面的Ν0Χ內(nèi)的主機鑒別的例子。
[0023] 圖7表示按照本發(fā)明的一些方面的流條目的例子。
【具體實施方式】
[0024] 下面參考作為例子提供的,以使本領域的技術人員能夠?qū)嵺`本發(fā)明的附圖,詳細 說明本發(fā)明的實施例。值得注意地,下面的附圖和例子并不意圖把本發(fā)明的范圍限制于單 一實施例,相反通過相互交換一些或全部說明的或者圖示的部件,其它實施例也是可能的。 在方便的情況下,遍及附圖使用相同的附圖標記表示相同或相似的部分。在這些實施例的 一些部件可部分或完全用已知組件實現(xiàn)的情況下,將只說明這種已知組件的對理解本發(fā)明 來說必不可少的那些部分,這種已知組件的其它部分的詳細說明將被省略,以便不會模糊 本發(fā)明。在說明書中,表示單個組件的實施例不應被看作是限制性的;相反,本發(fā)明意圖包 含包括多個相同組件的其它實施例,反之亦然,除非另有明確說明。此外, 申請人:并不打算 對說明書或權利要求中的任何術語賦予不常見或者特殊的含義,除非明確地作出說明。此 夕卜,本發(fā)明包含這里作為例子涉及的組件的目前和未來的已知等同物。
[0025] 本發(fā)明的一些實施例提供管理和保護數(shù)據(jù)通信網(wǎng)絡的系統(tǒng)和方法。這些系統(tǒng)和方 法一般支持對網(wǎng)絡部件的可縮放和可自動配置的編程控制,提供網(wǎng)絡的全面了解和對網(wǎng)絡 業(yè)務的逐流控制。本發(fā)明的各個方面允許常規(guī)商用交換機的集成和控制,以及為配置和適 合于在本發(fā)明的實施例中使用的網(wǎng)絡系統(tǒng)提供新的特征和功能。
[0026] 數(shù)據(jù)通信網(wǎng)絡可包括互連的交換機、虛擬交換機、集線器、路由器和配置成當數(shù)據(jù) 通過網(wǎng)絡時處理該數(shù)據(jù)的其它設備。這里,這些設備被稱為"網(wǎng)絡部件"。通過利用一條或多 條通信鏈路在網(wǎng)絡部件之間傳送數(shù)據(jù)分組、信元、幀、片段等,通過數(shù)據(jù)通信網(wǎng)絡傳遞數(shù)據(jù)。 通信鏈路可以是分成多段的,并且可以采用有線、無線、光學等等。在一個例子中,當分組通 過網(wǎng)絡在源和目的地之間傳播時,其可由多個網(wǎng)絡部件處理,并穿過多條通信鏈路的多段。
[0027] 即使源從不同的源接收數(shù)據(jù),或者目的地還把接收的數(shù)據(jù)轉(zhuǎn)發(fā)給網(wǎng)絡上的另一目 的地,源和目的地仍可被視為網(wǎng)絡上的端點。各種端點系統(tǒng)可駐留于網(wǎng)絡上,包括客戶機、 虛擬機("VM")、典型利用諸如web服務器之類的服務器提供各種網(wǎng)絡服務的服務器和系 統(tǒng)、電子郵件服務器、文件服務器等。用戶可以登錄到包括服務器、工作站、個人計算機和移 動通信設備的一個或多個這些端點系統(tǒng)。這里,端點系統(tǒng)連同用戶和駐留于其上的服務一 起將被稱為"網(wǎng)絡實體"。
[0028] 為了便于討論,網(wǎng)絡實體和網(wǎng)絡部件可被共同稱為"網(wǎng)絡組成部分",該術語的單 數(shù)應用可意味一個網(wǎng)絡部件或網(wǎng)絡實體。要認識到,存在其中某些網(wǎng)絡部件可充當網(wǎng)絡實 體,和某些網(wǎng)絡實體可充當網(wǎng)絡部件的特殊情況。例如,網(wǎng)絡交換機可提供容納系統(tǒng)管理的 終端服務,而用戶工作站可充當無線設備的橋接器或網(wǎng)關,轉(zhuǎn)發(fā)網(wǎng)絡數(shù)據(jù)。在這些特殊情況 中,除了另有說明的之外,將被分開且獨立地對待這些設備的不同功能。
[0029] 本發(fā)明的一些實施例包含網(wǎng)絡的操作系統(tǒng)。操作系統(tǒng)向整個網(wǎng)絡提供統(tǒng)一和集中 的編程接口。網(wǎng)絡操作系統(tǒng)能夠?qū)崿F(xiàn)網(wǎng)絡的觀察和控制,盡管網(wǎng)絡操作系統(tǒng)不需要管理網(wǎng) 絡本身。網(wǎng)絡操作系統(tǒng)一般提供在其上能夠建立和/或?qū)崿F(xiàn)應用,以便執(zhí)行網(wǎng)絡管理任務 的編程接口。在本說明中,除非另有說明,否則術語"應用"指的是運行于網(wǎng)絡操作系統(tǒng)上 的程序。
[0030] 按照本發(fā)明的一些方面的網(wǎng)絡操作系統(tǒng)實施與常規(guī)網(wǎng)絡管理系統(tǒng)相反的概念。例 如,網(wǎng)絡操作系統(tǒng)向程序提供集中編程模型,包括邏輯上集中的網(wǎng)絡狀態(tài)的概觀,應用可 被編寫得好像整個網(wǎng)絡存在于單臺機器上。從而,應用能夠利用Dijkstra方法,而不是 Bellman-fore方法計算最短路徑。在另一個例子中,可按照高級抽象,例如包括用戶名和 主機名,而不是低級配置參數(shù),比如IP地址和MAC地址編寫應用。這種抽象允許獨立于底 層網(wǎng)絡拓撲而執(zhí)行管理和安全策略。網(wǎng)絡操作系統(tǒng)在抽象和對應的低級配置之間維護當前 的、準確的映射或綁定。
[0031] 在一些實施例中,網(wǎng)絡操作系統(tǒng)允許把管理應用編寫為關于高級名稱的集中式程 序,與關于低級地址的分布式算法相反。更具體地說,本發(fā)明的一些實施例包含按照允許操 作員使用集中的說明語句(這里稱為"指令")控制網(wǎng)絡和執(zhí)行希望的策略的方式,管理和 保護網(wǎng)絡的系統(tǒng)和方法。代替配置每個單個的網(wǎng)絡組件,通過確保受網(wǎng)絡操作系統(tǒng)控制的 網(wǎng)絡組件實現(xiàn)希望的行為,網(wǎng)絡操作員可以僅僅創(chuàng)建系統(tǒng)將執(zhí)行的一個或多個網(wǎng)絡范圍的 指令。
[0032] 本發(fā)明的一些實施例提供通用編程接口。這允許網(wǎng)絡操作員利用諸如C++和 Python之類的高級語言指定指令。在一些實施例中,提供解決與安全、管理、網(wǎng)絡控制、縮放 和向后兼容、自動配置、虛擬環(huán)境、帶內(nèi)控制、歷史和爭論、路由、分組截取和拒絕服務保護 相關的問題的系統(tǒng)和方法。
[0033] 本發(fā)明的一些實施例定義和包含這里稱為"Ν0Χ"的網(wǎng)絡操作系統(tǒng)。Ν0Χ使網(wǎng)絡操 作員能夠觀察和控制數(shù)據(jù)通信網(wǎng)絡,包括某些網(wǎng)絡部件和網(wǎng)絡實體。Ν0Χ典型地維護整個 網(wǎng)絡的當前概觀(view),包括當前拓撲、當前提供的服務、和主機、服務及經(jīng)鑒別的用戶的 當前位置。提供的服務可包括標準定義的服務,比如HTTP和NFS,還可包括Ν0Χ已知或者 Ν0Χ能夠表征的專門服務。通過提供其中管理應用能夠訪問Ν0Χ所維護的網(wǎng)絡概觀的運行 環(huán)境,Ν0Χ可便利網(wǎng)絡的控制。管理應用包括監(jiān)視和控制至少一部分數(shù)據(jù)通信網(wǎng)絡的組件, 這里所述一部分可由一個或多個域、一種或多種網(wǎng)絡部件、在特定的管理控制和/或物理 區(qū)域下的一個或多個組件限定。管理應用可以向Ν0Χ注冊,以便接收網(wǎng)絡事件的通知,和便 利網(wǎng)絡組件的管理。
[0034] 對于下面的例子來說,"網(wǎng)絡"可被視為表示由諸如以太網(wǎng)、ATM之類的第2層網(wǎng) 絡,例如采用網(wǎng)際協(xié)議("IP")和/或其它適當?shù)倪B網(wǎng)技術的第3層網(wǎng)絡所互連的一組交 換機、路由器、防火墻、代理服務器和其它網(wǎng)絡部件。網(wǎng)絡部件之間的鏈路本質(zhì)上可以是局 域的或者廣域的,和/或它們的任意組合。用戶和實體,比如主機、服務器和其它設備可以 與該網(wǎng)絡連接,并且可被認為駐留于網(wǎng)絡上。與具體的網(wǎng)絡體系結(jié)構(gòu),網(wǎng)絡實體的同質(zhì)性、 異質(zhì)性、組件部分和配置無關,可以部署基于Ν0Χ的系統(tǒng)來監(jiān)視和控制網(wǎng)絡。
[0035] 對于下面的例子來說,"流"被理解為一系列的分組或者共有公共特性的其它網(wǎng)絡 傳輸單元。一般來說,這種公共特性可由網(wǎng)絡部件檢測,并用于對每個分組應用類似的行 為。例如,流可包含具有相同的分組報頭,或者共有分組報頭的某些指定部分的一系列分 組。
[0036] 現(xiàn)在參見圖la和lb。圖la描述可控制的網(wǎng)絡部件("CNE")和網(wǎng)絡管理器的存 在。圖lb描述網(wǎng)絡的一個例子,該例子具有用線表示的鏈路,并且示出各種"CNE"、托管網(wǎng) 絡控制器的設備的三個實例16a_c、包含網(wǎng)絡歷史的設備的兩個實例18a和18b,和維護網(wǎng) 絡概觀的一個設備17。在一些實施例中,系統(tǒng)包括網(wǎng)絡管理器10和一個或多個可控制的 網(wǎng)絡部件12a-12h和12i-12p,所述一個或多個可控制的網(wǎng)絡部件12a-12h和12i-12p包 括交換機和/或其它網(wǎng)絡部件。特別參考圖la,網(wǎng)絡管理器10包括多個邏輯組件,包括網(wǎng) 絡控制器、網(wǎng)絡概觀數(shù)據(jù)庫和網(wǎng)絡歷史數(shù)據(jù)庫。這些邏輯組件可以托管在與網(wǎng)絡連接的服 務器或者與網(wǎng)絡連接的其它設備上。從而,描述成分布式實體的網(wǎng)絡管理器10能夠駐留在 專用處理設備上,或者跨諸如Linux服務器、UNIX服務器、Windows服務器之類的多個處理 設備而分布。此外,網(wǎng)絡管理器10可聚集由網(wǎng)絡部件12a-12h收集和/或處理的信息。不 論是駐留在公共服務器上還是駐留在不同的服務器上,一個或多個網(wǎng)絡控制器可以各自執(zhí) 行N0X的實例和一組管理應用。N0X典型地提供編程接口,而管理應用提供高級網(wǎng)絡管理能 力。
[0037] 在圖la中,用云的形式描述網(wǎng)絡管理器10,表示它的可能的分布特性,其它網(wǎng)絡 部件(圖中未示出)之間的連接可以是任意的。圖lb表示網(wǎng)絡部件之間的互連,以及網(wǎng)絡 管理器的各個組件,包括控制器16a-16c、網(wǎng)絡概觀17和歷史18a-18b的布置的更具體例 子。如圖lb中所示,網(wǎng)絡管理器的各個組件可以在不同的地方與網(wǎng)絡連接,并且根據(jù)網(wǎng)絡 配置和網(wǎng)絡管理器的組件的布置,能夠直接與網(wǎng)絡部件12i-12p中的一些通信,并且可以 與網(wǎng)絡部件12i-12p中的一些只進行間接通信。例如,網(wǎng)絡管理器可以設置在單一服務器 中,或者設置在位于整個網(wǎng)絡內(nèi)的幾個服務器中。這些服務器還可支持其它服務、應用,并 且用戶可登錄到它們上。這些服務器還可起網(wǎng)絡部件的作用(例如,通過充當交換機)。在 控制器功能與其它網(wǎng)絡部件存在于相同服務器上的例子中,通過利用例如公共總線、公共 存儲器、進程間通道和其它通信方案,網(wǎng)絡管理器可在沒有網(wǎng)絡的情況下與網(wǎng)絡部件通信。 從而,圖lb中描述的連接應被當作包含任意形式的通信和控制。
[0038] 另外參見圖2,在一些實施例中,網(wǎng)絡管理器10維護描述網(wǎng)絡的當前狀態(tài)的網(wǎng)絡 概觀22。網(wǎng)絡狀態(tài)包含描述當前網(wǎng)絡拓撲、識別為駐留于網(wǎng)絡上的主機、用戶和網(wǎng)絡服務的 當前位置的信息??砂凑崭呒壝Q,包括用戶、主機、服務等的名稱,和低級地址,包括主機、 網(wǎng)絡部件等的地址的低級地址之間的綁定記錄當前狀態(tài)。典型地,可得到單一邏輯版本的 網(wǎng)絡概觀,不過所述概觀的副本或其多個部分可被維護和存儲在一個或多個與網(wǎng)絡連接的 服務器或者其它網(wǎng)絡設備上。
[0039] 在一些實施例中,網(wǎng)絡歷史24維護過去網(wǎng)絡狀態(tài)的全面記錄,包括拓撲、實體的 位置等。網(wǎng)絡歷史24使操作員能夠重新創(chuàng)建以前某些指定時刻的網(wǎng)絡狀態(tài)??衫妙A定 的查詢語言查詢網(wǎng)絡歷史24。一般來說,維護單一邏輯版本的網(wǎng)絡歷史24,不過網(wǎng)絡歷史 24可被包含在一個或多個連接網(wǎng)絡的服務器或者其它網(wǎng)絡設備中。對網(wǎng)絡概觀和歷史的分 析可被用于產(chǎn)生網(wǎng)絡報警。這些報警可以補充或替代網(wǎng)絡部件的事件檢測功能。例如,連 續(xù)網(wǎng)絡狀態(tài)的檢查可識別連接的丟失,使網(wǎng)絡管理器10和/或利用網(wǎng)絡操作系統(tǒng)101的應 用能夠生成策略驅(qū)動的報警。
[0040] 在一些實施例中,可控制的交換機和其它網(wǎng)絡部件可由網(wǎng)絡管理器10控制。在 一個例子中,這些交換機實現(xiàn)和支持OpenFlow接口,從而交換機由具有采取下述形式:(報 頭:計數(shù)器,動作)的條目的流表格表示。不過,本發(fā)明并不局限于這種OpenFlow例子,根 據(jù)當前例子的教導,本領域的技術人員會認識到其它備選方案。指定的報頭字段可以是完 全定義的,并且只選擇與完整報頭匹配的分組。作為替代地,流條目的報頭規(guī)范可包含通配 符值或者"ANY"以提供與流的TCAM類匹配。這種情況下,根據(jù)與報頭的子集的匹配,分組 可被分配給流。在一些實施例中,報頭不必對應于報頭的傳統(tǒng)概念,而是可被定義為輸入分 組中的任意一組比特。只有共享指定的一組比特的分組被認為與指定報頭匹配。對于所處 理的與所識別報頭匹配的每個分組,可以更新對應的計數(shù)器,并且能夠發(fā)起一個或多個指 定的動作。分組能夠與多個流報頭匹配,并且可按照預先配置的規(guī)則被分配給流。在一個 例子中,一種配置可規(guī)定:匹配多個流報頭條目的分組被分配給優(yōu)先權最高的流條目。
[0041] 就OpenFlow來說,目前支持的動作可包括默認轉(zhuǎn)發(fā)、轉(zhuǎn)發(fā)出指定的接口、拒絕、 轉(zhuǎn)發(fā)給網(wǎng)絡控制器,和修改各種分組報頭字段,其中待修改的分組報頭字段可包括VLAN 標記、源和目的地IP地址和端口號。在一個例子中,"默認轉(zhuǎn)發(fā)"動作使交換機有效地 忽略Ν0Χ,因為分組被轉(zhuǎn)發(fā),就好像交換機正在利用其傳統(tǒng)軟件轉(zhuǎn)發(fā)分組??梢灾С峙c OpenFlow規(guī)范一致的其它動作和功能(參見可在http://www. openflowswitch. org/獲得 的OpenFlow文檔和源代碼)。一些實施例可實現(xiàn)交換機行為的其它抽象,并且這些可支持 不同的一組動作。這些其它動作可包括網(wǎng)絡地址轉(zhuǎn)換、加密、封裝、有狀態(tài)的隧穿,和各種形 式的服務質(zhì)量("QoS")。另外,計數(shù)器和動作可被預先定義和/或由用戶和網(wǎng)絡管理應用 配置。諸如OpenFlow交換機抽象之類的抽象可允許管理應用插入流表格條目、刪除流表格 條目、管理流表格條目的優(yōu)先級,和讀取流表格計數(shù)器??稍趹脝訒r,或者響應網(wǎng)絡事 件而設置這些條目。網(wǎng)絡部件的OpenFlow和類似抽象還可提供一組消息,該組消息允許控 制器和部件之間更寬范圍通信。這種消息的例子是:交換機加入、交換機離開、收到分組和 交換機統(tǒng)計信息。
[0042] 下面將討論Ν0Χ控制的數(shù)據(jù)通信網(wǎng)絡的某些操作。下面更詳細討論的圖6描述對 于輸入的分組可發(fā)生的處理的一個例子。在一些實施例中,Ν0Χ控制的網(wǎng)絡部件遇到的分 組或者其它數(shù)據(jù)單元可被分析和歸類。分組可由任何與網(wǎng)絡連接的設備生成,并且當分組 到達Ν0Χ控制的網(wǎng)絡部件時,檢查該分組的分組報頭或者其它屬性,以確定該分組應被分 配給的流。例如,如果輸入的分組的報頭與交換機的流的條目之一中的指定字段匹配,那么 交換機可把該分組分配給該流,并可更新適當?shù)挠嫈?shù)器和應用對應的動作。不過,如果該 分組不匹配流條目,那么該分組通常被轉(zhuǎn)發(fā)給網(wǎng)絡控制器,網(wǎng)絡控制器可檢查該分組,并決 定如何處理該分組和/或?qū)谠摲纸M的流。該決定是根據(jù)網(wǎng)絡概觀中的信息、預先定義 的規(guī)則和策略指示做出的。例如,流處理決策可導致一個或多個動作,包括使交換機和/或 控制器丟棄該分組、通過在沿著到分組目的地的路徑的每個交換機中插入流條目來建立路 徑,和在不設置流條目的情況下把該分組轉(zhuǎn)發(fā)給目的地的動作。
[0043] 在一些情況下,不與現(xiàn)有流條目匹配的分組是流的第一分組("流起始分組"),并 且后續(xù)分組可預期與響應流起始分組而創(chuàng)建的流條目匹配。在一些實施例中,控制器可不 響應流起始而插入任何流條目,并且從而,控制器將繼續(xù)接收該流中的所有分組。在一個例 子中,可以進行這種操作,從而控制器能夠看到所有DNS業(yè)務。在一些實施例中,系統(tǒng)可被 配置成根據(jù)分組確定流信息,并在收到第一分組的一部分之后,或者在收到多于第一分組 的分組之后,插入流條目。在一些實施例中,管理應用決定處理各個流的方法。可通過Ν0Χ 編程接口傳送控制決策。
[0044] 繼續(xù)參考圖2,一些實施例包含向應用20提供各種服務的編程接口。編程接口可 向應用提供對網(wǎng)絡概觀22和歷史概觀24的訪問。通常,應用20可查詢網(wǎng)絡概觀22,利用 響應中的信息來確定要采取的動作和/或要采取的動作的程度。編程接口可向應用提供與 網(wǎng)絡事件相關的報警。在一個例子中,應用可登記通知服務,以便被通知某些網(wǎng)絡事件。編 程接口可使應用20能夠控制網(wǎng)絡部件。例如,應用可使用諸如OpenFlow之類的控制接口 修改網(wǎng)絡部件的行為。
[0045] 一些實施例監(jiān)視和報告不同類別的網(wǎng)絡事件。所述類別可包括反映網(wǎng)絡概觀中的 變化的事件,比如新主機的插入、新用戶的鑒別和網(wǎng)絡拓撲的改變、反映流起始和其它分組 到達控制器的事件、直接由諸如交換機加入、交換機離開、收到分組和收到交換機統(tǒng)計信息 之類OpenFlow消息產(chǎn)生的事件,和作為處理其它低級事件的結(jié)果,由Ν0Χ應用產(chǎn)生的事件, 和/或其它應用產(chǎn)生的事件。例如,當檢測了主機時,設計用來檢測"掃描主機"的管理應 用可產(chǎn)生事件。這種掃描應用又依賴于低級事件(比如流起始)來檢測掃描器。
[0046] 在一些實施例中,Ν0Χ應用使用一組注冊的處理程序,所述一組處理程序被配置成 當發(fā)生某些識別的事件或者某些類型的事件時被執(zhí)行。事件處理程序一般是按照在處理程 序注冊期間指定的優(yōu)先級的順序執(zhí)行的。處理程序可向Ν0Χ返回一個值,該值指示與該事 件相關的處理程序的執(zhí)行是否應被暫停,或者事件的處理是否應被傳給下一個注冊的處理 程序。在一些實施例中,處理事件的應用可以采取一個或多個動作,包括更新網(wǎng)絡概觀22, 把流條目插入一個或多個網(wǎng)絡部件中,和產(chǎn)生另外的網(wǎng)絡事件。
[0047] Ν0Χ核心最好包括其上建立其它組件的基本軟件基礎架構(gòu)。在一個例子中,Ν0Χ核 心可提供異步通信套件(harness)、事件套件、協(xié)作線程庫、組件體系架構(gòu),和提供網(wǎng)絡應用 所共有的功能的一組內(nèi)置系統(tǒng)庫。圖3提供一個實施例中的一些Ν0Χ核心組件的高級示圖。 I/O套件310提供對系統(tǒng)輸入和輸出("I/O")功能300、302和304的異步接口,系統(tǒng)輸入 和輸出("I/O")功能300、302和304包括管理與網(wǎng)絡交換機的連接的功能、處理與文件系 統(tǒng)的通信的功能,和提供支持普通網(wǎng)絡服務的套接字接口的功能,比如管理web服務器。
[0048] 事件套件320包括管理系統(tǒng)事件的產(chǎn)生和分發(fā)的組件。系統(tǒng)事件可以包括網(wǎng)絡級 事件,比如交換機插入網(wǎng)絡中,或者新流的到達,以及由應用20創(chuàng)建的事件,比如由檢測掃 描主機的應用20創(chuàng)建的"檢測到掃描"事件。
[0049] 協(xié)作線程庫320為管理執(zhí)行的并發(fā)線程提供便利接口。一般在獨立的線程語境中 執(zhí)行每個I/O事件。這允許應用跨通信邊界提供線性程序流,同時避免與阻塞I/O相關的 性能損失。在該例子中,Ν0Χ核心101支持完全異步的通信模式,其中通過登記與特定事件 對應的回叫,應用20指定對該事件的興趣。應用20可使用協(xié)作線程和回叫。
[0050] 協(xié)作線程320、事件套件322和I/O基礎架構(gòu)組件300、302和304優(yōu)選地為核心 應用編程接口( "API")330提供基礎,所述核心應用編程接口( "API")330可暴露給應用 20。這些組件提供揭示和解析應用之間的依從關系的方法,對應用20的動態(tài)加載的支持, 和與核心API的接口。
[0051] 在一些實施例中,Ν0Χ核心101還可包含提供網(wǎng)絡應用20所共有的功能性的一小 組應用。這些功能可包括分組分類350、語言綁定356、定位352、路由354和拓撲發(fā)現(xiàn)360。 分組分類350提供類屬的接口,其中應用20可指定它們對哪種分組感興趣;分類器則確保 應用20只接收這些分組。編程語言綁定356允許用不同的編程語言編寫應用。在所描述 的例子中,當核心Ν0Χ 101是用一種不同的語言,比如C++實現(xiàn)時,python編程語言綁定允 許用Python語言開發(fā)應用。編程語言綁定356允許功能性的快速原型開發(fā),和性能非關鍵 的功能性的高級實現(xiàn)。編程語言綁定356的其它例子包括對Java和Ruby的綁定。
[0052] 定位器應用352包含用于確定何時新的主機加入或離開網(wǎng)絡的邏輯和數(shù)據(jù)。在一 些實施例中,定位器應用352向網(wǎng)絡概觀22提供數(shù)據(jù)。定位器應用352 -般跟蹤與主機相 關的網(wǎng)絡狀態(tài),包括主機在網(wǎng)絡上的位置,這通常由所述主機連接的物理端口來確定,和分 配給主機的地址。該信息可被用于生成主機加入/離開事件,還可被路由應用用于確定將 在網(wǎng)絡中建立的流的源和目的地的物理位置,以及修改流所經(jīng)歷的網(wǎng)絡部件的轉(zhuǎn)發(fā)行為。
[0053] 通過多個網(wǎng)絡控制器各自的貢獻,可構(gòu)成網(wǎng)絡概觀22。定位器應用352、拓撲發(fā)現(xiàn) 應用360和控制器的其它組件一般可修改網(wǎng)絡概觀22。在一個例子中,通過由控制器插入 它們知道或者"看到"的多件網(wǎng)絡概觀22來構(gòu)成復合概觀,并且所得到的當前復合網(wǎng)絡概 觀22隨后可與所有控制器共享。在一些實施例中,使復合網(wǎng)絡概觀22保持緩存在每個控 制器上,并且當存在復合網(wǎng)絡概觀22的更新時,更新復合網(wǎng)絡概觀22??刂破魃系木彺婵?由例如路由應用維護。復合概觀22不必被保存在單一服務器上,它可容易地保存在分散在 多個服務器的分布式散列表("DHT")中,所述多個服務器也可用作一個或多個控制器的主 機。
[0054] 路由應用354最好計算網(wǎng)絡上的可用和/或活動路徑??衫卯旀溌纷兓瘯r遞增 地更新的"動態(tài)所有點對最短路徑"算法計算路徑??勺们槭褂闷渌窂接嬎惴椒ā.斂?制器收到需要路由的流時,控制器可例如根據(jù)由分組和/或流標識的源和目的地媒體訪問 控制("MAC")地址所連接的物理端口,確定或選擇路線。路由應用354還可接受對路徑 的多個約束,例如包括流必須經(jīng)過的一個或多個中間節(jié)點的標識。在一個例子中,可利用多 跳Djikstra算法按需計算路徑。路由應用354還可利用標準技術計算多路徑和組播路徑。 作為約束,多個路徑的計算可包括不相交性(disjointness)的改變程度,以致能夠控制路 徑之間的重疊度。在計算了數(shù)據(jù)流的路徑之后,路由應用可產(chǎn)生一個或多個網(wǎng)絡部件的轉(zhuǎn) 發(fā)行為的改變,以便實現(xiàn)計算出的路徑。
[0055] 拓撲發(fā)現(xiàn)應用360能夠使用LLDP分組來檢測節(jié)點和鏈路級網(wǎng)絡拓撲。通過從每 個交換機端口發(fā)送唯一的LLDP分組,并在收到這種分組時確定所連接的端口,可完成所述 檢測。該信息一般被存儲在控制器內(nèi)部,并且可被多個Ν0Χ組件,包括路由組件使用。拓撲 發(fā)現(xiàn)可在控制器處進行,或者可在交換機處實現(xiàn)。
[0056] -些實施例支持目錄整合。參見圖4, Ν0Χ可通過目錄管理器組件420,提供與一 個或多個本地或遠程目錄服務430、432、434和436的抽象化接口。諸如LDAP432或AD430 之類的目錄服務包含關于網(wǎng)絡資源的信息,包括用戶名、主機名、組名和服務名稱。另外,目 錄服務430、432、434和436通常起"鑒別倉庫"的作用,維護向網(wǎng)絡鑒別用戶、主機或交換 機所需的憑證。
[0057] 在一些實施例中,目錄可被用于鑒別用戶、交換機和主機,還可用于提供涉及用 戶、交換機和主機的特性的相關元數(shù)據(jù)。例如,目錄可保存與用戶和/或主機所屬于的組有 關的信息。按照本發(fā)明的一些方面,應用400、402、404可被編寫成與目錄管理器420接口, 并且通過構(gòu)建插入目錄管理器基礎架構(gòu)中的目錄專用的后端,可以增加新目錄。一般來說, 新目錄的增加不需要對應用的任何改變??稍谶\行Ν0Χ的相同設備上保存和操作目錄,并 且也可在其它網(wǎng)絡設備上保存和操作目錄。
[0058] 在一些實施例中,Ν0Χ目錄管理器420能夠向多個目錄暴露接口。這些接口可包括 進行如下操作的接口:訪問鑒別時接收的用戶/主機/交換機憑證、根據(jù)交換機鑒別信息確 定交換機名稱、根據(jù)交換機和端口號確定端口名稱、確定與用戶相關的主機、交換機和/或 位直、確定與王機相關的已知MAC和IP地址、確定王機的功能,例如,王機是充當網(wǎng)關還是 路由器、確定用戶和主機之間的關聯(lián),以及在一個或多個目錄中增加/刪除/修改條目。
[0059] 在一些實施例中,Ν0Χ包含處理準許控制策略和訪問控制策略的策略引擎。準許 控制策略確定用戶、主機或交換機為加入網(wǎng)絡而需要的鑒別。訪問控制策略確定哪些流被 允許使用網(wǎng)絡,和這種使用的約束。圖5描述與Ν0Χ的核心組件集成的策略控制的一個例 子。一般來說,策略控制依賴于其它Ν0Χ應用以進行拓撲發(fā)現(xiàn)、路由、鑒別和流建立。可在 可被編譯成低級查找樹的一個或多個文件中宣布策略??捎脤S玫牟呗哉Z言,比如基于流 的安全語言("FSL")表述策略。編譯過程一般檢查所有可用的鑒別倉庫,以核實在策略文 件中使用的主體名稱的存在。
[0060] 在一些實施例中,首先在502用相關的名稱和組標記Ν0Χ接收的分組500 (包括由 不存在已有交換機條目的交換機轉(zhuǎn)發(fā)給控制器的分組)。在主體鑒別時能夠獲得名稱和地 址之間的綁定信息,并且該綁定信息可被存儲在定位器組件中。如果對該分組來說不存在 綁定信息,那么認為主機和用戶未被鑒別。策略引擎可允許宣布覆蓋未經(jīng)鑒別的主機和用 戶的規(guī)則。
[0061] 策略查找樹可確定網(wǎng)絡應如何處理標記的分組。在一些實施例中,策略查找提供 可應用于流的約束,并且所述約束可被傳給路由組件,以找出符合策略的路徑。如果對給定 的策略約束不存在任何路徑,那么該分組一般被丟棄。約束的一個例子是拒絕整個流,這會 產(chǎn)生一個或多個丟棄的分組。
[0062] 查找樹還允許使用定制的編程函數(shù)或Java小程序作為應用于輸入分組的動作。 這樣的函數(shù)可由程序員或者代碼生成器用任何希望的編程語言,例如包括C++和Python創(chuàng) 建。這些定制的編程函數(shù)可被用于各種用途:例如,可以開發(fā)一些函數(shù)來擴充鑒別策略。在 一個例子中,規(guī)則可規(guī)定在被允許進入網(wǎng)絡之前,要求借助802. lx鑒別來自指定接入點的 所有未經(jīng)鑒別的主機。本發(fā)明的一些實施例支持多種不同的鑒別方案,包括基于MAC的主 機鑒別、802. lx主機鑒別,和借助重定向到被控制的網(wǎng)絡門戶的用戶鑒別。
[0063] 通過一個例子的應用,可最好地認識在一些實施例中實現(xiàn)的策略控制的使用。在 該例子中,單向流("uniflow")用八元組表征:
[0064] 〈usrc,hsrc,asrc,utgt,htgt,atgt,prot,request〉,其中
[0065] usrc、utgt分別是源用戶和目標用戶,
[0066] hsrc、htgt分別是源主機和目標主機,
[0067] asrc、atgt分別是源接入點和目標接入點,
[0068] prot是協(xié)議,并且
[0069] request指示一個流是否是對之前的流的響應。
[0070] Uniflow構(gòu)成訪問控制決策器的輸入。Ν0Χ的安全策略使每個可能的uniflow與 一組約束相聯(lián)系,并且對本例的目的來說,可以允許、拒絕uniflow、可以要求uniflow采用 通過網(wǎng)絡的包括規(guī)定主機的路由(使該uniflow "按照所指的路行進"),禁止通過某些規(guī) 定主機("路點")并且速率受到限制。
[0071] 可圍繞意圖使必須按流檢查的規(guī)則的數(shù)目最小化的決策樹構(gòu)建策略評估引擎。決 策樹可根據(jù)八個uniflow字段和一批組劃分規(guī)則,產(chǎn)生10維空間中的規(guī)則集的緊湊表示。 否定文法(negative literals)可被索引器忽略,并在運行時評估。對于由決策樹中的每 個節(jié)點代表的維度的每個可能值,該節(jié)點一般具有一個子節(jié)點。例如,對于子樹的策略規(guī)則 中將usrc約束于的每個值,代表usrc的節(jié)點能夠具有一個子節(jié)點。另外,每個節(jié)點可包 括"ANY"子節(jié)點,用于提供其中子樹的規(guī)則不約束由節(jié)點代表的維度的規(guī)則。可利用具有 鏈鎖的散列表實現(xiàn)決策樹中的每個節(jié)點,以確保在幾乎恒定的時間內(nèi)能夠找到其每個子節(jié) 點。關于10種屬性中的哪一個歸因于樹中任意點上的分支的決策可以以找出最廣泛地分 割子樹的規(guī)則集的維度為基礎。例如,可以選擇一個維度,以使在每個子節(jié)點的規(guī)則的平均 數(shù)加上子樹中的ANY規(guī)則的數(shù)目最小化。
[0072] 在一些實施例中,可在鑒別期間計算組成員。G(s)可被用于表示uniflow的源所 屬于的所有組,并且G(t)可被用于表示uniflow的目標所屬于的所有組。為了找出與任意 指定uniflow有關的所有規(guī)則,可以修改普通的決策樹算法,以致在任意指定節(jié)點處可以 跟隨多個分支。在一個例子中,總是沿ANY分支前進,并且對于分離源組和目標組的分支, 追蹤屬于uniflow的G(s)和G(t)的所有子節(jié)點。
[0073] 圖6描述Ν0Χ內(nèi)主機鑒別的控制流程的一個例子,并且圖解說明當鑒別主機時, 這些結(jié)構(gòu)組件是如何一起工作的。在步驟600, Ν0Χ從交換機接收分組和packet-in消息, packet-in消息指示接收該分組的交換機和交換機端口。在步驟602,定位器組件使用輸入 端口、MAC地址和IP地址來確定該主機是否已被鑒別。在步驟603,如果該主機已被鑒別, 那么定位器查找和增加該主機的高級名稱和組名稱。不過,如果該主機未被鑒別,那么在步 驟604,定位器使用主機名"未經(jīng)鑒別的"。
[0074] 在步驟606,定位器組件把流和相關的名稱傳送給策略查找組件。在步驟608,維 護編譯的網(wǎng)絡策略的策略查找組件根據(jù)網(wǎng)絡地址和高級名稱規(guī)定應如何處理該分組。策略 規(guī)定應使用哪種鑒別機制609,并且來自未經(jīng)鑒別的主機的分組被傳給所指示的子系統(tǒng)。例 如,可以傳送分組以進行802. lx鑒別,或者檢查已登記的MAC。在一些實施例中,鑒別子系 統(tǒng)負責進行協(xié)議特定的鑒別交換。一旦主機已被成功鑒別,則鑒別子系統(tǒng)就把與主機相關 的地址標記為已鑒別。來自該主機的所有后續(xù)分組將用與該主機相關的名稱和組來標記。 在步驟610,策略規(guī)定應用于來自經(jīng)鑒別主機的分組的約束。如果允許該流,那么分組被傳 送給路由組件(步驟611),路由組件將確定符合策略的路線,并在網(wǎng)絡中建立該路線。否則 在步驟612丟棄該分組。
[0075] 當編寫和執(zhí)行策略規(guī)則時,用戶一般把策略編寫為一批規(guī)則,并編譯該策略。編譯 器可檢查語法,并核實主體名稱存在于所配置的目錄之一中。編譯器把策略規(guī)則編譯成低 級內(nèi)部格式。編譯可包括標準化和規(guī)則擴展,由此,例如,"0R"被擴展為多個規(guī)則。編譯器 可把編譯的策略保存在永久存儲器中,并把整個策略構(gòu)建成查找樹。
[0076] -些實施例提供用于帶內(nèi)控制和控制器發(fā)現(xiàn)的系統(tǒng)和方法。通過共享和數(shù)據(jù)業(yè)務 一樣的傳輸介質(zhì),帶內(nèi)控制系統(tǒng)在交換機和控制器之間傳送控制業(yè)務。通過消除對獨立控 制網(wǎng)絡的需要,帶內(nèi)控制的使用能夠簡化物理網(wǎng)絡設置和配置。交換機和控制器可被配置 和/或修改,以支持帶內(nèi)控制使用的一些功能。一般來說,為交換機提供能力以在無控制器 幫助的情況下,找出和建立到控制器的連接。交換機必須能夠區(qū)分控制業(yè)務和數(shù)據(jù)業(yè)務,以 便避免通信環(huán)路。另外,策略系統(tǒng)必須被配置成允許帶內(nèi)通信操作和通信。
[0077] 在一些實施例中,交換機能夠在沒有控制器特有狀態(tài)的先驗知識的情況下自動發(fā) 現(xiàn)控制器。例如,交換機可自動檢測控制器,并在與網(wǎng)絡的連接上建立與控制器的安全通 道。在特別注意安全的應用中,可通過受信任的路徑連接交換機,以便保護初始SSL連接。
[0078] 默認地,只有當交換機建立了與控制器的連接時,交換機才轉(zhuǎn)發(fā)發(fā)現(xiàn)分組。啟動 時,交換機可從所有端口發(fā)出DHCP請求,以便搜索控制器。交換機假設控制器將在它收到 DHCP答復的端口上。DHCP答復將包括交換機的IP地址,和控制器正在偵聽的IP地址和端 口號。交換機隨后可在接收DHCP的端口之外建立與控制器的控制連接。一般來說,交換機 不會把來自其它交換機的控制業(yè)務轉(zhuǎn)發(fā)全控制器。通過確定控制業(yè)務正被發(fā)送給已知控制 器或者發(fā)送自已知控制器,檢測控制業(yè)務。
[0079] 在一些實施例中,Ν0Χ能夠利用基于標準的協(xié)議,比如OpenFlow,控制比如交換機 的網(wǎng)絡部件。在OpenFlow抽象中,交換機由流表表示,其中每個條目包含報頭和將對匹配 分組執(zhí)行的動作。在按照本發(fā)明的一些方面構(gòu)成的系統(tǒng)中,可支持和增強OpenFlow和其它 這樣的協(xié)議。
[0080] 傳統(tǒng)的網(wǎng)絡交換機通常采用低功率CPU用于管理任務,和進行線速交換的諸如片 上交換機("SoC")之類專用硬件。許多SoC具有ACL的內(nèi)置支持,以便實現(xiàn)防火墻。這些 ACL -般支持在層2-4的匹配,并且還可支持通配字段。SoC被設計成支持線速處理,因為 管理CPU不能接收經(jīng)過交換機的每個分組,不過管理CPU通常能夠配置遠程SoC上的ACL。 SoC上的ACL -般支持與OpenFlow的接口非常類似的<header:action>接口。對于每個 ACL條目,必須指定所要求的匹配字段和希望的動作集。ACL實現(xiàn)一般還允許嚴格排序的定 義,其中相對于分組執(zhí)行分組匹配和與第一匹配條目相關的動作。
[0081] 大多數(shù)SoC支持許多動作,包括丟棄分組、發(fā)送給管理CPU,和通過一個或多個物 理端口轉(zhuǎn)發(fā)。在一些平臺上,ACL動作支持遞增與條目相關的計數(shù)器和修改分組報頭。通 常,交換機配置有匹配未能與較高優(yōu)先級規(guī)則匹配的任何分組的最低優(yōu)先級規(guī)則。對典型 的防火墻來說,動作或者使分組被丟棄(默認拒絕),或者使分組通過(默認允許)。
[0082] 管理CPU可以查閱由Ν0Χ配置的本地軟件表。如果沒有找到任何匹配項,那么分組 可被轉(zhuǎn)發(fā)給控制器。通過利用諸如OpenFlow之類的協(xié)議,Ν0Χ能夠發(fā)送命令以增加或刪除 流條目。交換機管理CPU能夠被編程,以利用SoC所支持的ACL的功能,并且能夠根據(jù)SoC ACL的靈活性和功能來配置SoC ACL表。管理CPU可根據(jù)需要配置ACL表,以處理Ν0Χ請 求,只要在流中存在足夠的空間。
[0083] 管理軟件一般被配置成知道可能影響網(wǎng)絡工作的多個因素和問題。管理處理器確 保在優(yōu)先級較低的流條目之前,發(fā)現(xiàn)和處理具有較高的匹配優(yōu)先級的流條目,并據(jù)此重新 配置ACL表中的條目的排列。如果由Ν0Χ請求的條目的數(shù)目超過ACL表中的可用空間,那么 處理器可把過多或額外的條目保存在它自己的軟件表中。本地處理器表的使用可要求小心 地向ACL分配存儲空間,并且在一些情況下,要求調(diào)整流條目區(qū)分優(yōu)先級功能。ACL表中的 匹配條目將不會被發(fā)送給管理CPU,并且從而不會在軟件表中找到匹配項。于是,管理軟件 可被配置有把條目放入處理器軟件表中,以避免負面影響這種流的性能的規(guī)則。此外,在交 換機硬件包含兩個或更多的SoC的情況下,管理軟件可在交換機中的兩個位置中設置ACL, 以允許分組在輸入芯片和輸出芯片之間傳播。
[0084] 盡管傳統(tǒng)的ACL -般沒有過期的概念,不過由Ν0Χ插入的流條目一般配有過期機 制。為了在ACL中支持這種差異,運行于管理CPU上的軟件可被配置成跟蹤ACL條目是否 繼續(xù)與業(yè)務匹配。除了由NOX配置的其它轉(zhuǎn)發(fā)和丟棄動作之外,通過配置遞增與條目相關 的計數(shù)器的動作,可完成這種跟蹤。軟件隨后可輪詢ACL計數(shù)器,并且檢查自從最后的輪詢 間隔以來,任何分組是否匹配了該條目。如果就該條目來說,持續(xù)預定一段空閑時間沒有觀 察到任何匹配分組,那么可從ACL表中刪除該條目。
[0085] 按照本發(fā)明的一些方面構(gòu)成的系統(tǒng)表現(xiàn)出一些性質(zhì),所述一些性質(zhì)可包括全面控 制、縮放、向后兼容、自動配置和虛擬環(huán)境。
[0086] 就全面控制性質(zhì)來說,圖7示出了能夠規(guī)定分組通過網(wǎng)絡的路徑的流條目,并且 具體描述了具有報頭Η的分組的路徑,其中該路徑由一組流條目規(guī)定。一些實施例包含完 全控制處理網(wǎng)絡中的流的方法的系統(tǒng)。這些系統(tǒng)可通過各種動作行使控制,所述各種動作 包括向流拒絕服務、丟棄流中的一些或全部分組、通過在網(wǎng)絡部件中插入適當?shù)牧鳁l目來 選擇通過網(wǎng)絡的路徑、利用流條目實現(xiàn)選擇的服務質(zhì)量("QoS"),使網(wǎng)絡部件進行各種按 分組進行的操作,比如加密、封裝、地址轉(zhuǎn)換、速率限制和有狀態(tài)的隧穿,并且通過挑選通向 提供所需服務的網(wǎng)絡部件,比如能夠進行深度分組檢查或數(shù)據(jù)記錄的部件的路徑,插入屬 于該路徑的服務。后者這種控制選項證明系統(tǒng)不受用于控制或監(jiān)視網(wǎng)絡設備的任何抽象的 限制所約束,因為插入服務的能力允許系統(tǒng)進行該抽象中目前不支持的動作。
[0087] 在一些實施例中,管理決策可基于各種因素,包括:源和/或目的地用戶身份、角 色、位置、組成員資格和其它屬性;源/目的地主機身份、角色、位置、組成員資格和其它屬 性;本地和/或全球網(wǎng)絡條件,包括各種網(wǎng)絡事件和/或其它管理應用的通知;以及日期和 時間??稍诹鞯闹虚g修改管理決策。例如,如果網(wǎng)絡條件改變,或者檢測到某一其它網(wǎng)絡事 件,那么流能夠被重新路由和/或經(jīng)歷深度分組檢查服務的額外詳細審查。
[0088] 在一些實施例中,Ν0Χ可被放大到極大的系統(tǒng)規(guī)模。在這些實施例中,需要嚴格控 制設計中的一些一致性要求。一般來說,由于應用通常只使用來自網(wǎng)絡概觀的數(shù)據(jù),以及指 定策略來做出控制決策,因此只需要跨控制器始終如一地使用網(wǎng)絡概觀。由于在做出這些 控制決策時一般不使用和各個分組或流的狀態(tài)有關的信息,因此將達到與流相關的控制決 策方面的一致性,與哪個控制器接收該流無關。
[0089] 在一些實施例中,與新流到達的速度相比,網(wǎng)絡概觀變化非常緩慢。這使網(wǎng)絡概觀 可以提供大量控制器的全局一致的概觀,這使系統(tǒng)可以并行利用許多控制器,每個控制器 負責網(wǎng)絡中的流的子集,從而使系統(tǒng)能夠被縮放。系統(tǒng)縮放的限制因素是改變網(wǎng)絡概觀的 速率。就原始計算要求來說,單一服務器能夠容易地對付目前的多數(shù)企業(yè)網(wǎng)絡的變化速度。
[0090] 更一般地說,Ν0Χ能夠?qū)σ钥焖贂r標發(fā)生的事件使用并行操作,這樣的事件包括分 組到達和流到達。分組到達一般由各個交換機處理,而不存在全局的按分組協(xié)調(diào),并且流的 發(fā)起可由控制器處理,而不存在全局按流的協(xié)調(diào)。流可被發(fā)送給任何控制器,從而通過增加 運行控制器進程的更多服務器,能夠增大系統(tǒng)的容量。網(wǎng)絡概觀全局數(shù)據(jù)結(jié)構(gòu)一般足夠緩 慢地改變,以致對于超大型網(wǎng)絡能夠集中維護它。不過,為了彈性,可在較小的一組副本上 維護網(wǎng)絡概觀。
[0091] 本發(fā)明的一些實施例包含向后兼容傳統(tǒng)系統(tǒng)的組件和部件。按照本發(fā)明的一些方 面構(gòu)成的系統(tǒng)不需要對與網(wǎng)絡連接的那部分設備的任何特殊動作。例如,連接以太網(wǎng)的設 備能夠仿佛它們與普通以太網(wǎng)網(wǎng)絡連接似的工作,從而不需要任何修改。按照本發(fā)明的一 些方面構(gòu)成的系統(tǒng)能夠與不支持OpenFlow,或者其它基于標準的具有這里所述類似功能的 接口的網(wǎng)絡部件共存。這些非OpenFlow網(wǎng)絡部件將如常轉(zhuǎn)發(fā)分組,并且系統(tǒng)可以僅僅把它 們并入整個網(wǎng)絡架構(gòu)中。不過,系統(tǒng)不能對這些未修改的網(wǎng)絡部件的行為施加控制,但是可 按照這些未修改的網(wǎng)絡部件遵守的連網(wǎng)標準(例如,標準以太網(wǎng)等)表征這樣的組件。 [0092] 一些實施例支持網(wǎng)絡及其組成部分的自動配置。通過利用可捕捉與網(wǎng)絡實體相關 的必要信息,比如角色,屬性和組成員資格的系統(tǒng)目錄,可便利配置。通過在一個或多個管 理應用或系統(tǒng)文件中鏈接的一組策略,可捕捉管理目標。進入系統(tǒng)的新的網(wǎng)絡實體能夠被 自動檢測,并且能夠?qū)εc新實體的通信應用適當?shù)牟呗?。類似地,進入系統(tǒng)的新的網(wǎng)絡部件 能夠被自動檢測,并且能夠按照系統(tǒng)策略向該新部件發(fā)送流條目或者其它管理命令。從而, 除了當為部件配備安全地與控制器通信所必需的加密密鑰時之外,一般不需要各個網(wǎng)絡部 件的明確配置。
[0093] 一些實施例支持具有虛擬機("VM")和虛擬交換機的虛擬環(huán)境。VM是網(wǎng)絡實體 的一種形式,并且虛擬交換機是網(wǎng)絡部件的一種形式。如果每個服務器或網(wǎng)絡部件在其虛 擬交換機上支持諸如OpenFlow之類的抽象,那么系統(tǒng)正確地執(zhí)行策略。當VM移動或者共 同位于相同服務器上時同樣如此,并且除了 OpenFlow實現(xiàn)方式之外,不需要服務器上的特 殊功能。
[0094] 一些實施例保存網(wǎng)絡狀態(tài)的歷史,網(wǎng)絡狀態(tài)的歷史可用于故障檢修和取證。除了 流的完整列表及除到達時間和離開時間外的流的統(tǒng)計信息,比如分組和字節(jié)之外,系統(tǒng)還 保存網(wǎng)絡概觀的歷史記錄。這使操作員可以查看在任何時間點的網(wǎng)絡概觀的狀態(tài)。例如, 操作員可以查看在當前時間之前兩年或兩小時的完整網(wǎng)絡概觀。根據(jù)歷史概觀,操作員可 確定哪個用戶和主機發(fā)送分組。所有通信的歷史使操作員能夠進行網(wǎng)絡業(yè)務的流級分析, 這可用于確定在定義的一段時間內(nèi)發(fā)生的網(wǎng)絡事件。從而,歷史可揭示在目標事件之前和 /或之后的電子郵件傳輸、主機重啟和事件。歷史概觀一般包含高級名稱和低級地址之間 的綁定的歷史,它允許更明確地把過去事件歸屬于各個用戶。從而,能夠確定在某一時間, 誰傳送了文件,以及誰登錄到了所選主機。該信息可用于網(wǎng)絡故障檢修,和檢測過去的網(wǎng)絡 業(yè)務中各種形式的異?;蚩梢尚袨?。Ν0Χ能夠提供支持這種故障檢修和取證分析的附加信 肩、。
[0095] 一些實施例提供增強的路由功能,和提供完全控制流通過網(wǎng)絡的路徑的路由的系 統(tǒng)。控制器能夠設置一組流條目,所述一組流條目將使來自流的分組采用任意路徑通過網(wǎng) 絡。特別地,不必從單一的"生成樹(spanning tree)"中選擇路徑,在相同始發(fā)地和目的地 之間行進的不同流可以采用不同的路徑。此外,僅僅通過插入一組新的流條目,管理應用就 能夠在任意時間重新路由流。這使管理應用可以選擇實現(xiàn)負載均衡、使用快捷路徑和支持 快速失效轉(zhuǎn)移等的路線。
[0096] 當網(wǎng)絡中的一條或多條鏈路被過度使用時,可以采用負載均衡。應用可為經(jīng)過過 載鏈路的流選擇新的路徑,或者可為新到達的流選擇避開該鏈路的路徑。特別地,路由可利 用多個路徑來分散網(wǎng)絡負載??旖萋窂教峁┎恍枰裱旨壞J降穆肪€,在分級模式中,流 必須通過主聚合交換機。相反,路線可以選擇"捷徑",捷徑是避免中央分級結(jié)構(gòu)的路徑???速失效轉(zhuǎn)移用于在檢測到失效時,僅重新選擇經(jīng)過失效鏈路的那些路徑的路線。這使得在 遇到故障時大多數(shù)流能工作。在需要的情況下,一旦控制器被告知該失效的鏈路,就能夠?qū)?現(xiàn)流的重新路由。
[0097] -些實施例支持改進的分級截取和相關特征,比如主機休眠。傳統(tǒng)計算機可支持 當未處于活動使用期時,休眠或以其它方式省電的能力。但是,分組到達它們的網(wǎng)絡接口卡 ("NIC")會干擾功率降低特性,因為這些分組需要由CPU處理。通常在小功率工作狀態(tài)期 間,幾乎所有的業(yè)務都是不向目的地主機傳送有用信息,并且不需要主機采取的非平凡動 作的網(wǎng)絡啁啾(chatter)。按照本發(fā)明的一些方面,控制器能夠決定不轉(zhuǎn)發(fā)這些分組,并且 可代表目的主機處理分組。例如,網(wǎng)絡控制器,或者代表它行動的網(wǎng)絡部件能夠響應試圖 發(fā)現(xiàn)目的地主機是否仍然與網(wǎng)絡聯(lián)系的一些網(wǎng)絡請求。這將使主機仍然處于其低功率的模 式。不過,控制器能夠識別和轉(zhuǎn)發(fā)重要的業(yè)務,比如安全外殼("SSH")業(yè)務、報警、查詢和 其它請求,以允許主機恰當?shù)仨憫Mㄟ^使控制器在轉(zhuǎn)發(fā)分組之前檢查所述分組,并且可能 地建立流條目,網(wǎng)絡管理器能夠做出轉(zhuǎn)發(fā)哪些分組的明智決策。
[0098] 一些實施例能夠保護控制器和網(wǎng)絡概觀免受拒絕服務("DoS")攻擊。為了防止 對控制器和網(wǎng)絡概觀的淹沒拒絕服務攻擊,系統(tǒng)能夠限制各個網(wǎng)絡部件和實體可向控制器 和系統(tǒng)的其它部件發(fā)送分組的速率。這能夠保護至關緊要的網(wǎng)絡和系統(tǒng)資源。這種保護是 可能的,因為控制器能夠檢測資源過載,并修改適當?shù)牧鳁l目,以限制或防止對過載資源的 訪問。
[0099] 本發(fā)明的上述說明是例證性的,而不是對本發(fā)明的限制。例如,本領域的技術人員 會認識到可用上面說明的功能和能力的各種組合實踐本發(fā)明,本發(fā)明可包括比所述更少或 更多的組件。下面進一步陳述本發(fā)明的一些另外的方面和特征,在受益于本公開內(nèi)容之后, 本領域的技術人員會認識到,利用上面更詳細說明的功能和組件能夠獲得這些另外的方面 和特征。
[0100] 本發(fā)明的一些實施例提供控制全局路由和其它轉(zhuǎn)發(fā)行為(包括網(wǎng)絡地址轉(zhuǎn)換、力口 密、封裝、有狀態(tài)的隧穿,和各種形式的服務質(zhì)量)的系統(tǒng)和方法。當流開始時,可實時地 對每個流單獨做出這些決策,并且這些決策可基于按照高級名稱(主機、用戶、服務等的名 稱)表述的通用策略。這些策略的實現(xiàn)可獨立于網(wǎng)絡拓撲,并且當用戶和主機移動以及網(wǎng) 絡變化時,這些策略仍然有效。通過利用在多數(shù)商用交換芯片中提供的ACL功能,能夠?qū)崿F(xiàn) 本發(fā)明的一些實施例。
[0101] 本發(fā)明的一些實施例提供維護全面網(wǎng)絡概觀的系統(tǒng)和方法。在這些實施例的一些 中,網(wǎng)絡概觀包括網(wǎng)絡部件的拓撲。在這些實施例的一些中,網(wǎng)絡概觀識別實體的位置,這 些實體包括用戶、服務和主機。在這些實施例的一些中,維護網(wǎng)絡概觀的歷史,以及網(wǎng)絡流 的歷史。
[0102] 本發(fā)明的一些實施例提供使高級語言可以訪問網(wǎng)絡概觀的集中的編程接口,提供 包括流發(fā)起和網(wǎng)絡概觀的變化的網(wǎng)絡事件的通知,和控制網(wǎng)絡部件的控制機制。在這些實 施例的一些中,系統(tǒng)提供對全局路由的實時逐流控制。在這些實施例的一些中,系統(tǒng)控制流 通過網(wǎng)絡的路徑,和網(wǎng)絡部件對流的處理。在這些實施例的一些中,通過一致性要求的嚴格 分離,系統(tǒng)是可縮放的,只有網(wǎng)絡概觀要求全局一致性。在這些實施例的一些中,關于流的 決策基于全局網(wǎng)絡概觀和流狀態(tài)。在這些實施例的一些中,這允許把一致但是緩慢改變的 網(wǎng)絡概觀和局部但是快速變化的參數(shù)分開。在這些實施例的一些中,與多個控制器中的每 一個無關地處理流狀態(tài)。
[0103] 本發(fā)明的一些實施例提供自動配置網(wǎng)絡的方法。在這些實施例的一些中,自動配 置包括自動檢測與網(wǎng)絡連接的新設備和服務。在這些實施例的一些中,自動配置包括自動 更新流條目和其它配置信息。在這些實施例的一些中,流條目和其它配置信息的自動更新 允許面對各種網(wǎng)絡變化維護全局指示("策略")的實現(xiàn)。
[0104] 本發(fā)明的一些實施例提供對分組的智能截取的支持,使主機能夠保持功率降低模 式。
[0105] 本發(fā)明的一些實施例提供對虛擬環(huán)境的支持,包括支持遷移VM。在這些實施例的 其中多個VM與某些設備相關的一些實施例中,系統(tǒng)允許控制這些共同駐留的VM之間的通 信。在這些實施例的一些中,使用帶內(nèi)控制來管理設備。在這些實施例的一些中,利用ACL 功能提供全局功能來控制交換機。
[0106] 本發(fā)明的一些實施例提供對通過單一系統(tǒng)管理和保護多個網(wǎng)絡的支持。
[0107] 本發(fā)明的一些實施例提供支持以使多個管理系統(tǒng)共享單一網(wǎng)絡基礎結(jié)構(gòu)的控制, 使不同的管理機構(gòu)能夠?qū)⒖刂品珠_。
[0108] 本發(fā)明的一些實施例提供管理網(wǎng)絡的系統(tǒng)和方法。這些實施例的一些包括維護網(wǎng) 絡的當前狀態(tài)的網(wǎng)絡概觀,網(wǎng)絡的當前狀態(tài)表征網(wǎng)絡組成和網(wǎng)絡拓撲,網(wǎng)絡組成包括網(wǎng)絡 上目前可尋址的網(wǎng)絡實體和網(wǎng)絡部件,通告與網(wǎng)絡狀態(tài)的變化對應的事件,和根據(jù)網(wǎng)絡概 觀和事件之一配置網(wǎng)絡部件之一。在這些實施例的一些中,網(wǎng)絡實體包括網(wǎng)絡用戶。在這 些實施例的一些中,一個或多個網(wǎng)絡管理應用訪問網(wǎng)絡概觀。在這些實施例的一些中,網(wǎng)絡 的當前狀態(tài)包括網(wǎng)絡構(gòu)成的位置。在這些實施例的一些中,網(wǎng)絡的當前狀態(tài)還表征網(wǎng)絡中 的數(shù)據(jù)流。
[0109] 在這些實施例的一些中,配置網(wǎng)絡部件之一包括改變網(wǎng)絡拓撲。在這些實施例的 一些中,改變網(wǎng)絡拓撲包括向多個網(wǎng)絡部件提供路由信息,所述路由信息對應于一個或多 個數(shù)據(jù)流。這些實施例中的一些還包括存儲在先網(wǎng)絡概觀的歷史。在這些實施例中的一些 中,歷史中的每個在先網(wǎng)絡概觀記錄規(guī)定時間的網(wǎng)絡狀態(tài),并且還記錄在規(guī)定時間之前檢 測到的事件。在這些實施例的一些中,所述規(guī)定時間由時間表定義,并且事件的每次發(fā)生只 被記錄在歷史中的一個在先網(wǎng)絡概觀中。在這些實施例的一些中,規(guī)定時間對應于事件的 發(fā)生。在這些實施例的一些中,每個數(shù)據(jù)流與一個或多個網(wǎng)絡部件的轉(zhuǎn)發(fā)行為相關,并且還 包括根據(jù)網(wǎng)絡概觀控制某些轉(zhuǎn)發(fā)行為。
[0110] 在這些實施例的一些中,控制某些轉(zhuǎn)發(fā)行為包括響應事件之一,修改至少一個轉(zhuǎn) 發(fā)行為。在這些實施例的一些中,控制某些轉(zhuǎn)發(fā)行為包括在改變網(wǎng)絡拓撲之后,修改至少一 個轉(zhuǎn)發(fā)行為。在這些實施例的一些中,修改至少一個轉(zhuǎn)發(fā)行為的步驟由網(wǎng)絡控制器進行。在 這些實施例的一些中,改變網(wǎng)絡拓撲包括自動配置新插入網(wǎng)絡中的設備。在這些實施例的 一些中,自動配置設備包括向每個自動配置的設備提供至少一個ACL。在這些實施例的一些 中,每個數(shù)據(jù)流與一個或多個網(wǎng)絡部件的轉(zhuǎn)發(fā)行為相關,并且其中自動配置設備包括根據(jù) 網(wǎng)絡概觀,修改至少一個轉(zhuǎn)發(fā)行為。在這些實施例的一些中,配置網(wǎng)絡部件之一由網(wǎng)絡管理 系統(tǒng)進行。在這些實施例的一些中,根據(jù)網(wǎng)絡的當前狀態(tài)和網(wǎng)絡管理系統(tǒng)所維護的網(wǎng)絡狀 態(tài)歷史的比較,網(wǎng)絡管理系統(tǒng)產(chǎn)生某些事件。
[0111] 在這些實施例的一些中,網(wǎng)絡管理系統(tǒng)包含描述網(wǎng)絡的當前狀態(tài)的網(wǎng)絡概觀。在 這些實施例的一些中,網(wǎng)絡的狀態(tài)包括當前網(wǎng)絡拓撲、網(wǎng)絡上多個網(wǎng)絡部件的位置、網(wǎng)絡組 成的位置、網(wǎng)絡組成包括網(wǎng)絡的至少一個用戶和網(wǎng)絡管理器。在這些實施例的一些中,網(wǎng)絡 管理器根據(jù)網(wǎng)絡狀態(tài)配置網(wǎng)絡部件。在這些實施例的一些中,根據(jù)網(wǎng)絡組成提供的信息生 成網(wǎng)絡概觀,并且其中某些網(wǎng)絡組成可訪問網(wǎng)絡概觀的多個部分。
[0112] 在這些實施例的一些中,網(wǎng)絡部件包括交換機。在這些實施例的一些中,網(wǎng)絡部件 包括路由器。在這些實施例的一些中,網(wǎng)絡管理器分散在多個網(wǎng)絡部件間。在這些實施例 的一些中,網(wǎng)絡實體包括通過網(wǎng)絡提供的服務。在這些實施例的一些中,網(wǎng)絡實體包括應 用。這些實施例中的一些實施例還包括向應用提供訪問網(wǎng)絡管理器的所選功能的網(wǎng)絡操作 系統(tǒng)。在這些實施例的一些中,所選功能包括網(wǎng)絡概觀。在這些實施例的一些中,所選功能 包括事件通知功能。在這些實施例的一些中,事件通知功能提供網(wǎng)絡拓撲變化的通知。在 這些實施例的一些中,事件通知功能提供用戶日志事件的通知,包括登錄和退出事件。
[0113] 在這些實施例的一些中,事件通知功能提供流發(fā)起的通知。在這些實施例的一些 中,網(wǎng)絡管理器根據(jù)網(wǎng)絡狀態(tài)的變化,重新配置交換機。在這些實施例的一些中,交換機被 重新配置,以建立與數(shù)據(jù)流相關的新的轉(zhuǎn)發(fā)行為。在這些實施例的一些中,利用訪問控制列 表重新配置交換機。在這些實施例的一些中,利用OpenFlow重新配置交換機。在這些實施 例的一些中,利用 0penFlow重新配置交換機。在這些實施例的一些中,網(wǎng)絡管理器檢測并 自動提供配置信息給新增加的網(wǎng)絡部件。在這些實施例的一些中,配置信息包括一個或多 個網(wǎng)絡地址。在這些實施例的一些中,配置信息包括一個或多個路由表。在這些實施例的 一些中,配置信息包括一個或多個訪問控制列表。在這些實施例的一些中,配置信息包括網(wǎng) 絡概觀的一部分。
[0114] 這些實施例的一些實施例還包括在先網(wǎng)絡狀態(tài)的歷史,所述歷史記錄網(wǎng)絡狀態(tài)的 變化和導致網(wǎng)絡狀態(tài)的變化的事件。在這些實施例的一些中,網(wǎng)絡的狀態(tài)還包括分組分類、 語言綁定、網(wǎng)絡實體的位置、數(shù)據(jù)流的路由信息和拓撲中的一個或多個。在這些實施例的一 些中,網(wǎng)絡的狀態(tài)還包括與數(shù)據(jù)流的狀態(tài)對應的信息。在這些實施例的一些中,網(wǎng)絡組成包 括網(wǎng)絡部件,并且與每個數(shù)據(jù)流的狀態(tài)對應的信息由與每個數(shù)據(jù)流相關的網(wǎng)絡部件維護。
[0115] 本發(fā)明的一些實施例提供網(wǎng)絡操作系統(tǒng)。這些實施例的一些實施例包含描述網(wǎng)絡 的當前狀態(tài)的網(wǎng)絡概觀,其中網(wǎng)絡的狀態(tài)包括當前網(wǎng)絡拓撲、網(wǎng)絡上多個網(wǎng)絡部件的位置、 網(wǎng)絡組成的位置、網(wǎng)絡組成包括網(wǎng)絡的至少一個用戶、向安裝在網(wǎng)絡組成上的應用提供對 網(wǎng)絡概觀的訪問的編程接口,和對應用來說可訪問,并且提供對與當前網(wǎng)絡狀態(tài)相關的信 息的訪問的一組網(wǎng)絡服務。在這些實施例的一些中,信息包括分組分類、語言綁定、網(wǎng)絡實 體的位置、數(shù)據(jù)流的路由信息和拓撲中的一個或多個。
[0116] 本發(fā)明的一些實施例提供管理網(wǎng)絡連接的系統(tǒng)和方法。這些實施例中的一些實施 例包括識別網(wǎng)絡中的流,流識別數(shù)據(jù)的源和目的地,配置一個或多個網(wǎng)絡部件以把來自源 的數(shù)據(jù)引導到目的地,其中配置至少一個網(wǎng)絡部件包括修改一個或多個網(wǎng)絡部件中的訪問 控制列表("ACL")。在這些實施例的一些中,配置至少一個網(wǎng)絡部件還包括為所述至少一 個網(wǎng)絡部件之一生成ACL。在這些實施例的一些中,至少一個網(wǎng)絡部件包括交換機。在這些 實施例的一些中,交換機包括片上交換機("SoC"),并且其中修改ACL的步驟包括把生成 的ACL增加到SoC中的ACL表中。在這些實施例的一些中,ACL表駐留于SoC中。在這些 實施例的一些中,ACL表駐留在與交換機中的處理器相關的存儲器中。在這些實施例的一 些中,配置至少一個網(wǎng)絡部件還包括向生成的ACL提供期滿期。在這些實施例的一些中,配 置至少一個網(wǎng)絡部件還包括向ACL提供期滿期。
[0117] 在這些實施例的一些中,修改訪問控制列表包括重新配置一個或多個網(wǎng)絡部件中 的ACL表中的條目的排列。在這些實施例的一些中,識別流包括維護網(wǎng)絡的當前狀態(tài)的網(wǎng) 絡概觀,網(wǎng)絡的當前狀態(tài)表征網(wǎng)絡組成和網(wǎng)絡拓撲,網(wǎng)絡組成包括網(wǎng)絡上目前可尋址的網(wǎng) 絡實體和網(wǎng)絡部件。
[0118] 本發(fā)明的一些實施例提供截取網(wǎng)絡業(yè)務的系統(tǒng)和方法。這些實施例中的一些實施 例包括確定與網(wǎng)絡連接的主機的休眠狀態(tài),配置網(wǎng)絡部件以檢查指向該主機的數(shù)據(jù)通信, 依據(jù)檢測到數(shù)據(jù)通信中需要主機操作的信息,把數(shù)據(jù)通信的一部分轉(zhuǎn)發(fā)給主機,和如果數(shù) 據(jù)通信不需要主機的操作,那么代表主機有選擇地應答請求。在這些實施例的一些中,要求 主機操作的信息包括一個或多個請求。在這些實施例的一些中,要求主機操作的信息包括 一個或多個查詢。在這些實施例的一些中,要求主機操作的信息包括一個或多個報警。在 這些實施例的一些中,要求主機操作的信息包括SSH業(yè)務。
[0119] 盡管參考具體的示例性實施例說明了本發(fā)明,不過對本領域的普通技術人員來 說,顯然可對這些實施例做出各種修改和變化,而不脫離本發(fā)明的精神和范圍。因此,應在 說明性的而不是限制性的意義上看待說明書和附圖。
【權利要求】
1. 一種管理網(wǎng)絡的方法,包括: 維護所述網(wǎng)絡的當前狀態(tài)的概觀,所述網(wǎng)絡的當前狀態(tài)表征網(wǎng)絡拓撲和網(wǎng)絡組成,所 述網(wǎng)絡組成包括駐留在網(wǎng)絡中或駐留在網(wǎng)絡上的網(wǎng)絡實體和網(wǎng)絡部件; 表征網(wǎng)絡實體的位置和身份; 通告與網(wǎng)絡狀態(tài)的變化對應的事件;和 根據(jù)所述網(wǎng)絡概觀和/或所述事件中的一個或多個,配置所述網(wǎng)絡部件中的一個或多 個。
2. 按照權利要求1所述的方法,還包括在不利用SNMP的情況下訪問關于網(wǎng)絡部件的配 置狀態(tài)。
3. 按照權利要求1所述的方法,還包括維護在先網(wǎng)絡概觀的歷史。
4. 按照權利要求1所述的方法,還包括維護在先網(wǎng)絡流和事件的歷史。
5. 按照權利要求1所述的方法,還包括提供編程接口,所述編程接口允許管理應用訪 問所述網(wǎng)絡概觀、通信網(wǎng)絡事件,和配置網(wǎng)絡部件。
6. 按照權利要求1所述的方法,還包括在多個服務器上托管虛擬機,其中所述虛擬機 實現(xiàn)具有多個虛擬交換機的可控制交換機抽象,從而創(chuàng)建虛擬環(huán)境。
7. 按照權利要求3所述的方法,還包括維護在先網(wǎng)絡流和事件的歷史。
8. 按照權利要求7所述的方法,還包括進行對在先網(wǎng)絡概觀的歷史和在先網(wǎng)絡流和事 件的歷史的取證分析。
9. 按照權利要求1所述的方法,還包括有選擇地截取去往某些主機的業(yè)務,所述某些 主機按照功率降低模式工作,其中在截取到關鍵業(yè)務之前所述主機仍然維持在功率降低模 式。
10. -種管理網(wǎng)絡業(yè)務的方法,包括執(zhí)行全局聲明的網(wǎng)絡策略,其中執(zhí)行全局聲明的網(wǎng) 絡策略包括確保網(wǎng)絡部件采取的動作實現(xiàn)所述全局聲明的網(wǎng)絡策略,其中所述動作包括轉(zhuǎn) 發(fā),并且其中所述全局聲明的網(wǎng)絡策略涉及高級名稱,與網(wǎng)絡拓撲無關,并且與網(wǎng)絡組成的 位置無關。
【文檔編號】H04L12/24GK104113433SQ201410257892
【公開日】2014年10月22日 申請日期:2008年9月26日 優(yōu)先權日:2007年9月26日
【發(fā)明者】M·卡薩多, S·申科, K·E·阿密頓, P·J·巴爾蘭德三世, N·古德, J·皮提特, B·L·帕夫, D·J·溫德蘭得特 申請人:Nicira股份有限公司