zoukankan      html  css  js  c++  java
  • 2019 SDN上机第1次作业

    1、安装轻量级网络仿真工具Mininet

    (1)使用github上的Mininet源安装,使用命令依次为:

    git clone https://github.com/mininet/mininet.git
    mininet/util/install.sh[options]
    mininet/util/install.sh -a
    

    (2)查看版本信息

    mn --version
    

    2、用字符命令搭建如下拓扑,要求写出命令

    (1)


    命令为:

    sudo mn --topo linear,3
    

    结果为

    输入net查看

    (2)


    命令为:

    sudo mn --topo tree,fanout=3,depth=2
    

    结果为

    输入net查看:

    (3)新建时要注意清空,以免上一次实验结果对下一次照成影响,命令为:

    sudo mn -c
    

    3. 利用可视化工具搭建如下拓扑,并要求支持OpenFlow 1.0 1.1 1.2 1.3,设置h1(10.0.0.10)、h2(10.0.0.11)、h3(10.0.0.12),拓扑搭建完成后使用命令验证主机ip,查看拓扑端口连接情况。

    (1)在mininet/examples目录下打开终端,执行以下命令(注意应该加上sudo,否则没有权限):

    然后进行绘制:

    (2)设置h1(10.0.0.10)、h2(10.0.0.11)、h3(10.0.0.12),并在开启CLI:

    (3)运行

    (4)通过net查看:

    (5)分别通过以下三个命令查看拓扑端口连接情况

    h1 ifconfig
    h2 ifconfig
    h3 ifconfig
    

    结果如下:


    4. 利用Python脚本完成如下图所示的一个Fat-tree型的拓扑(交换机和主机名需与图中一致,即s1s6,h1h8,并且链路正确,请给出Mininet相关截图)

    代码如下:

    from mininet.topo import Topo
    from mininet.net import Mininet
    from mininet.node import RemoteController,CPULimitedHost
    from mininet.link import TCLink
    from mininet.util import dumpNodeConnections
     
    class MyTopo( Topo ):
        "Simple topology example."
     
        def __init__( self ):
            "Create custom topo."
     
            # Initialize topology
            Topo.__init__( self )
            L1 = 2
            L2 = L1 * 2 
            L3 = L2
            c = []
            a = []
            e = []
              
            # add core ovs  
            for i in range( L1 ):
                    sw = self.addSwitch( 's{}'.format( i + 1 ) )
                    c.append( sw )
        
            # add aggregation ovs
            for i in range( L2 ):
                    sw = self.addSwitch( 's{}'.format( L1 + i + 1 ) )
                    a.append( sw )
        
            # add edge ovs
     
            # add links between core and aggregation ovs
            for i in range( L1 ):
                    sw1 = c[i]
                    for sw2 in a[i/2::L1/2]:
                    # self.addLink(sw2, sw1, bw=10, delay='5ms', loss=10, max_queue_size=1000, use_htb=True)
                            self.addLink( sw2, sw1 )
     
            # add links between aggregation and edge ovs
     
            #add hosts and its links with edge ovs
            count = 1
            for sw1 in a:
                    for i in range(2):
                        host = self.addHost( 'h{}'.format( count ) )
                        self.addLink( sw1, host )
                        count += 1
    topos = { 'mytopo': ( lambda: MyTopo() ) }
    

    运行命令

    sudo mn --custom fattree.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow10
    

    运行结果为:

    通过net查看:

  • 相关阅读:
    Rainmeter 雨滴桌面 主题分享
    行人检測之HOG特征(Histograms of Oriented Gradients)
    const和readonly差别
    ADB命令解析
    Java实现 蓝桥杯VIP 算法训练 接水问题
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
  • 原文地址:https://www.cnblogs.com/jiang1436/p/11787422.html
Copyright © 2011-2022 走看看