?

基于Mininet的SDN架構仿真實驗綜述報告

2017-11-20 22:52張華
電腦知識與技術 2017年26期
關鍵詞:虛擬化

張華

摘要:設計一個使用Mininet網絡模擬器仿真軟件定義網絡SDN的架構及行為的實驗,在其環境下比較了不同的拓撲結構,最后鎖定了一種結構以找到主機的通信方式。該文介紹了實驗的目的、環境、準備、步驟和實驗結論,可幫助實驗人員理解相關虛擬化技術并能將其應用到實踐中去。

關鍵詞:Mininet;虛擬化;SDN;Openflow;Openvswitch

中圖分類號:TP309 文獻標識碼:A 文章編號:1009-3044(2017)26-0204-03

Abstract: The design of a Mininet network simulator software defined network SDN architecture and behavioral experiments, the different topologies in its environment, and finally locked a structure to find the communication host. This paper introduces the purpose, environment, preparation, steps and experimental results of the experiment, which can help the experimental personnel understand the related virtualization technology and apply it to practice.

Key words: Mininet; virtualization; SDN; Openflow; Openvswitch

1 概述

軟件定義網絡SDN(Software Defined Network)[1]正在迅速發展,它通過啟用編程控制展現出更高的靈活性、可用性和可控性,改變了傳統的網絡。Mininet[2]可創建出虛擬主機、交換機、控制器和網絡鏈接,并支持研究性學習和測試,有助于在個人電腦上進行網絡的虛擬架構。為了解SDN網絡的工作模式,實驗設計采用Mininet模擬器,在其環境下比較了不同的拓撲結構,最后鎖定了一種結構以找到主機的通信方式。

2 實驗目的

了解主機在SDN下的通信模式。

3 實驗環境

擁有至少2 GB 內存和至少6-8 GB空閑硬盤空間的pc機;

Linux(Ubuntu 13.10)。為保證全局最優的實現, Ubuntu服務器也預裝了GNOME終端和SSH客戶端;

網絡控制器(pox、nox、beacon等[3]);

Mininet網絡模擬器;

其他操作系統的實驗環境參考表1。

4 實驗準備

4.1 Mininet的安裝

在Ubuntu 13.10上安裝Mininet,最簡單的是使用命令:sudo apt-get install Mininet。若此命令無效,則先執行更新工作平臺的命令:sudo apt-get update,當系統更新后可以再次使用sudo apt-get install Mininet命令即可安裝Mininet。

4.2 安裝控制器

目前有很多控制器可供選擇,比如pox、nox、beacon和Floodlight等。它們適用于不同平臺如pox/nox支持Python而Floodlight支持java平臺,故SDN的實現與平臺無關。安裝命令為:Sudo apt-get install [控制器]。Mininet默認情況下包括OVCS控制器和openvswitch[4],也可選擇其他控制器或使用其他的方法來安裝控制器。

4.3 Mininet下的基本命令語法

$:普通用戶。

Mininet >:CLI(Command Line Interface命令行界面)提示符,提示輸入Mininet命令。

#:root用戶。

Mininet >help:此命令輸入后屏幕顯示Mininet中各類CLI命令。

Mininet >nodes:這個命令顯示Mininet當前的網絡下的所有節點。默認情況即minimal拓撲結構下使用此命令則顯示當前可用節點是C0、H1、H2、S1。

Mininet >dump:此命令顯示當前Mininet網絡下所有可用節點的轉儲信息。

Mininet >h1 ping h2:持續檢查主機h1和h2之間的連通性,直到停止命令為止。

Mininet >h1 ping -c1 h2:此命令檢查主機h1和h2之間的連通性,發送一個包即停止。

Mininet >h1 ifconfig -a:此命令顯示h1的以太網接口eth0和環回接口loopback (lo)。

Mininet >s1 ifconfig -a:交換機上的運行命令與正常終端上的運行命令相同。

Mininet >pingall:此命令檢查網絡中的所有主機之間的連通性/可達性。

$ Sudo mn —x:基本的xterm命令,啟動主機h1,h2,交換機s1,和控制器c0的xterm終端窗口。

Mininet >xterm h1 h2:命令xterm h1 h2為主機h1和h2打開xterm終端。進入h1執行ping10.0.0.2命令將開始檢查主機h1和h2之間的連通性,同樣可以進入h2的 xterm終端使用命令ping 10.0.0.1來ping h1。endprint

4.4 Mininet下的各種拓撲結構

Mininet下可以有各種拓撲結構比如minimal、single、reversed、linear和tree等,要運行某種結構,則需在終端窗口輸入命令:Sudo mn —topo [拓撲名]。

minimal:最基本的拓撲結構,mininet下為默認屬性,有兩個主機和一個交換機。

single:一個簡單的拓撲結構,有一個交換機和n個主機。

