SDN開源項目大全
SDN 之所以能夠發展的如此之快,其中開源社區的貢獻不容忽視。隨著SDN 各類社區的不斷發展狀大,開源項目也在不斷增多,從控制器到交換機再到網絡虛擬化,開源項目一度讓小編眼花繚亂。可能你熟悉OpenDaylight、 RYU、Floodlight,但是你也許不知道還有MUL、Beacon、Trema等一大波開源控制器。除了OVS、Flowvisor還有 Pantou和MidoNet,是不是有點腦洞大開的趕腳。
因此小編特意搜集了部分項目制作成列表供正在彷徨中的用戶參考,依次按照控制器、交換機、網絡虛擬化以及其他輔助工具的順序。(注:此處排名不分先后)目前我們還在尋找更多的項目,如果您有新的發現可以聯系@SDNLAB,我們會酌情添加,另外文中如有不妥之處還請批評指正。
控制器
1. OpenDaylight
OpenDaylight以開源社區為主導,使用Java語言實現的的開源框架,旨在推動創新實施以及軟件定義網絡透明化。面對SDN型網絡,OpenDaylight作為項目核心,擁有一套模塊化、可插拔且極為靈活的控制器,還包含一套模塊合集,能夠執行需要快速完成的網絡任務。
2. ONOS (友情提示:此處需要紅杏出墻)
ONOS是由ON.Lab使用Java及Apache實現發布的首款開源的SDN網絡操作系統,主要面向服務提供商和企業骨干網。ONOS的設計宗旨是滿足網絡需求實現可靠性強、性能好、靈活度高。此外,ONOS的北向接口抽象層和API支持簡單的應用開發,而通過南向接口抽象層和接口則可以管控 OpenFlow或者傳統設備。
3. Floodlight
Floodlight是由Big Switch Networks使用apache協議及Java語言開發的一款OpenFlow控制器,被用來與交換機、路由器、虛擬交換機及其他支持OpenFlow標準的設備一起工作。
4. RYU
RYU由日本NTT公司負責設計研發的一款開源SDN控制器,同POX一樣,也是完全由Python語言實現,使用者可以在Python語言的基礎上實現自己的應用,采用Apache License開源協議標準,目前支持協議OpenFlow1.0、1.2、1.3,同時支持在OpenStack上的部署應用。提供邏輯上的集中化管理,通過提供API使網絡管理更加方便。
5. POFController
POFController是由華為公司采用BSD/ Apache授權基于Java語言實現的OpenFlow控制器,提供了一個GUI管理界面,用于交換機的控制和配置。POF主要包含控制器和交換機兩個原型文件,旨在提高OpenFlow的規范及支持無感知轉發協議和數據包格式。
6. MUL
MUL是一個用c語言實現多線程架構的OpenFlow控制器,用來連接app的多種北向接口,目前支持openFlow的1.0、1.3版本,主要為性能和可靠性設計,是一款輕量級高效的控制器。支持一鍵安裝、CTL命令行管理和WEB GUI。
7. POX
POX是由斯坦福使用Python語言開發的基于OpenFlow的一種控制器,是NOX的兄弟,它具有能將交換機送上來的協議包交給指定軟件模塊的功能。
8. NOX
NOX 是Nicira使用Python開發的首個提供盡可能通用接口的 SDN 軟件定義網絡生態系統的控制器,也是用來構建網絡控制應用的平臺。
9. IRIS
IRIS是由ETRI研究團隊使用Java語言創建的一個Resursive SDN Openflow控制器。目標是創建一個具備水平擴展電信級網絡、高可用性及透明故障恢復、基于OpenFlow遞歸網絡抽象的多域支持等主要功能的SDN控制器。
10. Jaxon
Jaxon是一款基于Java語言實現的OpenFlow實現的控制器,提供給NOX一個端口,用來橋接NOX控制器與Java應用。
11. Trema
Trema是由NEC公司使用Ruby和C語言實現的易用性極強的一款OpenFlow控制器框架。
12. Beacon
Beacon是由斯坦福大學的David Erickson等人設計,基于Java語言開發實現的開源控制器,以高效性和穩定性應用在在多個科研項目及實驗環境中,除此之外,具有很好的跨平臺性,并支持多線程,可以通過UI界面進行訪問控制、使用和部署。
13. Maestro (友情提示:需要紅杏出墻哦)
Maestro是萊斯大學論文中提出并用Java語言實現的一款基于LGPL V2.1開原協議標準的多線程控制器,主要應用于科研領域,具有很好的平臺適應性,可以有效的在多種操作系統和體系結構上運行。
14. NodeFlow
NodeFlow是由Cisco Systems CTO Gary Berger牽頭使用JavaScript開發的一個極度簡化的OpenFlow控制器,用于Node.js(www.nodejs.org)。 Node.js是一個服務器端的軟件系統,用于編寫可擴展的因特網應用。
15. Mc-Nettle
Mc-Nettle是耶魯大學開發的一款新型OpenFlow控制器,它定位于超強的多核多服務器,能承擔大型數據中心規模的負載流量(譬如每秒2千萬個流請求,并可擴展至5000臺交換機)。
交換機
1. Open vSwitch
Open vSwitch是由Nicira公司使用C和Python語言開發實現的遵循開源Apache2.0許可的產品級質量的多層虛擬交換標準!它旨在通過編程擴展,使龐大的網絡自動化(配置、管理、維護),同時還支持標準的管理接口和協議,OVS支持跨越多個物理服務器的分布式環境,類似于VMware的 vNetwork distributed vswitch以及Cisco的 Nexus 1000V。
2. POFSwitch
POFSwitch是由華為公司采用BSD許可基于Linux系統C語言實現的虛擬交換機,POFSwitch與POFController協同工作增強OpenFlow協議支持協議無感知轉發。
3. Pica8
XORPlus是由Pica8公司提供硬件交換芯片為軟件定義網絡提供開放系統支持L2 / L3協議棧的Open vSwitch軟件平臺,在嚴格控制源碼License下允許派生,允許object-form,但不可以在未經過Pica8同意的情況下公開 XORPlus的源碼,也可在Pica8官網上進行溝通交涉。
4. Indigo
Indigo是Big Switch Network根據斯坦福大學的OpenFlow參考方案使用C語言實現的一個開源OpenFlow實現方案,運行于物理交換機之上,能夠利用以太網交換機專用ASIC芯片的硬件特性,以線速運行OpenFlow,支持多達48個高速率10G端口,并支持可擴展的網絡虛擬化應用,以及是使用 OpenFlow控制器的跨越多服務器的分布式結構,類似VMware的vNetwork、Cisco的Nexus、Open vSwitch。
5. ONetSwitch
ONetSwitch是疊鍶公司作為全球首款基于Zynq器件實現的OpenFlow Switch產品,作為理想的SDN教育科研平臺,具備“軟件可編程,邏輯可重構,硬件可擴展”能力,是面向SDN/OpenFlow的可編程交換機。
6. Pantou(OpenWRT)
Pantou(OpenWRT)是基于BackFire OpenWrt軟件版本(Linux 2.6.32)實現的把商用的無線路由器或無線接入點設備變為一個支持OpenFlow的交換機,把OpenFlow作為OpenWrt上面的一個應用來實現,Pantou支持的設備包括:普通的Broadcom接入點設備、部分型號的LinkSys設備、以及采用Broadcom和Atheros芯片組的TP-LINK的接入點設備。
Of13softswitch是由巴西愛立信創新中心(Ericsson Innovation Center)提供支持基于TrafficLab 1.1版軟交換產品實現的與OpenFlow 1.3版本規范兼容的用戶空間的一個軟件交換機方案。該軟件交換機包括:交換機實現方案(ofdatapath)、用于連接交換機和控制器的安全信道(ofprotocol)、用于和OpenFlow 1.3之間進行轉換的庫(oflib)、以及一個配置工具(dpctl)。
8. LINC
LINC是由FlowForwarding主導基于OpenFlow1.2和1.3.1版本遵循Apache 2許可的一個交換機開源實現項目,架構采用流行的商用x86硬件,可運行于多種平臺上,如Linux、Solaris、Windows、MacOS,在 Erlang運行環境的支持下,還可以運行于FreeBSD平臺。
Switch Light是由Big Switch基于開源技術Indigo實現的可在物理或者虛擬交換機上部署OpenFlow網絡協議的交換機軟件,可被用戶自行搭建,實現集中式自動化管理和配置,用戶目前可以注冊下載Switch Light軟件,與Big Switch的其他SDN產品例如Big Switch Controller、Big Virtual Switch以及Big Tap Monitoring一起使用。
網絡虛擬化
1. Flowvisor
Flowvisor是使用Java語言編寫的建立在OpenFlow之上的網絡虛擬化平臺,用來在交換機和多個控制器之間傳輸透明代理 proxy ,可以將物理網絡分成多個邏輯網絡,從而實現開放軟件定義網絡(SDN),是一個特殊的OpenFlow控制器,已經被部署在很多生產環境中,如從2009年開始應用于斯坦福大學的校園網絡。
2. OpenVirtualX
OpenVirteX是ON.Lab開發的一個網絡虛擬化平臺,可以實現多租戶的網絡虛擬化,可以用來創建和管理虛擬SDN網絡(vSDNs),通過虛擬化的OF網絡構建特定的網絡拓撲、尋址等。同FlowVisor相似,OVX也處于Physical Network與Controller的中間層,擔任相同的角色。兩者區別在于對數據包頭的處理粒度不同,FlowVisor會根據flowspace的信息(如端口、ip地址等)將不同主機進行劃分,以此來組成不同的slice,而OVX則提供一個完整的虛擬網絡。
3. MidoNet
MidoNet是由日本的SDN公司Midkura實現的一種分布式的、分散的、多層次的軟件,遵循Apache許可,主要作為OpenStack 云編排系統中的默認網絡構件,可以讓虛擬網絡解決方案,特別是專為網絡基礎設施設計的方案,為云平臺如OpenStack服務,并且將其網絡存貯棧虛擬化。
4. RouteFlow
RouteFlow是基于OpenFlow實現的路由虛擬化開源項目,解決交換機的流表生成和下發的數據平面問題及控制平面路由協議及計算的問題。 RouteFlow時由一個OpenFlow控制器應用程序、一個獨立的RouteFlow服務器以及虛擬網絡環境組成來重新實現物理網絡的連通性以及運行IP路由工程(如,Quagga)。
5. EstiNet
EstiNet8.1是由臺灣SDN解決方案開發商EstiNet(思銳科技)實現的OpenFlow網絡仿真器/模擬器,以及故障排除工具,能夠模擬數千個OpenFlow 1.0和1.3交換機,而其提供的DR.SDN能夠簡化和提供可視化工具,對OpenFlow控制器發送的數據包經過多臺支持OpenFlow交換機時出現的問題進行分析,并可以找出其中存在的問題。
其他
1. Mininet
Mininet 是一個輕量級軟件定義網絡和測試平臺;它采用輕量級的虛擬化技術使一個單一的系統看起來像一個完整的網絡運行想過的內核系統和用戶代碼,也可簡單理解為 SDN 網絡系統中的一種基于進程虛擬化平臺,它支持 OpenFlow、OpenvSwith 等各種協議,Mininet 也可以模擬一個完整的網絡主機、鏈接和交換機在同一臺計算機上且有助于互動開發、測試和演示,尤其是那些使用 OpenFlow 和 SDN 技術;同時也可將此進程虛擬化的平臺下代碼遷移到真實的環境中。
2. OFTest
OFTest是一個基于Python的測試OpenFlow規范的框架和測試套件,目前支持的OpenFlow 協議版本為1.0/1.2/1.3。在測試環境中OFTest相當于控制器用來測試OF交換機,它可以主動或者被動與交換機連接,控制交換機和獲取交換機信息。
3. Cbench
Cbench(controller benchmarker)是一種用于測試OpenFlow控制器性能的工具,通過不斷循環產生新的流(packet-in消息)來測試控制器的處理能力。 Cbench模擬連接到控制器的一組交換機,發送packet-in消息并查看flow-mod消息的下發,記錄相關統計信息來計算衡量控制器性能指標。
4. Oflops
Oflops是作為各個方面交換機基準的一個獨立的控制器,實現添加和運行實施無關測試的模塊化架構,以量化交換機性能。
5. Resonance
Resonance是一個采用NOX和OpenFlow內置網絡訪問的SDN網絡管理框架,含有運營商定義的網絡策略的有限狀態機制(FSM)。
6. FlowScale
FlowScale是通過多個物理交換機端口使用TOR(Top of Rack)交換機的OpenFlow功能劃分和分配流量,使用負載均衡功能。
7. Wakame VDC
Wakame VDC是由Ruby語言編寫的為網絡部分使用OpenFlow協議的IaaS平臺。
8. ENVI
ENVI是一個可擴展的平臺,它可以提供許多有趣的OpenFlow的相關網絡可視化的基礎GUI框架。
9. NS3
NS3是由C和Python語言編寫的網絡模擬器,支持OpenFlow創建來模擬一個OpenFlow的環境,也可用于實時模擬。
- 本站聲明:本站原創文章可以轉載,請注明來自 SDNLAB
- 本文鏈接:http://www.sdnlab.com/8091.html