• Mininet 系列实验(五)


    • 实验内容

    实现一个单个交换机的拓扑,添加一个交换机,和N个主机到网络中。交换机和主机之间的每个链路能够设置带宽、延迟时间、以及丢包率。创建一个包含一个交换机和四个主机的网络,使用iperf测试主机之间的带宽。
    拓扑图如下所示:
    拓扑图

    • 参考

    Mininet设置带宽之简单性能测试

    • 实验环境

    虚拟机: Oracle VM VirtualBox Ubuntu16.04LTS
    PS:原文中说「本实验需要两台虚拟机,分别安装 OpenDaylight 和 Mininet。」然而实验过程中似乎并不需要

    • 实验步骤

    1. 进入mininet/custom目录下,创建脚本

    # cd mininet/custom
    # vim mymininet1.py
    

    PS:原文中的代码为「vi mymininet1.py」,建议采用「vim mymininet1.py」
    脚本内容如下:

    #!/usr/bin/python
     
    from mininet.topo import Topo
    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
     
    class SingleSwitchTopo(Topo):
        "Single switch connected to n hosts."
        def __init__(self, n=2, **opts):
            Topo.__init__(self, **opts)
            switch = self.addSwitch('s1')
            for h in range(n):
                #Each host gets 50%/n of system CPU
                host = self.addHost('h%s' % (h + 1), cpu=.5/n)
                #10 Mbps, 5ms delay, 0% Loss, 1000 packet queue
                self.addLink(host, switch, bw=10, delay='5ms', loss=0, max_queue_size=1000, use_htb=True)
     
    def perfTest():
        "Create network and run simple performance test"
        topo = SingleSwitchTopo(n=4)
        net = Mininet(topo=topo,host=CPULimitedHost, link=TCLink)
        net.start()
        print "Dumping host connections"
        dumpNodeConnections(net.hosts)
        print "Testing network connectivity"
        net.pingAll()
        print "Testing bandwidth between h1 and h4"
        h1, h4 = net.get('h1', 'h4')
        net.iperf((h1, h4))
        net.stop()
     
    if __name__=='__main__':
        setLogLevel('info')
        perfTest()
    

    2. 执行该脚本

    # chmod +x mymininet1.py
    # ./mymininet.py
    

    或者

    # python mymininet1.py
    

    PS:原文中这里的文件名与其之前创建的不一样,应该是作者笔误,正确的应该如上所示

    3. 执行脚本结果如下

    实验结果

    • 总结

    1. 实验过程中遇到的问题

    • 还是老问题,脚本看不太懂

    2. 收获

    • 本次实验基本上还是 Python 脚本实现自定义拓扑,只不过增加了设置链路的一些参数例如带宽、延迟及丢包率等,同时使用 iperf 测试主机间的带宽性能
  • 相关阅读:
    RabbitMQ指南之一:"Hello World!"
    Java8新特性之五:Optional
    Java8新特性之四:接口默认方法和静态方法
    Java8新特性之三:Stream API
    Java8新特性之二:方法引用
    Notepad++编辑器——Verilog代码片段和语法检查
    数电(5):半导体存储电路
    数电(4):组合逻辑电路
    DDR3_新版(1):IP核调取和官方例程仿真
    数电(2):逻辑代数的基本定理
  • 原文地址:https://www.cnblogs.com/multhree/p/9386404.html
Copyright © 2020-2023  润新知