zoukankan      html  css  js  c++  java
  • 实验 2:Mininet 实验——拓扑的命令脚本生成

    一、实验目的

       掌握 Mininet 的自定义拓扑生成方法:命令行创建、Python 脚本编写

    二、实验任务

       通过使用命令行创建、Python 脚本编写生成拓扑,熟悉 Mininet 的基本功能。

    三、实验步骤

    1、实验环境
       安装了 Ubuntu 16.04的虚拟机
    2、实验过程
    (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 脚本自定义创建

       执行命令:
       $ nano mytopo.py // 复制 Python 代码到 py 文件中
       $ sudo python mytopo.py // 执行 py 文件

    • 修改Mininet脚本,使之变成线性拓扑,且用iperf测试性能
    
    
    #coding=UTF-8
    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',cpu=0.5)
        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(h2,s2,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(s3,s2)
        net.addLink(s1,s2)
        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"
        h1,h2,h3 = net.get('h1','h2','h3')
        net.iperf((h1,h3))
        net.iperf((h2,h3))
        net.iperf((h1,h2))
        net.stop()
    if __name__=='__main__':
        setLogLevel('info') #print the log when Configuring hosts, starting switche$
        IperfTest()
    
    
    
    
    
    
    
    
    • 运行程序

    四、实验心得

       1.交换机之间也要连接,不能忘记了.
       2.Python语言中要注意缩进的问题.
       

       

  • 相关阅读:
    15. DML, DDL, LOGON 触发器
    5. 跟踪标记 (Trace Flag) 834, 845 对内存页行为的影响
    4. 跟踪标记 (Trace Flag) 610 对索引组织表(IOT)最小化日志
    14. 类似正则表达式的字符处理问题
    01. SELECT显示和PRINT打印超长的字符
    3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息
    2. 跟踪标记 (Trace Flag) 3604, 3605 输出DBCC命令结果
    1. 跟踪标记 (Trace Flag) 1117, 1118 文件增长及空间分配方式
    0. 跟踪标记 (Trace Flag) 简介
    SpringBoot + Redis + Shiro 实现权限管理(转)
  • 原文地址:https://www.cnblogs.com/fzu031802340/p/13674504.html
Copyright © 2011-2022 走看看