Mininet custom topology and simple test
本篇主要是建立基本拓樸以及簡單的自定義拓樸以下是最基本的拓樸,一台Switch對兩台Host
#!/usr/bin/python #coding:utf-8 from mininet.net import Mininet from mininet.topo import Topo topo = Topo() # 建立一個新拓樸 topo.addSwitch("s1") # 增加Switch topo.addHost("h1") # 增加Host topo.addHost("h2") topo.addLink("h1", "s1") # 連接Host到S1上 topo.addLink("h2", "s1") net = Mininet(topo) # 開啟mininet並執行上面Topo,下面則是執行相關測試 net.start() net.pingAll() net.iperf() net.stop()
以下這個則使用mininet中Link 類別裡面的TCLink,這個類別主要使用Linux的流量控制能力,讓我們可以設定個別Link的頻寬以及延遲。
這邊的拓樸是2台Switch各別連接一台Host
#!/usr/bin/python #coding:utf-8 from mininet.net import Mininet from mininet.topo import Topo from mininet.link import TCLink # 匯入該類別後可以控制頻寬與延遲 from mininet.cli import CLI # 這邊只是要使用CLI topo = Topo() # Create an empty topology topo.addSwitch("s1") # 增加Switch topo.addSwitch("s2") topo.addHost("h1") # 增加Host topo.addHost("h2") # 連接Host與Switch,並加上延遲時間 topo.addLink("h1", "s1", bw=10.0, delay='10ms', use_htb=True) topo.addLink("h2", "s2", bw=15.0, delay='10ms', use_htb=True) topo.addLink("s1", "s2", bw=10.0, delay='20ms', use_htb=True) net = Mininet(topo=topo, link=TCLink) #這邊Link要定義為TCLink形式 net.start() CLI(net) # 這邊是把mininet的CLI叫出來 net.stop()
參考的程式碼中常有use_htb,htb代表 hierarchical token bucket
沒有留言:
張貼留言