战地老薯条

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  •  

    a) 第1步Mininet运行结果截图
    • b) 第2步的执行结果截图
      • c) 第3步提交修改过的“学号.py”代码、Mininet运行结果
      • 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
        topos = {'mytopo': (lambda:MyTopo())}
        def myNetwork():
            net = Mininet(topo=None,build=False,ipBase='10.0.0.0/8')
            info( '*** Adding controller\n' )
            c0=net.addController(name='c0',controller=Controller,protocol='tcp',port=6633)
            info( '*** Add switches\n')
            s1 = net.addSwitch('s1', cls=OVSKernelSwitch)
            s2 = net.addSwitch('s2', cls=OVSKernelSwitch)
            info( '*** Add hosts\n')
            h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None,cpu=0.5)
            h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)
            h3 = net.addHost('h3', cls=Host, ip='10.0.0.3', defaultRoute=None)
            h4 = net.addHost('h4', cls=Host, ip='10.0.0.4', defaultRoute=None)
            info( '*** Add links\n')
            net.addLink(s2, s1)
            net.addLink(s1, h1, bw=10, delay='5ms',max_queue_size=1000, loss=10, use_htb=True)
            net.addLink(s1, h2)
            net.addLink(s2, h4)
            net.addLink(s2, h3)
            info( '*** Starting network\n')
            net.build()
            info( '*** Starting controllers\n')
            for controller in net.controllers:
                controller.start()
            info( '*** Starting switches\n')
            net.get('s1').start([c0])
            net.get('s2').start([c0])
            info( '*** Post configure switches and hosts\n')
            CLI(net)
            net.stop()
        if __name__ == '__main__':
            setLogLevel( 'info' )
            myNetwork()

         

        进阶

      • 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
        topos = { 'mytopo': ( lambda: MyTopo() ) }
        class MyTopo( Topo ):
            def __init__( self ):
                Topo.__init__( self )
                switchs1=[]
                switchs2=[]
                switchs3=[]
                for i in range(1,3):
                    swit=self.addSwitch('s{}'.format(i))
                    switchs1.append(swit)
                for i in range(3,7):
                    swit=self.addSwitch('s{}'.format(i))
                    switchs2.append(swit)
                for i in range(7,15):
                    swit=self.addSwitch('s{}'.format(i))
                    switchs3.append(swit)
                for i in range(0,2):
                    for j in range(0,4):
                        self.addLink(switchs1[i],switchs2[j])
                
                for i in range(0,2):
                    for j in range(0,4):
                        self.addLink(switchs2[i],switchs3[j])
                
                for i in range(2,4):
                    for j in range(4,8):
                        self.addLink(switchs2[i],switchs3[j])
        
                host=0
                for i in range(7,15):
                    host=host+1
                    self.addHost('h{}'.format(host))
                    host=host+1
                    self.addHost('h{}'.format(host))
                    self.addLink('s{}'.format(i),'h{}'.format(host-1))
                    self.addLink('s{}'.format(i),'h{}'.format(host))

         实验总结:这次实验认识mininet,我是移动互联网,我对网络基本上是零基础,我完全不懂,大一phthon学了也忘记了。没办法多花时间,一开始很痛苦,Linux不会用。我看着老师材料一步一步摸索,然后慢慢理解,有步骤卡住了,网上也没太多资料,我只能看着老师的材料重新理解,不行就问老师。真的前面多花些时间后面轻松多了,我常常遇到问题。进阶题也不会很难,就是Python知识要重新回顾。一开始环境真的很重要,如果不吃一定苦把环境安好,后面会有更大的苦,这个无法逃避。老师文件上有些命令,自动分行,要在记事本变成在一行。这是sdn第一步,用工具搭建,命令搭建,Python搭建,这个必须掌握,后面基本上都是基于这个变化。命令多敲几遍就会了,不用特意去记,记住不用过一段时间都会忘记。这次实验复习了python,linux知识,非常有意义

posted on 2022-09-20 17:03  战地老薯条  阅读(32)  评论(0编辑  收藏  举报