複製鏈接
請複製以下鏈接發送給好友

SDN控制器

鎖定
SDN控制器是軟件定義網絡(SDN)中的應用程序,負責流量控制以確保智能網絡。SDN控制器是基於如OpenFlow等協議的,允許服務器告訴交換機向哪裏發送數據包。 [1] 
事實上,SDN控制器是作為網絡的一種操作系統(OS)。控制器不控制網絡硬件而是作為軟件運行,這樣有利於網絡自動化管理。基於軟件的網絡控制使得集成業務申請和網絡更容易。
IBM的可編程網絡控制器運行在Linux上。IBM的SDN控制器管理和配置OpenFlow 1.0網絡,通過在網絡控制器的頂部提供一個虛擬層。IBM的控制器允許第三方軟件開發人員編寫自己的應用程序。
一些供應商提出了專有的SDN控制器。所以,一個供應商的控制器不會總運行在另一個供應商的控制器上。其它網絡供應商包括惠普(HP)、思科、VMWare、和瞻博網絡,正在積極參與到SDN中。
中文名
SDN控制器
外文名
SDN controller

SDN控制器開源控制器

ONOS和ODL項目在SDN控制器方面很可能會共享成果,這樣幾乎所有事情都可以在Linux基金會上實現了。
兩個開源組織創建了獨立的SDN控制器,已經是Linux基金會的一部分,增加了跨項目合作的進程。
日前,Open Networking Lab (ON.Lab)將ONOS項目(Open Networking Operating System)放在了基金會中。ONOS開發者正在創建一個電信級的開源SDN控制器。
ON.Lab組織加入Linux基金會是為了從其龐大的開發者社區中獲得幫助。ONOS項目的執行董事Guru Parulkar表示:“隨着SDN和NFV(網絡功能虛擬化)的崛起,服務提供商和開發者社區在人才儲備方面出現嚴重不足。”
Linux基金會還有ODL(OpenDaylight)項目,它是由供應商傾力打造的控制器架構。貢獻者包括思科、Juniper網絡公司、博科通訊系統公司以及Arista網絡公司。 [2] 

SDN控制器其他控制器

1.NOX和POX
NOX 是斯坦福大學在2008 年提出的第一款OpenFlow 控制器,它的早期版本(NOX-Classic)由C++和Python 兩種語言實現,只能支持單線程操作。控制器提供相應的編程接口,開發人員可以使用C++或者Python 語言在這些接口上實現自己的應用。這個版本已經開源了包括hub、switch、topology 和route在內的多種應用。
NOX 的新版本(0.9.2~core~beta,2012-5-11 發佈)完全由C++實現,支持OpenFlow1.0 協議,並且提供了多線程的支持。由於C++語言的靈活性、高效性,並且新版本增加了多線程的支持,其性能有了很大的提升,但美中不足的是,新版NOX只提供了基本框架。由於它在代碼結構和實現語言上有了一定的調整,原來版本中的相關應用在新版本中無法直接移植。最新版本的NOX只有switch 一個應用,實現了learning switch的功能。
NOX團隊從其舊版本中分離出Python 語言實現的內容之後,又實現了一款完全使用Python語言的控制器POX。儘管POX開源出來的代碼所實現的應用也僅限learning switch,但由於Python 簡潔、易讀,以及擴展性好等優點,POX得以快速發展,並且得到了廣泛的應用。由於Python 是一種解釋性語言,它在性能上較C++和Java 會有一些劣勢。本文對於POX 的測試,均採用PyPy解釋器。 [3] 
2.Beacon
Beacon 同樣起源於斯坦福大學,在2010 年由Erickson 等人設計開發。Beacon 是一款基於Java 語言的開源控制器,截至本文撰寫時的最新版本是V1.0.2 版。Beacon 以其高效性和穩定性得以在多個科研項目和實驗環境中被應用。另外,Beacon 還具有很好的跨平台特性,並且支持多線程,可以通過Web 的UI 進行訪問控制。Beacon 採用Java 的Spring和Equinox 編程模型,可以提供OSGi 用户界面,使用者可以通過用户界面動態地進行模塊的添加和刪除,在使用和部署上很方便。 [3] 
3.Big Network Controller & Floodlight
2012年成立的SDN初創公司Big Switch Networks先後推出了幾款控制器。首先是其商用版的Big NetworkController,它可以支持多達1 000 個網絡設備,每秒連接最多250 000台主機。同年2月,Big Switch發佈了其開源控制器Floodlight,該控制器與Big Network Controller使用相同的core engine,作為其開源版本推向市場,到2012年年底,其下載量就已經超過1萬。
Floodlight採用Java語言實現,在Apache開源標準許可下可免費使用。另外,Big Network Controller 和Floodlight 的API(application programming interface)完全兼容,因此基於Floodlight 編寫的應用程序可以直接應用於商業版本的控制器。也正是基於這種兼容性,Floodlight 開源社區可以向用户提供強大的技術支持。Floodlight 最新版本(V0.90)於2012 年10 月發佈,支持多線程和Web UI。同時,Floodlight 也可以很好地應用於OpenStack。 [3] 
4.Maestro
Maestro[9]是萊斯大學2011年的一篇學位論文,提出並用Java 實現了一款基於LGPL V2.1 開源協議標準的多線程控制器,主要應用於科研領域。它同樣有着很好的平台適應性,可以有效地在多種操作系統和體系結構的機器上運行,Maestro最
新開源版本為2011 年5 月發佈的V0.2.1,其實現的應用主要包括learning switch、discovery、location management、route 等。而對於命令行模式,只是實現了一些簡單的display 操作。相對其他控制器來説,Maestro版本的更新速度比較慢。 [3] 
5.Ryu
Ryu是由日本NTT公司負責設計研發的一款開源SDN 控制器。同POX 一樣,Ryu 也是完全由Python 語言實現,使用者可以用Python 語言在其上實現自己的應用。Ryu 支持OpenFlow V1.0、V1.2 和V1.3,同時支持在OpenStack上的部署應用。Ryu採用Apache License開源協議標準,最新版本實現了simple_switch、rest_topology等應用。 [3] 
6.Helios和SNAC
上述介紹的控制器主要都是開源的,而Helios 和SNAC是閉源的SDN控制器。Helios 是由NEC公司開發的基於C語言的可擴展控制器,它主要應用於科研環境,並且提供了一個可編程的界面來進行實驗。SNAC是Nicira Networks 基於NOX開發的一款企業級控制器,它提供了靈活的策略定義語言,通過策略管理器管理網絡,有着友好的用户界面。 [3] 

SDN控制器控制器測試

隨着SDN產業的不斷成熟,南向接口OpenFlow協議的日趨完善,SDN控制器作為未來網絡架構的核心組件,其性能瓶頸已成為制約SDN發展的一個重要因素。如何形成統一的SDN控制器性能測試規範並施以有效的測試手段,早已成為了業界普遍關心的問題。天地互連-全球SDN測試認證中心發佈的《SDN控制器性能測試白皮書》從SDN控制器性能測試平台的搭建、性能測試方法與測試結果分析和前瞻性的性能測試研究等方面,向業界展示了規範化的SDN控制器性能測試流程,為網絡供應商選擇高性能SDN控制器設備提供了依據。 [4] 
參考資料