掌握 mininet 的自定義拓撲生成方法:命令列建立、python 指令碼編寫
通過使用命令列建立、python 指令碼編寫生成拓撲,熟悉 mininet 的基本功能。
1.實驗環境
安裝了 ubuntu 18.04.5 desktop amd64 的虛擬機器
(1)針對特定拓撲的命令列快速建立
// 注意『,』和『=』前後不需要空格!!!
// 最小拓撲,1 臺交換機下掛 2 臺主機
$ sudo mn --topo minimal
// 簡單拓撲,1 臺交換機下掛 n 臺主機,此處 n=3,n=2 即為最小拓撲
$ sudo mn --topo single,3
// 線性拓撲,交換機連成一線,每台交換機下掛 1 臺主機,此處有 3 臺交換機 3 臺主機
$ sudo mn --topo linear,3
// 樹形拓撲,基於深度 depth 和扇出 fanout,此處均為 2
$ sudo mn --topo tree,fanout=2,depth=2
(2)通用情形的 python 指令碼自定義建立
利於 python 指令碼建立成乙個線性拓撲( 交換機和主機數均為 3 )。如下圖拓撲
python指令碼**:
# coding=utf-8
#!/usr/bin/python
from mininet.net import mininet
from mininet.node import cpulimitedhost
from mininet.link import tclink
from mininet.util import dumpnodeconnections
from mininet.log import setloglevel
def iperftest():
net = mininet(host=cpulimitedhost, link=tclink)
c0 = net.addcontroller()
h1 = net.addhost('h1', cpu=0.5)
h2 = net.addhost('h2', cpu=0.5)
h3 = net.addhost('h3')
s1 = net.addswitch('s1')
s2 = net.addswitch('s2')
s3 = net.addswitch('s3')
net.addlink(h1, s1, bw=10, delay='5ms',max_queue_size=1000, loss=0, use_htb=true)
net.addlink(h3, s3, bw=10, delay='5ms',max_queue_size=1000, loss=0, use_htb=true)
net.addlink(h2, s2, bw=10, delay='5ms',max_queue_size=1000, loss=0, use_htb=true)
net.addlink(s1, s2)
net.addlink(s2, s3)
#注意s1和s3無法link
h1.setip('10.0.0.1', 24)
h2.setip('10.0.0.2', 24)
h3.setip('10.0.0.3', 24)
net.start()
print "dumping host connections"
dumpnodeconnections(net.hosts)
print "testing network connectivity"
net.pingall()
print "testing bandwidth"
net.stop()
if __name__=='__main__':
setloglevel('info') #print the log when configuring hosts, starting switches and controller
iperftest()
執行該 py 檔案
$ sudo python test.py
執行結果截圖
(3)使用 iperf 完成拓撲內 3 臺主機相互之間的簡單效能測試。
在上述 py 檔案中加入以下**
h1, h2, h3 = net.get('h1', 'h2', 'h3')
net.iperf((h1, h2))
net.iperf((h2, h3))
net.iperf((h1, h3))
執行結果截圖
個人問題:
1.不太理解 python 檔案中的 c0 控制器的作用。似乎在後面沒有用到!
2.是否可以使用 mininet 對 python 檔案進行視覺化?
在建立的個人目錄下,修改上述 mininet 指令碼,使之變成乙個線性拓撲(交換
機和主機數均為 3)。
各類效能限制保持不變。
使用 iperf 完成拓撲內 3 臺主機相互之間的簡單效能測試。
在發表一篇部落格,記錄**和主要步驟
2020 SDN第二次上機實驗
掌握mininet的自定義拓撲生成方法 命令列建立 python指令碼編寫 通過使用命令列建立 python 指令碼編寫生成拓撲,熟悉mininet 的基本功能 在建立的個人目錄下,修改上述 mininet 指令碼,使之變成乙個線性拓撲 交換機和主機數均為3 各類效能限制保持不變 使用iperf 完...
2020 SDN上機第三次作業
一 實驗目的 在實驗 2 的基礎上進一步熟悉 mininet 自定義拓撲指令碼,以及與損耗率相關的設定 初步了解 mininet 安裝時自帶的 pox 控制器指令碼編寫,測試路徑損耗率。二 實驗任務 h0 向 h1 傳送資料報,由於在 mininet 指令碼中設定了連線損耗率,在傳輸過程中會丟失一些...
2020 SDN第七次上機實驗
github倉庫 一 實驗目的 對 python 呼叫 opendaylight 的 rest api 方法有初步了解 本實驗需要用另一種方法完成上乙個實驗相同的功能,即通過 python 程式呼叫 opendaylight 的北向介面下發關於硬超時的流表,實現拓撲內主機在一定時間 內的網路通斷。實...