Mininet使用教程

注:
1)重要的鏈接:http://mininet.org/walkthrough/#display-startup-options
在這裏插入圖片描述
2)IPv4與IPv6之間的地址轉換
https://www.subnetonline.com/pages/subnet-calculators/ipv4-to-ipv6-converter.php
一、日常Mininet的使用
1.鍵入以下命令以顯示描述Mininet的啓動選項的幫助消息:

$ sudo mn -h

在這裏插入圖片描述
2.Mininet常用命令的使用
1).顯示Mininet CLI命令:
在這裏插入圖片描述
2)顯示節點信息
在這裏插入圖片描述
3)顯示鏈接信息
在這裏插入圖片描述
4)轉儲有關所有節點的信息
在這裏插入圖片描述
5)第一個字符串是主機名,交換機名或控制器名,則命令將在該節點上執行
迴環(loopback)指將電子信號、數據流等原樣送回發送者的行爲。它主要用於對通信功能的測試。
在這裏插入圖片描述
6)默認情況下,交換機在根網絡名稱空間中運行,因此在“交換機”上運行命令與從常規終端運行命令相同
在這裏插入圖片描述
7)從主機進程中打印進程列表
請注意,只有網絡是虛擬的。每個主機進程都具有相同的進程和目錄集。
在這裏插入圖片描述
8)測試主機之間的連接

ping的相關命令參數:
https://www.cnblogs.com/machangwei-8/p/10352808.html
-d:使用Socket的SO_DEBUG功能;
-c<完成次數>:設置完成要求迴應的次數;
-f:極限檢測;
-i<間隔秒數>:指定收發信息的間隔時間;
-I<網絡界面>:使用指定的網絡界面送出數據包;
-l<前置載入>:設置在送出要求信息之前,先行發出的數據包;
-n:只輸出數值;
-p<範本樣式>:設置填滿數據包的範本樣式;
-q:不顯示指令執行過程,開頭和結尾的相關信息除外;
-r:忽略普通的Routing Table,直接將數據包送到遠端主機上;
-R:記錄路由過程;
-s<數據包大小>:設置數據包的大小;
-t<存活數值>:設置存活數值TTL的大小;
-v:詳細顯示指令的執行過程。

在命令中出現帶有節點名稱的字符串,則該節點名稱將被其IP地址替換。
地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議。主機發送信息時將包含目標IP地址的ARP請求廣播到局域網絡上的所有主機,並接收返回消息,以此確定目標的物理地址;收到返回消息後將該IP地址和物理地址存入本機ARP緩存中並保留一定時間,下次請求時直接查詢ARP緩存以節約資源。

在這裏插入圖片描述

在這裏插入圖片描述
ping第二次嘗試的時間應該更少(<100us)。ping先前在交換機中安裝了覆蓋ICMP 流量的流條目,因此沒有生成控制流量,並且數據包立即通過交換機。
在這裏插入圖片描述
9)運行一個簡單的Web服務器和客戶端

mininet> h1 python -m SimpleHTTPServer 80 &
#  這個也可以!mininet> h2 python -m SimpleHTTPServer 80 >& /tmp/http.log &
mininet> h2 wget -O - h1  #大寫的O
...
mininet> h1 kill %python

二、高級啓動選項
1.運行迴歸測試
1).該命令創建了最小的拓撲,啓動了OpenFlow參考控制器,進行了全對ping測試,並拆除了拓撲和控制器。在這裏插入圖片描述
2).此命令創建相同的Mininet,在一臺主機上運行一臺iperf服務器,在第二臺主機上運行一臺iperf客戶端,並解析所獲得的帶寬。
在這裏插入圖片描述
2.更改拓撲的大小和類型
默認拓撲是連接到兩個主機的單個交換機。您可以使用將其更改爲其他拓撲–topo,併爲該拓撲的創建傳遞參數。例如,要驗證一臺交換機和三臺主機的所有對ping連接,請執行以下操作:
在這裏插入圖片描述
具有線性拓撲(其中每個交換機都有一個主機,並且所有交換機都在一條線上連接):
在這裏插入圖片描述
3.鏈接變化

 $ sudo mn --link tc,bw=10,delay=10ms#帶寬爲10M,延遲爲10ms。

