第五章 Mininet常用命令参数介绍
mn
觀察,可以知道,已經(jīng)進入了這個自帶的網(wǎng)絡,網(wǎng)絡中有1個交換機和2個主機,且在打開這個網(wǎng)絡之后,進入了??mininet>??這個命令模式
然后輸入相關(guān)命令查看網(wǎng)絡狀態(tài),如下圖所示:
查看可用節(jié)點:【nodes】
上圖中的links用于查看鏈路連通性,dump查看節(jié)點信息,pingall測試各個主機之間是否連通。
此處,我們將mininet命令參數(shù)分為三大類:
(1)用于創(chuàng)建網(wǎng)絡拓撲結(jié)構(gòu)的命令參數(shù);
(2)用于查看現(xiàn)有(或創(chuàng)建好的)網(wǎng)絡拓撲中的各個節(jié)點(設備)的網(wǎng)絡狀態(tài)(ip地址、連通性等信息);
(3)用于修改當前網(wǎng)絡拓撲,對已有的設備進行增刪改查操作。
1.用于創(chuàng)建網(wǎng)絡拓撲結(jié)構(gòu)的命令參數(shù)
(1)--topo參數(shù),可以創(chuàng)建具有一定規(guī)則的網(wǎng)絡拓撲結(jié)構(gòu),也可以創(chuàng)建自定義的網(wǎng)絡拓撲結(jié)構(gòu)。
(a)在終端輸入:
mn --topo=single,3
表示創(chuàng)建單個交換機3個主機的拓撲網(wǎng)絡結(jié)構(gòu),如下圖:
代碼運行結(jié)果如下圖:
links查看:
【exit】退出
(b)終端輸入:
【mn --topo=linear,5】
links查看
(c)終端輸入?
【mn --topo=tree,depth=2,fanout=3】
?表示創(chuàng)建了一個如下圖所示的網(wǎng)絡拓撲:
tree表示是樹形的網(wǎng)絡拓撲,depth表示交換機有多少層,fanout表示所有的交換機作為父節(jié)點,有多少個子樹。
運行結(jié)果如下圖:
links查看
(d)以上3中建立網(wǎng)絡拓撲的方式,均是建立有規(guī)則的網(wǎng)絡拓撲,如何自定義網(wǎng)絡呢?語法如下:
mn --custom file.py --topo mytopo
具體使用請看下一篇:mininet自定義網(wǎng)絡拓撲結(jié)構(gòu)
(2)--switch??定義網(wǎng)絡拓撲要使用的交換機,后面可以接的參數(shù)有:ovsk、ovsbr、ivs、lxbr、user,前面三種均為OVS型交換機,后面兩種分別為內(nèi)核型(linux bridge)和用戶型(user)交換機。
交換機分類3類:用戶型、內(nèi)核型和OVS型,其中內(nèi)核型和OVS型的吞吐量比用戶性大很多,因此一般采用后兩種。可以測試三者的TCP bandwidth(區(qū)別UDP bandwidth):
sudo mn --test iperf
sudo mn --switch user --test iperf
sudo mn --switch ovsk --test iperf
(3)--controller 一般我們不用mininet自帶的控制器,而是自己制定一個遠程控制器,代碼如下:
mn --controller = remote,
??????--ip = [控制器的IP地址]
??????--port = [控制器的端口號]
如果--ip和--port省略的話,則默認使用本地ip地址,端口默認使用6653或6633端口號。
(4)--mac 使用這個參數(shù)可以讓MAC地址從小到達排列,使得復雜的網(wǎng)絡更清晰,容易辨識各個組件的MAC地址。不使用這個參數(shù)的話,復雜的網(wǎng)絡容易混亂。
2.用戶查看設備信息和狀態(tài)的命令參數(shù)
這些命令在 mininet> 命令模式下使用,僅查看網(wǎng)絡設備狀態(tài)信息,不對網(wǎng)絡結(jié)構(gòu)進行改變
net?????????????查看鏈路信息,兩個設備之間的之間連線,稱為一個鏈路,鏈路是雙向的
nodes????????查看有哪些可用節(jié)點
links???????????檢測鏈路是否正常工作
pingall???????檢測各個主機之間的連通性
pingpair?????檢測前兩個主機的連通性????????????
dump?????????查看節(jié)點信息
3.更改網(wǎng)絡結(jié)構(gòu)的命令參數(shù)
(1)py命令?
執(zhí)行Python表達式,例如添加網(wǎng)絡設備。下面舉例說明:
在mininet自帶的網(wǎng)絡拓撲的基礎上,我們想添加一個主機h3,并且讓它和s1之間連通,且可以和其他兩個主機h1和h2互相ping通。
代碼如下:
py net.addHost('h3')????????????????????????????????#給當前網(wǎng)絡net添加新的主機h3
py net.addLink(s1,h3)??????????????????????????????#為主機h3和交換機s1之間添加一條鏈路
py s1.attach('s1-eth3')?????????????????????????????#為交換機s1添加一個借口用于與h3相連
py h3.cmd('ifconfig h3-eth0 10.3')?????????#為主機h3配置端口及改端口的IP地址
h1 ping h3????????????????????????????????????????????????#重要!!h1知道h3的IP地址,而h3不知道h1的地址,因此需要h1告訴h3的地址
pingall???????????????????????????????????????????????????????#測試所有主機都是連通的
(2)link(和links不同),用法如下:
link s1 s2 down/up??????????????禁用/開啟s1和s2這兩個節(jié)點之間的鏈路
(3)iperf
iperf h1 h2??????????????????????????測試兩個主機h1和h2之間的TCP帶寬
(4)iperfupd
iperfupd bw h1 h2 ????????????測試兩個主機h1和h2之間的UDP帶寬
(5)dpctl ????????????????????????????對所有交換機操作流表,包括流表的顯示、添加、修改、刪除,具體用法,參考dpctl命令實踐
(6)xterm ????????????????????????????如xterm h1打開主機h1的操作窗口
總結(jié)
以上是生活随笔為你收集整理的第五章 Mininet常用命令参数介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LinkedBlockingQueue使
- 下一篇: ASP.NET MVC项目的创建