2019 SDN上机第1次作业

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

  • ubuntu换成阿里云的源之后,使用apt命令下载Mininet

    sudo apt-get install mininet

  • 安装成功

  • 试用Mininet

    sudo mn

用字符命令搭建如下拓扑,并写出命令

  • 拓扑1:

    sudo mn --topo=linear,3

  • 拓扑2:

    sudo mn --topo=tree,depth=2,fanout=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,查看拓扑端口连接情况。

  • 可视化界面

  • 在这边出了下面这个,我没找到解决的办法,只好采用git的方法重新安装mininet

  • 用git重新安装mininet之后,就是正常的,运行结果如下

    设置地址

    xterm查看每个的ip地址

利用Python脚本完成如下图所示的一个Fat-tree型的拓扑

  • 运行结果

  • python代码

    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=[]
    
            # 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 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)
    
            #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())}
    
原文地址:https://www.cnblogs.com/phd1999/p/11789161.html