如果每個鏈路的延遲爲10毫秒,則往返時間(RTT)應該約爲40毫秒,因爲ICMP請求遍歷兩個鏈路(一個到交換機,一個到目的地)並且ICMP答覆遍歷兩個返回的鏈路。
在這裏插入圖片描述
4.自定義拓撲
一個行之有效的方式是將所編寫的程序代碼放在/mininet/custom/目錄下,然後使用下面的命令來運行相應的程序。

$ sudo mn --custom ~/mininet/custom/topo-2sw-2host.py --topo mytopo --test pingall

在這裏插入圖片描述
5.ID=MAC
默認情況下,主機以隨機分配的MAC地址開頭。這會使調試變得很困難,因爲每次創建Mininet時,MAC都會改變,因此很難將控制流量與特定主機相關聯。

該–mac選項超級有用,並將主機MAC和IP地址設置爲小的,唯一的,易於讀取的ID。
在這裏插入圖片描述
在這裏插入圖片描述
三、Mininet命令行界面(CLI)命令
1.顯示選項
要查看命令行界面(CLI)選項的列表,請啓動最小化拓撲並使其運行。建立Mininet:

$ sudo mn

在這裏插入圖片描述
2.Python解釋器

在Mininet CLI上,運行:
mininet> py 'hello ' + 'world'

打印可訪問的局部變量:
mininet> py locals()

接下來,使用dir()函數查看可用於節點的方法和屬性:
mininet> py dir(s1)

使用help()函數閱讀在線文檔,以獲取節點上可用方法的信息:
py help(h1)

評估變量的方法:
mininet> py h1.IP()

在這裏插入圖片描述在這裏插入圖片描述
3.鏈接上/下

要禁用虛擬以太網對的兩個部分:
mininet> link s1 h1 down

您應該看到生成了OpenFlow端口狀態更改通知。備份鏈接:
mininet> link s1 h1 up

在這裏插入圖片描述
四、Python API示例
1.每個主機的SSH守護程序
一個可能特別有用的示例在每個主機上運行SSH守護程序:
在這裏插入圖片描述
五、WireShark
1.WireShark簡介
WireShark是世界上使用最廣泛的網絡協議分析器。
功能:
標準的三窗格數據包。
能夠實時捕獲和離線分析。
業界最強大的顯示過濾器。
在這裏插入圖片描述
2.Wireshark在Linux系統下的安裝及使用
https://blog.csdn.net/jipengwang/article/details/78799310
3.WireShark使用詳解:
https://blog.csdn.net/qq_36119192/article/details/84671638
https://blog.csdn.net/leichelle/article/details/8186900
4.ubuntu新版wireshark的升級與回退
https://blog.csdn.net/bryanting/article/details/53327575

六、libevent
1.libevent的的安裝教程
https://blog.csdn.net/u010710458/article/details/79408766
2.軟件的下載地址
http://libevent.org/
3.軟件的卸載命令
sudo apt-get remove libevent**(可以使用tab建進行提示)
注:在安裝時,安裝的是libevent-2.0.22.但是在查看軟件版本時,卻變成了libevent-2.1.6。
七、常見的Linux命令
1.查看安裝的所有軟件
dpkg -l在這裏插入圖片描述
2.程序庫文件的指明
一般來說,庫文件如果是在/usr/lib或/usr/local/lib下的話,編譯時候會自動加載的,不需要顯示的指明庫文件所在位置。如果編譯出錯,可以顯示地
指明庫文件所在目錄。
g++ main.cpp -L/usr/local/lib -levent
//-L 告知編譯器庫文件所在目錄位置
//-l 告知編譯器所需鏈接庫文件
在這裏插入圖片描述
3.刪除和創建以'-'開頭的文件。
在這裏插入圖片描述
在這裏插入圖片描述

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