注:
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.刪除和創建以'-'開頭的文件。