SDN實驗一:mininet應用實踐


此為中國大學MOOC上溫州大學所開設的SDN軟件定義網絡課程配套實驗。

鏡像地址:https://pan.baidu.com/s/1qYN_MtUboPmruHda1DgrTA  提取碼:mhfi

實驗指導書地址:鏈接:https://pan.baidu.com/s/1XpDrV2car4qH-sXJq1zbPA  提取碼:s8un

實驗步驟:

1、用可視化界面創建拓撲

(1)下載鏡像源並裝入VMware虛擬機

(2)進入mininet/examples文件夾,輸入sudo py miniedit.py

 

 (3)創建簡單拓撲

    

      (4)在"Edit"->"Preference"可以配置支持的OpenFlow版本、默認終端、默認交換機等參數。

         

  2、用命令行創建拓撲

    (1)拓撲已預置好幾種類型,各類型介紹可參考:

    https://blog.csdn.net/wuliangtianzu/article/details/82689347

    (2)命令

類型 命令 參數說明
最小拓撲 sudo mn --topo minimal 1台交換機,底下連接2台主機
單交換機 sudo mn --topo single,5 1台交換機,底下掛5台主機,呈放射狀
線性拓撲 sudo mn --topo linear,3,2 線性拓撲,交換機個數,每台交換機下主機數
樹形拓撲 sudo mn --topo tree,3,2 樹形拓撲,層數,每層下交換機(主機)個數 

 

    例如創建樹形拓撲:

      3、用python程序創建拓撲

(1)官方api說明:http://mininet.org/api/functions_a.html#index_a

(2)例子:

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)//帶寬10M,延時5ms,最大隊列大小為1000,損耗率為10%
net.addLink(s0, h1)
net.addLink(s0, h2)
net.start()
net.pingAll()
net.stop()

使用sudo python mytopo.py運行

 ping測試成功。

(3)主要api說明

  1)addHost(self,name,cls=None,params)

  •  Name:加入的節點名字
  •     Cls:custom host class
  •     Params:可選參數
    • cpu: desired overall system CPU fraction
    • cores: (real) core(s) this host can run on

  可選參數見mininet/mininet/node.py中的config()

  例如:h1 = net.addHost('h1', cpu=0.5)

2)addLink(self,node1,node2,source_port,dest_port,cls,params)

  •  Node1:節點1
  •     Node2:節點2
  •     Sour_port(可選):源端口
  •     Dest_port(可選):目的端口
  •     Cls(可選):Link class
  •     Params:可選參數,具體見mininet/mininet/link.py的config()
    •    bw: bandwidth in b/s (e.g. '10m')
    •    delay: transmit delay (e.g. '1ms' )
    •     jitter: jitter (e.g. '1ms')
    •     loss: loss (e.g. '1%' )
    •     gro: enable GRO (False)
    •     txo: enable transmit checksum offload (True)
    •     rxo: enable receive checksum offload (True)
    •     speedup: experimental switch-side bw option
    •     use_hfsc: use HFSC scheduling
    •     use_tbf: use TBF scheduling
    •      latency_ms: TBF latency parameter
    •      enable_ecn: enable ECN (False)
    •      enable_red: enable RED (False)
    •      max_queue_size: queue limit parameter for netem

   例子:

  self.addLink( node1, node2, bw=10, delay='5ms', max_queue_size=1000, loss=10, use_htb=True): adds a bidirectional link with bandwidth, delay and loss characteristics, with a maximum queue size of 1000 packets using the Hierarchical Token Bucket rate limiter and netem delay/loss emulator. The parameter bw is expressed as a number in Mbit; delay is expressed as a string with units in place (e.g. '5ms', '100us', '1s'); loss is expressed as a percentage (between 0 and 100); and max_queue_size is expressed in packets.


免責聲明!

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



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