一、實驗目的
在實驗 2 的基礎上進一步熟悉 mininet 自定義拓撲指令碼,以及與損耗率相關的設定;初步了解 mininet 安裝時自帶的 pox 控制器指令碼編寫,測試路徑損耗率。
二、實驗任務
h0 向 h1 傳送資料報,由於在 mininet 指令碼中設定了連線損耗率,在傳輸過程中會丟失一些包,本次實驗的目的是展示如何通過控制器計算路徑損耗速率(h0s0-s1-h1)。這裡假設控制器預先知道網路拓撲。控制器將向 s0 和 s1 傳送 flow_stats_request,當控制器接收到來自 s0 的 response 時,將特定流的資料報數儲存在 input_pkts 中,當控制器接收到來自 s1 的 response 時,將接收到特定流的資料報數儲存在 output_pkts 中,差值就是丟失的資料報數量。 基於上述拓撲,編寫 mininet 指令碼,設定特定的交換機間的路徑損耗速率,然後編寫 pox 控制器指令碼,實現對路徑的損耗率的測量。
三、實驗步驟
1. 實驗環境
安裝了 ubuntu 18.04.5 desktop amd64 的虛擬機器
2. 實驗過程
在 pox 安裝目錄下(mininet 完整安裝包含了 pox)執行以下命令執行 pox 指令碼
$ ./pox.py flow_stats
編輯 mininet 指令碼 mymininet3.py :
switch.cmd( 'ovs-vsctl set-controller dp0 tcp:127.0.0.1:6633' ) switch1.cmd( 'ovs-vsctl set-controller dp1 tcp:127.0.0.1:6633' )
設定 s0 和 s1 之間鏈路的丟包率為 0
info( "*** creating links\n" )
linkopts0=dict(bw=100, delay='1ms', loss=0)
linkopts1=dict(bw=100, delay='1ms', loss=0)
再執行命令執行 mininet 指令碼 mymininet3.py
平均丟包率為 0,結果符合 mininet 指令碼中設定的損耗率,也有可能出現負值,
可以認為沒有丟包。
更改 s0 和 s1 之間鏈路的丟包率為10
重新執行 mininet 指令碼 mymininet3.py,20 秒時間的 ping 過程中有 icmp_seq 為
2/4/14/16/19/20 共 6 次 ping 不通,所以丟包率計算為 30%
pox 端重新測試,會發現出現丟包現象,但是實際測量出的丟包率會有浮動,鏈
路的效能總體受到了限制。
四、總結
遇到問題:如圖
解決方法:重啟虛擬機器
2020 SDN第三次上機實驗
一 實驗目的 在實驗2的基礎上進一步熟悉mininet自定義拓撲指令碼,以及與損耗率相關的設定 初步了解mininet安裝時自帶的pox控制器指令碼編寫,測試路徑損耗率 h0向h1傳送資料報,由於在mininet指令碼中設定了連線損耗率,在傳輸過程中會丟失一些包,本次實驗的目的是展示如何通過控制器計...
SDN第三次上機作業
在給定如下圖實驗拓撲情況下,用vlan得到下列虛擬網段 要求實現 h1 h4互通 h2 h5互通 h3 h6互通 其餘主機間無法通訊 1.建立拓撲 使用python指令碼語言建立 對s1,s2均需要下發流表,處理1,2,3埠接收資料,新增vlan標籤,對4埠接收資料去標籤,到對應埠。ovs對s1下發...
SDN第三次上機作業
提交要求 貼出ovs下發流表的命令 sw1 前三句命令將主機1,2,3進入sw1的包打上vlan tag,埠4,後三句命令將從埠4的包去除vlan tag,並根據tag進行 sw2 前三句命令將主機4,5,6進入sw2的包打上vlan tag,埠4,後三句命令將從埠4的包去除vlan tag,並根據...