一:補充
(一)推文
openvswitch的原理和常用命令
https://blog.csdn.net/ten_sory/article/details/79593554
(二)回顧:sudo mn --test pingall
測試的是一個mininet自帶的簡單網絡拓撲的連通性問題,這個簡單的網絡拓撲結構包含一個交換機s1,兩個主機h1,h2與交換機構成連通網絡
1.使用mn命令進入測試網絡(上面圖中網絡)
可以查看信息
2.使用links命令查看鏈路連通性
3.使用dump查看各個節點信息
4.使用pingall命令測試各個主機之間是否連通
二:命令圖譜
三:網絡構建參數
(一)topo
1.單一拓撲:整個網絡拓撲中交換機只有一個,下面可以連接多個主機
2.線性拓撲:可以有多個交換機,但是每個交換機下面只是連接一個主機
注意:網絡鏈路狀態中,links是包含交換機之間也是連通的 s1--s2--s3--s4
3.樹形拓撲
depth設置樹的深度(不含根節點),fanout設置每個節點下的子樹個數(廣度)
4.自定義拓撲(重點)
(二)switch
定義網絡拓撲要使用的交換機,后面可以接的參數有:ovsk、ovsbr、ivs、lxbr、user,前面三種均為OVS型交換機,后面兩種分別為內核型(linux bridge)和用戶型(user)交換機。
交換機分類3類:內核型、用戶型、OVS型,其中內核型和OVS型的吞吐量比用戶型大很多,因此一般采用后兩種。
測試三者的TCP bandwidth
sudo mn --test iperf 內核型
sudo mn --switch user --test iperf 用戶型
sudo mn --switch ovsk --test iperf ovs型
(三)controller :一般我們不用mininet自帶的控制器,而是自己制定一個遠程控制器
如果--ip和--port省略的話,則默認使用本地ip地址,端口默認使用6653或6633端口號。
(四)mac
使用這個參數可以讓MAC地址從小到達排列,使得復雜的網絡更清晰,容易辨識各個組件的MAC地址。
不使用這個參數的話,復雜的網絡容易混亂。
四:內部交互命令
(一)常用內部交互命令(不可修改網絡結構)
這些命令在 mininet> 命令模式下使用,僅查看網絡設備狀態信息,不對網絡結構進行改變
net 查看鏈路信息,兩個設備之間的之間連線,稱為一個鏈路,鏈路是雙向的 nodes 查看有哪些可用節點 links 檢測鏈路是否正常工作 pingall 檢測各個主機之間的連通性 pingpair 檢測前兩個主機的連通性 dump 查看節點信息
(二)采用內部交互命令:可以更改網絡結構的命令,或者是帶參數命令
1.py命令
執行Python表達式,例如添加網絡設備。下面舉例說明:
在mininet自帶的網絡拓撲的基礎上,我們想添加一個主機h3,並且讓它和s1之間連通,且可以和其他兩個主機h1和h2互相ping通。
py net.addHost('h3') #給當前網絡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:設置鏈路狀態
link s1 s2 down/up 禁用/開啟s1和s2這兩個節點之間的鏈路
可以看到,當關閉鏈路s1 s2后,主機h1和h2是無法通信的
3.iperf h1 h2 測試兩個主機h1和h2之間的TCP帶寬
4.iperfupd bw h1 h2 測試兩個主機h1和h2之間的UDP帶寬
一定要加上bw
5.dpctl 對所有交換機操作流表,包括流表的顯示、添加、修改、刪除,具體用法,參考
6.xterm 如xterm h1打開主機h1的操作窗口
五:Mininet可視化
(一)啟動Miniedit
注意:最好在root權限下運行,在前面加上sudo
(二)自定義創建拓撲,設置設備信息
1.創建拓撲
2.配置設備屬性
配置控制器
右擊設備,出現控制器選項和屬性
配置交換機
注意DPID是16位長度
配置主機
注意:IP配置是根據全局配置中設置的網絡地址設置的
配置鏈路
miniedit的全局配置
(三)運行拓撲並生成拓撲腳本
運行設置好的網絡拓撲,可在命令行界面顯示出運行的拓撲信息
運行當中,右擊長按,可以查看設備信息
使用圖形界面設置好拓撲后,可以通過選擇File-Export Level 2 Script,將其保存為python腳本,以后直接運行python腳本即可重現拓撲,重現拓撲后可在命令行直接操作
可以通過python 腳本.py或者賦予腳本執行權限chmod +X 腳本.py