Mininet教程(三):Mininet命令操作

  1. Mininet教程(一):Mininet基本介紹
  2. Mininet教程(二):Mininet安裝部署
  3. Mininet教程(三):Mininet命令操作
  4. Mininet教程(四):Mininet可視化MiniEdit

Mininet命令共分爲網絡構建啓動參數、內部交互命令、外部運行參數三部分。
(1)網絡構建啓動參數:–topo,–custom,–switch,–controller,–mac等等。
(2)內部交互命令:dump,net,nodes,links,dpctl,iperf等等。
(3)外部運行參數:-c(清除配置信息),-h(幫助)等。

一、mn網絡構建使用參數介紹

  1. –topo:定義拓撲結構

a. minimal最小化拓撲(一個交換機,兩個主機)

sudo mn --protocol=openflow13

b. single 單一拓撲(整個網絡拓撲中只有一個交換機,其可以下掛一個或者多個主機)

sudo mn --topo=single,5

c. liner 線性拓撲(交換機呈線性排列,存在多個交換機,且每一個交換機下掛主機數目相同)

sudo mn --topo=linear,3
sudo mn --topo=linear,3,2

d. tree 樹形拓撲(交換機的連接呈樹形排列,且每個交換機可以下掛多個交換機,多個主機)

sudo mn --topo=tree,3,2
sudo mn --topo=tree,depth3=,fanout=2【三層,第一層一個交換機,第二層2個交換機,第三層4個交換,主機:4 x 2 = 8】
depth表示交換機有多少層,fanout表示所有的交換機作爲父節點,有多少個子樹。

e. reversed反向拓撲(這種拓撲類型與single單一拓撲類型相同)

sudo mn --topo=reversed,4

f. turse環形拓撲
不多解釋,用的比較少

g. 自定義(custom)topology(編寫.py文件,執行腳本即可創建自定義拓撲,–custom與–topo聯用)

sudo mn --custom topo-2sw-2host.py  --topo mytopo
  1. –switch:定義mininet要使用的交換機

主要參數如下:
a. lxbr:內核態交換機。
b. user:用戶態交換機。
c. ovsk:OpenVSwitch交換機,默認使用此值。
d. ovsbr:OpenVSwitch交換機。
e. ivs:OpenVSwitch交換機。

交換機分類3類:用戶型、內核型和OVS型,其中內核型和OVS型的吞吐量比用戶性大很多,因此一般採用後兩種。可以測試三者的TCP bandwidth(區別UDP bandwidth):

sudo mn --test iperf
sudo mn --switch user --test iperf
sudo mn --switch ovsk --test iperf
  1. –controller:定義要使用的控制器

如果沒有指定則使用mininet中默認的控制器。

# sudo mn --controller=remote,--ip=[controller ip],--port=[port]
  1. –mac:自動配置設備的MAC地址

讓MAC地址易讀,即設置交換機的MAC,主機MAC及IP地址從小到大排序,且設置簡單唯一,不僅讓機器容易獲取,也容易讓肉眼很容易識別其ID。使用方法如下:

# sudo mn --topo=tree,depth=2,fanout=2,--mac
  1. -x(XTerm)

通過使用-x參數,mn在啓動後會在每個節點上自動打開一個XTerm,方便某些情況下的對多個節點分別進行操作。命令爲

sudo mn -x

在進入mn cli之後,也可以使用 node xterm 命令指定啓動某些節點上的xterm

h1 xterm
  1. 啓動參數總結

-h, --help show this help message and exit
-c, --clean clean and exit
-x, --xterms spawn xterms for each node
-v VERBOSITY, --verbosity=VERBOSITY [info warning critical error debug output]

–switch=SWITCH [kernel user ovsk]
–host=HOST [process]
–controller=CONTROLLER [nox_dump none ref remote nox_pysw]
–topo=TOPO [tree reversed single linear minimal],arg1,arg2,…argN
–custom=CUSTOM read custom topo and node params from .py file
–test=TEST [cli build pingall pingpair iperf all iperfudp none]
–mac set MACs equal to DPIDs
–arp set all-pairs ARP entries
–ip=IP [ip address as a dotted decimal string for aremote controller]
–port=PORT [port integer for a listening remote controller]
–innamespace sw and ctrl in namespace?
–listenport=LISTENPORT [base port for passive switch listening controller]
–nolistenport don’t use passive listening port
–pre=PRE [CLI script to run before tests]
–post=POST [CLI script to run after tests]

二、內部交互式命令介紹及使用

使用mn默認創建網絡後,可以使用一系列命令查看並驗證網絡系統的鏈路健壯性。

  1. 設備查看

(1)net: 查看鏈路信息,兩個設備之間的之間連線,稱爲一個鏈路,鏈路是雙向的。
(2)nodes:查看有哪些可用節點。
(3)links :檢測鏈路是否正常工作。
(4)pingall: 檢測所有主機之間的連通性。
(5)pingpair:檢測前兩個主機的連通性。
(6)dump:查看節點信息。
(7)intfs:查看網絡端口信息。
(8)help:顯示一系列命令幫助信息。

  1. 設備操作

(1)iperf:兩節點間進行iperftcp帶寬測試。

iperf h1 h2

(2)iperfudp:兩節點間進行iperfudp帶寬測試。

iperfudp bw h1 h2

(3)link:禁用或開始節點間鏈路。

link s1 s2 up
link s1 s2 down

(4)dpctl:所有交換機上增刪改查流表。

dpctl dump-flows

(5)xterm:節點開啓xterm進入可視化操作界面。

xterm h1

(6)py:執行python表達式。

py help(s1)
py dir(s1)
py net.addSwitch("h3")
py net.addLink(s1,net.get("h3"))
py s1.attach("s1-eth3")
py net.get("h3").cmd("ifconfig h3-eth0 10.3")
pingall

(6)sh:執行ovs系統的指令

sh ovs-vsctl show
  1. 常用命令總結

help: 默認列出所有命令文檔,後面加命令名將介紹該命令用法 dump打印節點信息
gterm: 給定節點上開啓gnome-terminal。注:可能導致mn崩潰 xterm給定節點上開啓xterm
intfs:列出所有的網絡接口
iperf:兩個節點之間進行簡單的iperf TCP測試
iperfudp:兩個節點之間用制定帶寬udp進行測試
net:顯示網絡鏈接情況
noecho:運行交互式窗口,關閉迴應(echoing)
pingpair:在前兩個主機之間互ping測試
source:從外部文件中讀入命令
dpctl:在所有交換機上用dptcl執行相關命令,本地爲tcp 127.0.0.1:6634
link:禁用或啓用兩個節點之間的鏈路
nodes:列出所有的節點信息
pingall:所有host節點之間互ping
py:執行python表達式
sh:運行外部shell命令
quit/exit:退出

三、其他操作

(1)執行sudo mn -c會進行清理配置操作,適合故障後恢復。
(2)執行exit會退出Mininet的cli,同時給出運行時間統計。
(3)py cmd 使用python來執行cmd。
(4)測試Mininet啓動後立刻關閉的時間可以用 sudo mn --test none。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章