• 2020 SDN上机第一次作业


    实验一:Mininet源码安装和可视化拓扑工具

    一、实验任务

    使用源码安装Mininet的2.3.0d6版本,并使用可视化拓扑工具生成一个最简拓扑(1台交换机连接2台主机)。

    二、实验步骤

    1.实验环境

    安装了Ubuntu 16.04.7 Desktop amd64的虚拟机

    2.实验过程

    (1)源码安装

    安装过程中使用的命令

    $ mkdir 031802112huanglong

    $ sudo apt-get install git

    $ git clone git://github.com/mininet/mininet

    $ cd mininet

    $ sudo util/install.sh -a

    $ sudo mn --version

    显示 Enjoy Mininet 的字样则表示安装成功

    使用Mininet的CLI命令行测试基本功能:$ sudo mn --test pingall

    如果出现“cannot find required executable ifconfig.“执行下面的命令安装网络工具 net-tools

    $ sudo apt install net-tools

    (2)使用可视化工具

    使用的命令

    $ sudo ./mininet/examples/miniedit.py

    执行界面如下,可以拖动左侧边栏的主机 Host、交换机 Switch、路由器 Router、
    网络链路 NetLink、控制器 Controller 等组件到右侧空白处,实现网络拓扑的可视
    化仿真。 

    完成相关设置

    最简拓扑结构:

    目标拓扑:

     run起来,开始拓扑

     然后再 pingall 测试连通性

     最后File选择Export Level 2 Script,保存为py脚本。

    三、实验结果

     miniedittopo.py文件内容:

    #!/usr/bin/python

    from mininet.net import Mininet
    from mininet.node import Controller, RemoteController, OVSController
    from mininet.node import CPULimitedHost, Host, Node
    from mininet.node import OVSKernelSwitch, UserSwitch
    from mininet.node import IVSSwitch
    from mininet.cli import CLI
    from mininet.log import setLogLevel, info
    from mininet.link import TCLink, Intf
    from subprocess import call

    def myNetwork():

    net = Mininet( topo=None,
    build=False,
    ipBase='10.0.0.0/8')

    info( '*** Adding controller ' )
    c0=net.addController(name='c0',
    controller=Controller,
    protocol='tcp',
    port=6633)

    info( '*** Add switches ')
    s1 = net.addSwitch('s1', cls=OVSKernelSwitch)
    s2 = net.addSwitch('s2', cls=OVSKernelSwitch)

    info( '*** Add hosts ')
    h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)
    h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)
    h4 = net.addHost('h4', cls=Host, ip='10.0.0.4', defaultRoute=None)
    h3 = net.addHost('h3', cls=Host, ip='10.0.0.3', defaultRoute=None)

    info( '*** Add links ')
    net.addLink(h1, s1)
    net.addLink(h3, s1)
    net.addLink(s1, s2)
    net.addLink(s2, h4)
    net.addLink(s2, h2)

    info( '*** Starting network ')
    net.build()
    info( '*** Starting controllers ')
    for controller in net.controllers:
    controller.start()

    info( '*** Starting switches ')
    net.get('s1').start([c0])
    net.get('s2').start([c0])

    info( '*** Post configure switches and hosts ')

    CLI(net)
    net.stop()

    if __name__ == '__main__':
    setLogLevel( 'info' )
    myNetwork()

  • 相关阅读:
    Linked List Cycle leetcode java (链表检测环)
    Remove Duplicates from Sorted List II leetcode java
    Remove Duplicates from Sorted List leetcode java
    Merge Two Sorted Lists leetcode java
    Swap Nodes in Pairs leetcode java
    Median of Two Sorted Array leetcode java
    阿里云最便宜的四种域名注册
    nohup和&后台运行,进程查看及终止
    ipv6转ipv4 NAT64与DNS64基本原理概述
    ros使用pppoe拨号获取ipv6,并且下发IPV6的dns到客户机win7
  • 原文地址:https://www.cnblogs.com/huanglong1123/p/13609244.html
Copyright © 2020-2023  润新知