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 
  • 1

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

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

在命令中出現帶有節點名稱的字符串,則該節點名稱將被其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
  • 2
  • 3
  • 4
  • 5

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

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

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

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

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

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

$ sudo mn
  • 1

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

在Mininet CLI上,運行:
mininet> py 'hello ' + 'world' 打印可訪問的局部變量: mininet> py locals() 接下來,使用dir()函數查看可用於節點的方法和屬性: mininet> py dir(s1) 使用help()函數閱讀在線文檔,以獲取節點上可用方法的信息: py help(h1) 評估變量的方法: mininet> py h1.IP() 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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

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

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

在這里插入圖片描述
四、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.刪除和創建以'-'開頭的文件。
在這里插入圖片描述
在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM