




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——Mininet中文使用教程
Mininet中文使用教程
Mininet中文使用教程
譯者注:
這篇Blog是在學(xué)習(xí)SDN過(guò)程中翻譯的Mininet官方的文檔。文檔主要是介紹了Mininet的簡(jiǎn)單用法。會(huì)分成幾個(gè)部分放出來(lái),原文。下面是正文
第1部分:EverydayMininetUsage
首先是是命令語(yǔ)法
$這個(gè)符號(hào)代表現(xiàn)在處于Linux的shell交互下,需要使用的是Linux命令mininet這個(gè)符號(hào)表示現(xiàn)在處于Mininet交互下,需要使用的是Mininet的命令#這個(gè)符號(hào)表示的是現(xiàn)在處于Linux的root權(quán)限下。
以上相應(yīng)的狀態(tài)下下屬于對(duì)應(yīng)的命令,就能夠得到正常的輸出。需要注意的是mininet的狀況比較特別,需要使用minient的命令來(lái)進(jìn)行交互。
DisplayStartupOptions
我們首先來(lái)啟動(dòng)Mininet。
鍵入以下命令來(lái)顯示Mininet的幫助信息:
Mininet中文使用教程
如上所示,輸出了mn的幫助信息。
StartWireshark
為了使用Wireshark來(lái)查看OpenFlow的控制信息,我們先開(kāi)啟Wireshark并讓他在后臺(tái)運(yùn)行。
$sudowireshark
在Wireshark的過(guò)濾選項(xiàng)中,輸入of,然后選擇Apply。
InWireshark,clickCapture,thenInterfaces,thenselectStartontheloopbackinterface(lo).
Mininet中文使用教程
現(xiàn)在窗口上暫時(shí)應(yīng)當(dāng)沒(méi)有任何OpenFlow的數(shù)據(jù)包。
假使已經(jīng)安裝了Wireshark,但是運(yùn)行不了(e.g.你得到一個(gè)類(lèi)似$DISPLAYnotset之類(lèi)的錯(cuò)誤信息,可以參考FAQ,:
https:///mininet/mininet/wiki/FAQ#wiki-X11-forwarding)
設(shè)置好X11就可以正常運(yùn)行GUI程序,并且使用xterm之類(lèi)的終端仿真器了,后面的演示中可以用到。
InteractwithHostsandSwitches
StartaminimaltopologyandentertheCLI:
默認(rèn)的最小拓?fù)浣Y(jié)構(gòu)包含有兩臺(tái)主機(jī)(h1,h2),還有一個(gè)OpenFlow的交換機(jī),一個(gè)OpenFlow的控制器四臺(tái)設(shè)備。這種拓?fù)浣涌谝部梢允褂?-topo=minimal來(lái)指定。當(dāng)然我們也可以使用其他的拓?fù)浣Y(jié)構(gòu),具體信息可以看--topo的信息。
現(xiàn)在四個(gè)實(shí)體(h1,h2,c0,s1)都在運(yùn)行著。c0作為控制器,是可以放在虛擬機(jī)外部的。假使沒(méi)有具體的測(cè)試作為參數(shù)傳遞時(shí),我們可以使用Mininet交互。
在Wireshark的窗口中,你會(huì)看到內(nèi)核交換機(jī)連接到控制器。
顯示MininetCLI命令:
Mininet中文使用教程
顯示節(jié)點(diǎn):
顯示網(wǎng)絡(luò)鏈接:
輸出所有節(jié)點(diǎn)的信息:
Mininet中文使用教程
從上面的輸出中,你可以看到有一臺(tái)交換機(jī)和兩臺(tái)主機(jī)。
在Mininet的CLI中第一個(gè)字符串是設(shè)備名,那后面的命令就在該設(shè)備上執(zhí)行。例如我們想在h1設(shè)備上執(zhí)行ifconfig則輸入如下命令:
上面的輸出中,可以看見(jiàn)h1-eth0跟lo兩個(gè)接口,需要注意的是,在Linux系統(tǒng)的shell中運(yùn)行ifconfig是看不到h1-eth0。
與h1-eth0相反的是,switch默認(rèn)是跑在root的網(wǎng)絡(luò)namespace上面,所以在switch上執(zhí)行命令與在Linux下的shell中是一樣的。
Mininet中文使用教程
RXpackets:46716errors:0dropped:0overruns:0frame:0TXpackets:40265errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:10804203(10.8MB)loLinkencap:LocalLoopbackinetaddr:Mask:MTU:65536Metric:1inet6addr:::1/128Scope:HostUPLOOPBACKRUNNINGRXpackets:43654errors:0dropped:0overruns:0frame:0TXpackets:43654errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RXbytes:37264504(37.2MB)lxcbr0Linkencap:Ethernetinetaddr:TXbytes:37264504(37.2MB)TXbytes:40122199(40.1MB)
HWaddrfe:5e:f0:f7:a6:f3Bcast:55Mask:MTU:1500Metric:1
inet6addr:fe80::a8c4:b5ff:fea6:2809/64Scope:LinkUPBROADCASTRUNNINGMULTICASTRXpackets:52errors:0dropped:0overruns:0frame:0TXpackets:20errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RXbytes:4759(4.7KB)ovs-systemLinkencap:EthernetTXbytes:2952(2.9KB)
HWaddr3e:79:59:3d:d9:bbMTU:1500Metric:1
BROADCASTMULTICAST
RXpackets:0errors:0dropped:0overruns:0frame:0TXpackets:0errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RXbytes:0(0.0B)s1Linkencap:EthernetTXbytes:0(0.0B)HWaddr6e:8c:5d:91:d5:44MTU:1500Metric:1
inet6addr:fe80::fc47:8aff:fe6a:4155/64Scope:LinkUPBROADCASTRUNNINGRXpackets:13errors:0dropped:0overruns:0frame:0TXpackets:8errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RXbytes:1026(1.0KB)s1-eth1Linkencap:EthernetTXbytes:648(648.0B)
HWaddr5e:a2:f7:86:f3:b1MTU:1500Metric:1
inet6addr:fe80::5ca2:f7ff:fe86:f3b1/64Scope:LinkUPBROADCASTRUNNINGMULTICASTRXpackets:8errors:0dropped:0overruns:0frame:0TXpackets:22errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000
Mininet中文使用教程
RXbytes:648(648.0B)s1-eth2Linkencap:Ethernet
TXbytes:1764(1.7KB)
HWaddrb2:c6:37:e0:d9:61MTU:1500Metric:1
inet6addr:fe80::b0c6:37ff:fee0:d961/64Scope:LinkUPBROADCASTRUNNINGMULTICASTRXpackets:8errors:0dropped:0overruns:0frame:0TXpackets:21errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:648(648.0B)veth14524JLinkencap:EthernetTXbytes:1674(1.6KB)
HWaddrfe:ca:13:f5:dd:b4MTU:1500Metric:1
inet6addr:fe80::fcca:13ff:fef5:ddb4/64Scope:LinkUPBROADCASTRUNNINGMULTICASTRXpackets:8errors:0dropped:0overruns:0frame:0TXpackets:40errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:648(648.0B)veth2K19CELinkencap:EthernetTXbytes:4190(4.1KB)
HWaddrfe:f1:f7:e8:49:45MTU:1500Metric:1
inet6addr:fe80::fcf1:f7ff:fee8:4945/64Scope:LinkUPBROADCASTRUNNINGMULTICASTRXpackets:8errors:0dropped:0overruns:0frame:0TXpackets:42errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:648(648.0B)veth9WSHRKLinkencap:EthernetTXbytes:4370(4.3KB)HWaddrfe:87:1d:33:f6:41MTU:1500Metric:1
inet6addr:fe80::fc87:1dff:fe33:f641/64Scope:LinkUPBROADCASTRUNNINGMULTICASTRXpackets:8errors:0dropped:0overruns:0frame:0TXpackets:43errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:648(648.0B)vethH2K7R5Linkencap:EthernetTXbytes:4460(4.4KB)HWaddrfe:5e:f0:f7:a6:f3MTU:1500Metric:1
inet6addr:fe80::fc5e:f0ff:fef7:a6f3/64Scope:LinkUPBROADCASTRUNNINGMULTICASTRXpackets:14errors:0dropped:0overruns:0frame:0TXpackets:48errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:1776(1.7KB)vethO99MI2Linkencap:EthernetTXbytes:5030(5.0KB)HWaddrfe:cf:ee:97:fb:7f
inet6addr:fe80::fccf:eeff:fe97:fb7f/64Scope:Link
Mininet中文使用教程
上面的輸出中包含交換機(jī)的虛擬網(wǎng)卡s1,以及主機(jī)的eth0。
為了區(qū)別顯示host主機(jī)的網(wǎng)絡(luò)是隔離的,我們可以通過(guò)arp與route命令來(lái)做演示,分別在s1與h1上面演示如下:
這樣可以做到將每一個(gè)主機(jī),交換機(jī),以及控制器都放到他自己的標(biāo)準(zhǔn)的network
namespace中,但是這種做法并沒(méi)有什么特別的優(yōu)勢(shì),除非你想復(fù)制一個(gè)十分繁雜的網(wǎng)絡(luò)。Mininet不支持這種做法,你可以通過(guò)--innamespace參數(shù)來(lái)查看更多的信息。
譯者注:感覺(jué)有點(diǎn)像LXC或者說(shuō)想最近比較火的Docker
注意:只有網(wǎng)絡(luò)是虛擬出來(lái)的,每一個(gè)主機(jī)里面的進(jìn)程使用的都是同一套目錄,可以看到一致的進(jìn)程集合,我們打印不同主機(jī)下面的進(jìn)程列表看看:
Mininet中文使用教程
如上所示,h1,h2,s1三個(gè)進(jìn)程列表是完全一致的。
其實(shí)完全可以做到各個(gè)主機(jī)完全獨(dú)立,就想LXC那樣,但是目前Mininet并沒(méi)有這么做。在Mininet中所有的進(jìn)程都放在root下面,這樣你可以在Linux的shell中直接用kill或者ps這些命令查看或者殺死進(jìn)程。
Testconnectivitybetweenhosts
現(xiàn)在,驗(yàn)證您可以h1ping通h2:
Mininet中文使用教程
我們不單可以在主機(jī)上面運(yùn)行ping命令,每一條Linux下的命令或者程序都可以在Mininet中運(yùn)行:
接下來(lái),嘗試開(kāi)始于h1啟動(dòng)一個(gè)簡(jiǎn)單的HTTP服務(wù)器上,然后從h2發(fā)出請(qǐng)求,最終關(guān)閉Web服務(wù)器:
退出mininet交互命令:
cleanup
假使Mininet出于某種原因崩潰,可以用下面命令來(lái)清理:
Part2:高級(jí)選項(xiàng)AdvancedStartupOptions
回歸測(cè)試RunaRegressionTest
Mininet可以用于直接運(yùn)行回歸測(cè)試,不一定要切換到他的CLI下面。
運(yùn)行回歸測(cè)試:
Mininet中文使用教程
這條命令會(huì)創(chuàng)立一個(gè)小的拓?fù)浣Y(jié)構(gòu),然后啟動(dòng)OpenFLow的控制器,然后跑ping測(cè)試,最終再把拓?fù)浣Y(jié)構(gòu)跟控制器關(guān)掉。
另一種有用的試驗(yàn)是iperf的(給它約10秒來(lái)完成):
還有一直常用的測(cè)試是iperf(完成這個(gè)測(cè)試大約需要10s鐘):
此命令創(chuàng)立的一致Mininet,并在其中一臺(tái)host上面跑iperfserver,然后在另外一臺(tái)host上面運(yùn)行iperfclient然后解析取得帶寬狀況。
更改拓?fù)浣Y(jié)構(gòu)大小和類(lèi)型ChangingTopologySizeandType
Mininet默認(rèn)的拓?fù)浣Y(jié)構(gòu)是由兩臺(tái)host以及一臺(tái)交換機(jī)組成的,你可以用--topo參數(shù)來(lái)更改拓?fù)浣Y(jié)構(gòu)。
假設(shè)你要在一個(gè)交換機(jī)與三臺(tái)host之間做ping探測(cè)驗(yàn)證(verifyall-pairspingconnectivity)。:
運(yùn)行回歸測(cè)試:
另一個(gè)例子中,使用線性拓?fù)洌ㄆ渲忻總€(gè)交換機(jī)配有一個(gè)主機(jī),并且所有的交換機(jī)連接在一起):
課喲用參數(shù)來(lái)控制拓?fù)浣Y(jié)構(gòu)是Mininet中最有用的功能之一,十分強(qiáng)大。
Mininet中文使用教程
鏈路變化Linkvariations
Mininet2.0允許你設(shè)置連接參數(shù),甚至可以通過(guò)命令行實(shí)現(xiàn)自動(dòng)化設(shè)置:
上面的設(shè)置每?jī)蓚€(gè)節(jié)點(diǎn)之間的延遲是10ms,由于ICMP請(qǐng)求傳過(guò)了兩條鏈路(一次是到大交換機(jī),一次到達(dá)主機(jī)),來(lái)回時(shí)間(RRT)就應(yīng)當(dāng)是40ms。
你還可以使用PythonAPI來(lái)做更多的事兒,不過(guò)現(xiàn)在我們先繼續(xù)往下演練。
調(diào)整輸出信息AdjustableVerbosity
Mininet默認(rèn)輸出信息的級(jí)別是Info,Info級(jí)別會(huì)輸出Mininet的詳細(xì)信息。我們也可以通過(guò)-v參數(shù)來(lái)設(shè)置輸出DEBUG信息。
這樣會(huì)打印出更多額外的細(xì)節(jié)?,F(xiàn)在嘗試一下output參數(shù),這樣可以在CLI中打印更少的
信息。除了上面的幾個(gè)級(jí)別,還有其他的級(jí)別可以使用,譬如warning等
CustomTopologies自定義拓?fù)浣Y(jié)構(gòu)
Mininet中文使用教程
在custom/topo-2sw-2host.py中是一個(gè)例子可以拿來(lái)參考,我們可以看到通過(guò)PythonAPI我們可以很簡(jiǎn)單的來(lái)定義拓?fù)浣Y(jié)構(gòu)。
這個(gè)例子直接連接兩臺(tái)交換機(jī),每個(gè)交換機(jī)帶有一臺(tái)主機(jī)。
我們提供一個(gè)自定義的mininet文件,就可以創(chuàng)立新的拓?fù)浣Y(jié)構(gòu)、交換機(jī)類(lèi)型。我們?cè)诿钚欣锩鏈y(cè)試一下:
Mininet中文使用教程
ID=MAC
默認(rèn)狀況下,host的mac地址是隨機(jī)分派的。這會(huì)導(dǎo)致每次mininet創(chuàng)立的時(shí)候,MAC地址都會(huì)改變,這會(huì)給調(diào)試帶來(lái)一些困難
--mac參數(shù)可以解決上面的問(wèn)題,栗子如下:
之前:
Mininet中文使用教程
使用--mac參數(shù):
Mininet中文使用教程
ncontrast,theMACsforswitchdataportsreportedbyLinuxwillremainrandom.Thisisbecauseyoucan‘a(chǎn)ssign’aMACtoadataportusingOpenFlow,asnotedintheFAQ.Thisisasomewhatsubtlepointwhichyoucanprobablyignorefornow.XTermDisplayxterm屏顯
為了便利更繁雜的調(diào)試工作,可以使用mininet的xterms
可以通過(guò)x選項(xiàng)來(lái)給每一個(gè)host與交換機(jī)啟動(dòng)一個(gè)xterm。
后一秒鐘,在xterm終端會(huì)彈出,并且具有自動(dòng)設(shè)置窗口的名稱(chēng)(h1,h2…)。
或者,您也可以用下面的方式開(kāi)啟更多的xterm。
默認(rèn)狀況下,僅僅host需要一個(gè)但大戶(hù)的namespace,而交換機(jī)的窗口則不用(與政策的終端類(lèi)似)
butcanbeaconvenientplacetorunandleaveupswitchdebugcommands,suchasflowcounterdumps.
在你想看到交互命令的時(shí)候,xterm很有用,但是假使你僅僅想看到輸出信息,那你可能想停掉xterm
例如:
在switch:s1(root)的xterm下面運(yùn)行:
Mininet中文使用教程
由于交換機(jī)中沒(méi)有數(shù)據(jù)流量,所以不會(huì)有信息輸出。
Tousedpctlwithotherswitches,startupmininetinverbosemodeandlookatthepassivelisteningportsfortheswitcheswhenthey’recreated.
現(xiàn)在,在host:h1的xterm中運(yùn)行:
回到s1的xterm中查看:
現(xiàn)在就可以看見(jiàn)數(shù)據(jù)流了。另外我們可以直接用dpctl命令直接調(diào)用MininetCLI里面的命令,而不需要啟動(dòng)任何xterm或者指定交換機(jī)的IP跟端口。
我們看已通過(guò)ifconfig命令來(lái)判斷xterm是否在root的名字空間下,假使所有的網(wǎng)卡都顯示出來(lái)(包含eth0),那他就是在root下。
從mininet的CLI中退出:
這樣mininet的CLI就自動(dòng)關(guān)閉了。
OtherSwitchTypes其他類(lèi)型的交換機(jī)
我們可以使用不同的交換機(jī)類(lèi)型。例如:運(yùn)行user-space交換機(jī):
Mininet中文使用教程
值得注意的是這種交換機(jī)下,帶寬相比于前面的內(nèi)核態(tài)交換機(jī)要小的多。
假使做ping探測(cè),也會(huì)有更高的延遲,這是由于現(xiàn)在的數(shù)據(jù)包需要從內(nèi)核態(tài)轉(zhuǎn)換到用戶(hù)空間,消耗了更多的資源。
另一方面,用戶(hù)空間的交換機(jī)遇有一些新功能,假使交換機(jī)的性能不是關(guān)鍵問(wèn)題是的時(shí)候。在Mininet虛擬機(jī)中預(yù)裝了另外一個(gè)交換機(jī)類(lèi)型是OpenvSwitch(OVS),在iperf測(cè)試中,帶寬會(huì)比內(nèi)核態(tài)交換機(jī)更大。
MininetBenchmark
Torecordthetimetosetupandteardownatopology,usetest‘none’:
EverythinginitsownNamespace(userswitchonly)
默認(rèn)狀況下,主機(jī)都放在自己的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 常州工程職業(yè)技術(shù)學(xué)院《高級(jí)阿拉伯語(yǔ)二》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆科技學(xué)院《外國(guó)史學(xué)名著選讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 淮北理工學(xué)院《社會(huì)學(xué)原理類(lèi)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶智能工程職業(yè)學(xué)院《生物統(tǒng)計(jì)與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 赤峰學(xué)院《教育史專(zhuān)題研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 梧州學(xué)院《現(xiàn)代舞創(chuàng)編》2023-2024學(xué)年第二學(xué)期期末試卷
- 東北林業(yè)大學(xué)《生物科學(xué)專(zhuān)業(yè)英語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西航空職業(yè)技術(shù)學(xué)院《攝影報(bào)道》2023-2024學(xué)年第二學(xué)期期末試卷
- 合肥共達(dá)職業(yè)技術(shù)學(xué)院《現(xiàn)代電子測(cè)量技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)蒙古工業(yè)大學(xué)《概率論與數(shù)據(jù)統(tǒng)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 中央空調(diào)操作規(guī)程詳細(xì)版
- 薄膜沉積速率與均勻性研究
- 影視鑒賞-第六章-影視藝術(shù)的鑒賞與評(píng)論
- 丘腦出血的護(hù)理查房
- DB21T 2700-2024 焊接絕熱氣瓶充裝站安全技術(shù)條件
- 檢測(cè)實(shí)驗(yàn)室發(fā)展規(guī)劃方案
- 閑置廢舊物資管理與處置辦法培訓(xùn)課件
- 建設(shè)工程質(zhì)量檢測(cè)方案-技術(shù)標(biāo)部分
- 大學(xué)英語(yǔ)詞匯表(5500)個(gè)單詞
- 駕駛員疲勞駕駛監(jiān)測(cè)系統(tǒng)
- 裝飾公司項(xiàng)目融資計(jì)劃書(shū)
評(píng)論
0/150
提交評(píng)論