mininet實驗 命令延伸實驗擴展


mininet實驗一

參考博客一

參考博客二


實驗目的

  • 熟悉Mininet自定義拓撲三種實現方式:命令行創建、Python腳本編寫、交互式界面創建。

1.用命令行生成拓撲,並測試連通性,截圖

1)最小的網絡拓撲,一個交換機下面掛兩個主機。

sudo mn --topo minimal

注意:每次要新建拓撲時,需執行以下命令,防止上次操作對本次實驗的影響

sudo mn -c

建立后用exit來退出。


2)每個交換機連接一個主機,交換機間相連接。本例:4個主機,4個交換機。

sudo mn --topo linear,4

注意:每次要新建拓撲時,需執行以下命令,防止上次操作對本次實驗的影響

sudo mn -c

3)每個主機都連接到同一個交換機上。本例:3個主機,一個交換機。

sudo mn --topo single,3

注意:每次要新建拓撲時,需執行以下命令,防止上次操作對本次實驗的影響

sudo mn -c

4)定義深度和扇出形成基於樹的拓撲。本例:深度2,扇出2。

sudo mn --topo tree, fanout=2,depth=2

注意:每次要新建拓撲時,需執行以下命令,防止上次操作對本次實驗的影響

sudo mn -c

2.Python腳本定義拓撲

1)--topo linear,4。

  1. 在裝有mininet鏡像的虛擬機中新建文件linear.py,添加以下內容:
from mininet.net import Mininet
from mininet.topo import LinearTopo
Linear4 = LinearTopo(k=4)    #四個交換機,分別下掛一個主機
net = Mininet(topo=Linear4)
net.start()
net.pingAll()
net.stop()

建立python文件

2.修改文件linear.py為可執行文件。

chmod +x linear.py

3.運行腳本

sudo python linear.py


2) --topo single,3。

給出腳本內容,具體操作步驟見例子1。

from mininet.net import Mininet
from mininet.topo import SingleSwitchTopo
Single3 = SingleSwitchTopo(k=3)   #一個交換機下掛3個主機
net = Mininet(topo=Single3)
net.start()
net.pingAll()
net.stop()


3)--topo tree,depth=2,fanout=2。

給出腳本內容,具體操作步驟見例子1。

from mininet.net import Mininet
from mininet.topolib import TreeTopo
Tree22 = TreeTopo(depth=2,fanout=2)
net = Mininet(topo=Tree22)
net.start()
net.pingAll()
net.stop()


4)如果是非上述三種類型的拓撲,那么下面介紹一種適合各種拓撲形式的腳本創建模式。本例:1個交換機,2個主機,並且賦予主機IP地址。

給出腳本內容,具體操作步驟見例子1。

from mininet.net import Mininet
net = Mininet()
# Creating nodes in the network.
c0 = net.addController()
h0 = net.addHost('h0')
s0 = net.addSwitch('s0')
h1 = net.addHost('h1')
# Creating links between nodes in network
net.addLink(h0, s0)
net.addLink(h1, s0)
# Configuration of IP addresses in interfaces
h0.setIP('192.168.1.1', 24)
h1.setIP('192.168.1.2', 24)
net.start()
net.pingAll()
net.stop()


5)除了可以通過Python腳本創建基本的拓撲以外,還能在此基礎上對性能進行限制。觀察下面給出的腳本文件,addHost()語法可以對主機cpu進行設置,以百分數的形式;addLink()語法可以設置帶寬bw、延遲delay、最大隊列的大小max_queue_size、損耗率loss。

給出腳本內容,具體操作步驟見例子1。

from mininet.net import Mininet
from mininet.node import CPULimitedHost
from mininet.link import TCLink
net = Mininet(host=CPULimitedHost, link=TCLink)
c0 = net.addController()
s0 = net.addSwitch('s0')
h0 = net.addHost('h0')
h1 = net.addHost('h1', cpu=0.5)
h2 = net.addHost('h1', cpu=0.5)
net.addLink(s0, h0, bw=10, delay='5ms',
max_queue_size=1000, loss=10, use_htb=True)
net.addLink(s0, h1)
net.addLink(s0, h2)
net.start()
net.pingAll()
net.stop()

注意:每次要新建拓撲時,需執行以下命令,防止上次操作對本次實驗的影響

sudo mn -c

3.交互式界面創建主機、交換機等

首先我們要先運行mininet

sudo mn

1)添加主機h3

py net.addHost('h3')


2)添加link

py net.addLink(s1,net.get('h3'))


3)給交換機s1添加端口eth3用於連接h3

py s1.attach('s1-eth3')


4)給h3賦予IP(10.0.0.3)

py net.get('h3').cmd('ifconfig h3-eth0 10.3')


5)h1 ping h3

h1 ping -c1 10.3


4.測試網絡

1)展示所有的網絡信息。

px from mininet.util import dumpNodeConnections
py dumpNodeConnections(net.hosts)


2)所有節點的ping測試。

py net.pingAll()

進行這個實驗出現了小問題,如果按照之前的步驟來做會有error,運行下面的語句后才恢復正常。

s1 ping h3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM