天天看點

sdn/nfv學習---mininet---1. 什麼是mininet?

起因:

最近在接觸SDN和NFV相關的技術,不可避免的要學習mininet,再者想要記下些什麼記錄每天的收獲,是以想起編輯一些概念的東西。由于像這種概念的東西,權威的機構說得最靠譜。最近拜讀圖解TCP/IP一書,其中1.4節提到了概念标準化的概念,任何概念标準化才會有助于概念或工程産品更好地推進,關于sdn走在前列的就是ONF和ONRC了吧,是以我就以ONF官網(https://www.opennetworking.org/projects/mininet/)為基參考并翻譯了些關于mininet的事宜,由于概念設計的東西,我能展示出也隻是冰山一角,是以還請大家多多努力。

細節:

ONF官網:

“從原理上較深刻地介紹了mininet的架構與功能”

Mininet為軟體定義網絡(SDN)提供虛拟測試平台和開發環境。 Mininet可以在任何筆記本電腦或PC上進行SDN開發,并且SDN設計可以在Mininet(允許廉價和簡化的開發)和實際部署中的線速運作的真實硬體之間無縫移動。 Mininet啟用

   +  快速建立軟體定義網絡的原型

   + 複雜的拓撲測試,無需連接配接實體網絡

   + 多個并發開發人員在同一拓撲上獨立工作

Mininet網絡運作真正的代碼,包括标準的Unix / Linux網絡應用程式以及真正的Linux核心和網絡堆棧。

Mininet為網絡建立和實驗提供了可擴充的Python API。 它是在寬松的BSD開源許可下釋出的,并且由社群和SDN愛好者積極開發和支援。

sdn/nfv學習---mininet---1. 什麼是mininet?

Mininet網絡由以下組成成分組成

+孤立的主機

一組使用者級程序移動到提供接口,端口和路由表的獨占所有權的網絡名稱空間中。

+模拟連結

Linux流量控制(tc)強制每個鍊路的資料速率将流量整形為配置的速率。 每個仿真主機都有自己的虛拟以太網接口。

+仿真開關

在核心模式下運作的預設Linux Bridge或Open vSwitch用于跨接口交換資料包。 交換機和路由器可以運作在核心或使用者空間中。

============================================================================

Mininet官網(http://mininet.org/):

“介紹偏重于功能與宣傳”

Mininet使用單個指令在幾秒鐘内建立一個真實的虛拟網絡 ,在單台計算機(虛拟機,雲或本機)上運作真實的核心,交換機和應用程式代碼 :

因為您可以使用Mininet CLI (和API )輕松地與網絡進行互動 ,對其進行定制 ,與其他人共享或将其部署在真實硬體上,Mininet對于開發 , 教學和研究很有用。

Mininet也是開發,共享和試驗OpenFlow和軟體定義網絡系統的好方法。

Mininet積極開發和支援,并在寬松的BSD開源許可下釋出。

==========================================================================

Mininet的GitHub上(https://github.com/mininet/mininet):

“推薦看,包括了比較全的講解和全部代碼”

 什麼是Mininet?

Mininet在單台機器上模拟主機,鍊路和交換機的完整網絡。 要建立示例雙主機,單交換機網絡,請運作:

sudo mn

Mininet對互動式開發,測試和示範非常有用,尤其是那些使用OpenFlow和SDN的示範。 Mininet原型的基于OpenFlow的網絡控制器通常可以在完全線路速率執行時以最小的改變傳輸到硬體。

它是如何工作的?

Mininet使用基于程序的虛拟化和網絡名稱空間建立虛拟網絡 - 最近的Linux核心中可用的功能。 在Mininet中,主機模拟為在網絡名稱空間中運作的bash程序,是以任何通常在Linux伺服器上運作的代碼(如Web伺服器或用戶端程式)都應該在Mininet“主機”中正常運作。 Mininet“主機”将擁有自己的專用網絡接口,隻能看到自己的程序。 Mininet中的交換機是基于軟體的交換機,如Open vSwitch或OpenFlow參考交換機。 連結是虛拟以太網對,它們位于Linux核心中,并将我們的仿真交換機連接配接到仿真主機(程序)。

特征

Mininet包括:

 +  一個指令行啟動程式( mn )來執行個體化網絡。

 + 一個友善的Python API,用于建立不同大小和拓撲的網絡。

 + 示例(在examples/目錄中)幫助您開始。

 +  通過Python help() docstrings獲得完整的API文檔,以及使用make doc生成PDF / HTML文檔的能力。

 + 使用Mininet對象的參數化拓撲( Topo子類)。 例如,可以使用以下指令建立樹型網絡:

    mn --topo tree,depth=2,fanout=3

 +  提供有用診斷指令(如iperf和ping )的指令行界面( CLI類),以及向節點運作指令的功能。 例如,

    mininet> h11 ifconfig -a

    告訴主機h11運作ifconfig -a指令

 +  一個“清理”指令可以清除Mininet或Linux可能留下的垃圾(接口,程序,/ tmp中的檔案等)。 試試這個,如果事情停止工作!

    mn -c

========================================================================

在Nick Feamster的網課上:

什麼是mininet?

+ 一個能在個人PC上運作的網絡虛拟化環境

+ 在單一機器上運作kernel核心,交換機和程式代碼

+ 适應大多數的openflow特性

結尾:

關于mininet的研究隻是作為指向标,是一個開始,以後會持續關注。

繼續閱讀