2020 SDN上機二次個人作業

2022-07-24 22:33:17 字數 2840 閱讀 2810

掌握 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 的北向介面下發關於硬超時的流表,實現拓撲內主機在一定時間 內的網路通斷。實...