SDN 與 Mininet 概述
SDN 全名為(Software Defined Network)即軟件定義網絡,是現互聯網中一種新型的網絡創新架構,其核心技術 OpenFlow 通過網絡設備控制面與數據面分離開來,從而實現網絡流量的靈活控制,為網絡及應用提供了良好的平台。而 Mininet 是一個輕量級軟件定義網絡和測試平台;它采用輕量級的虛擬化技術使一個單一的系統看起來像一個完整的網絡運行想過的內核系統和用戶代碼,也可簡單理解為 SDN 網絡系統中的一種基於進程虛擬化平台,它支持 OpenFlow、OpenvSwith 等各種協議,Mininet 也可以模擬一個完整的網絡主機、鏈接和交換機在同一台計算機上且有助於互動開發、測試和演示,尤其是那些使用 OpenFlow 和 SDN 技術;同時也可將此進程虛擬化的平台下代碼遷移到真實的環境中。
Mininet 實現的特性
- 支持 OpenFlow、OpenvSwitch 等軟定義網路部件
- 支持系統級的還原測試,支持復雜拓撲,自定義拓撲等
- 提供 Python API, 方便多人協作開發
- 很好的硬件移植性與高擴展性
- 支持數千台主機的網絡結構
MiniNet在一台機器(VM、Cloud或Native)上創建了一個真實的虛擬網絡,運行真實的內核、交換機和應用程序代碼,只需幾秒鍾
Mininet在/mininet/node.py中定義了Node、OVSSwitch和Controller等重要的類。在OVSSwitch類中,通過使用命令OVS的命令創建交換機從而得到一個OVS實例。
Mininet創建的host,switch等實例實際上是運行在不同namespace下的某個進程。默認情況下Host運行在自己的namespace中,交換節點運行在root namespace中。
- Mininet的源碼安裝
1. 從github上獲取Mininet源碼。
2. 查看當前獲取的Mininet版本
Mininet2.1.0p1及以后的版本可以原生支持OpenFlow1.3,所以我們這次安裝的Mininet2.3.0d4版本支持OpenFlow1.3協議。
3. 源碼樹獲取成功以后,安裝Mininet。
# install.sh –a ##完整安裝(默認安裝在home目錄下)
# install.sh -s mydir –a ##完整安裝(安裝在其他目錄)
# install.sh –nfv ##安裝Mininet+用戶交換機+OVS(安裝在home目錄下)
# install.sh -s mydir –nfv ##安裝Mininet+用戶交換機+OVS(安裝在其他目錄下)
4. 安裝完成以后,通過簡單的命令測試Mininet的基本功能。
5. python自定義拓撲后驗證拓撲結構(先用mn自帶的模板)
簡單網絡示例圖
在 Mininet 網絡系統中直接輸入 mn 命令,可以在此系統中創建單層的拓撲網絡,從中默認創建了兩台 host 和一個交換機,並且激活了控制器和交換機。同時也可以通過命令 net 查看到鏈路情況
在 Mininet 系統上,實現兩主機互連測試。
查看節點與鏈接