zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    bzoj3380+3381+3382+3383 Usaco2004 Open
    浅谈树链剖分(C++、算法、树结构)
    小学奥数 最大公约数与最小公倍数
    小学奥数 质数的和与积
    小学奥数 分苹果
    小学奥数 连乘积末尾0的个数
    小学奥数 李白的酒
    小学奥数 回文数个数
    小学奥数 等差数列末项计算
    小学奥数 地球人口承载力估计
  • 原文地址:https://www.cnblogs.com/kl107/p/13055439.html
Copyright © 2011-2022 走看看