reversed:類似于single,但是主機和交換機之間的連接順序顛倒了。

linear:體現n個主機和n個交換機之間的連接,每個交換機匹配一臺主機。

tree:tree是一個多級樹狀拓撲,n個級別,基層交換機有兩個主機。

4.5 Mininet拓撲結構的比較

Mininet環境中,運行各類拓撲結構的啟動、停止和完成時間如表2所示。

5 實驗原理

基于上述各類拓撲結構在mininet下的運行情況,不同的拓撲結構會創建主機和交換機的不同配置。例如:當使用linear拓撲結構即Sudo mn —topo linear, 4時。這種拓撲創建四個主機(H1,H2,H3,H4)和4個交換機(S1,S2,S3,S4)。此時運行pingall語句以檢查每個主機之間的連接。測試中發現了網絡中的主機之間進行通信時的數據包,這意味著主機之間存在可達性,故mininet下可以實現在不同的主機之間發送文件。

要在虛擬主機之間發送文件,一種選擇是將一個主機作為服務器而其他主機作為客戶端。在這個環境中,首先必須在客戶端主機和服務器主機之間建立連接,之后可使用wget工具實現客戶端主機將向服務器請求特定的文件。

本實驗將使用inear拓撲結構來執行此操作:Sudo mn —topo linear, 4。這種拓撲將創建4個主機和4個交換機。每個主機都分配了唯一的IP地址。例如:1主機分配主機10.0.0.1,H2的分配與10.0.0.2,主機H3分配10.0.0.3主機H4分配10.0.0.4。

6 實驗步驟

1) 打開終端。

2) 運行命令:Sudo mn —topo linear, 4,開始添加4臺主機和4個交換機,接著使用pingall命令測試主機之間的連接,如圖1。

3) 輸入Mininet> xterm h1 h2 h3 h4命令為每個主機(即h1、h2、h3、h4)分別打開一個xterm終端窗口,比如h2的窗口如圖2所示,其余主機窗口與之類似。

4) 在這個拓撲結構中,我們將h3作為HTTP服務器,其余主機作為客戶端。為實現這一點可在h3的xterm終端輸入命令:Python -m SimpleHTTPServer 80 &,如圖3。

5) 從h2的終端窗口可實現請求從服務器下載文件,啟動客戶端和服務器之間的連接,鍵入Linux內置的wget命令:wget 10.0.0.3。圖4顯示h2已連接到h3并開始下載默認的文件index.html。點擊文件index.html即可在瀏覽器中打開地址:file:///home/deepak/index.html。

6) 假設:若客戶端想下載系統中的特定文件呢?比如此例中下載文件夾中有一個名為dpk.py的文件,要下載此文件需使用Wget命令,具體操作是輸入命令:wget —output-document=Downloads/dpk.py 10.0.0.3(其中10.0.0.3是h3主機),這樣h1即可從服務器下載文件dpk.py。圖5顯示h1向h3請求下載目錄中的dpk.py文件。

7 結束語

Mininet支持在各類型網絡上運行未經修改的網絡應用程序代碼,并可以建立虛擬的SDN架構,實驗在此架構上測試了當客戶端請求下載特定文件時的請求和服務器響應的方式。Mininet支持多種拓撲結構,我們可以通過修改源代碼創建自定義的拓撲結構,并且適用于模擬器的應用程序可以在現實網絡中輕松部署,在教學中頗具性價比。這些都可以作為我們或者其他研究人員進行進一步研究的依據。

目前SDN已經成為了網絡的一個重要組成部分,故對其行為的模擬也是很多相關人員正在研究的內容。但這是一種新的網絡創新架構,尚存一些安全風險,故在以后的工作中我們還需對其進行多方面的改進。

參考文獻:

[1] 王鵑,王江,焦虹陽,等. 一種基于OpenFlow的SDN訪問控制策略實時沖突檢測與解決方法[J]. 計算機學報,2015,38(4):872-883.

[2] 李艷,郝志安,李寧,等. 基于mininet的SDN架構仿真研究[J]. 計算機與網絡,2014,40(5):57-59.

[3] 江國龍,付斌章,陳明宇,等. SDN控制器的調研和量化分析[J]. 計算機科學與探索,2014,8(6):653-664.

[4] 汪萌,梁雨鋒. 基于虛擬化環境下的網絡安全監控技術應用[J]. 計算技術與自動化,2013,32(1):137-140.endprint

猜你喜歡
虛擬化
基于OpenStack虛擬化網絡管理平臺的設計與實現
對基于Docker的虛擬化技術的幾點探討
虛擬化技術在CTC/TDCS系統中的應用研究
虛擬化技術在計算機技術創造中的應用
高速公路服務器虛擬化技術應用與探討
存儲虛擬化還有優勢嗎?
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合