实验1:SDN拓扑实践

一、实验要求

a) Mininet运行结果截图

b) 2的执行结果截图

3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。

3台主机,每个主机都连接到同1台交换机上。

c) 3修改过的“学号.py”代码、Mininet运行结果

二、进阶要求


#使用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 * 2  

        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

        for i in range( L3 ):

                sw = self.addSwitch( 's{}'.format( L1 + L2 + i + 1 ) )

                e.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 links between aggregation and edge ovs

        for i in range( 0, L2, 2 ):

                for sw1 in a[i:i+2]:

	                for sw2 in e[i*2:i*2+4]:  

                            self.addLink( sw2, sw1 )



        #add hosts and its links with edge ovs

        count = 1

        for sw1 in e:

                for i in range(2):

                	host = self.addHost( 'h{}'.format( count ) )

                	self.addLink( sw1, host )

                	count += 1

topos = { 'mytopo': ( lambda: MyTopo() ) }

三、个人总结

a)实验难度

  • 如果只是按照文档做实验不算太难,但要深刻理解拓扑结构并灵活运用还是要认真思考和学习

b)实验过程遇到的困难及解决办法

  • 有python命令要对应地改成python3才能正常运行,对于命令要注意版本问题,理解命令,而不是直接复制粘贴。
  • 修改032002234.py文件时,发现文件只读。刚开始把文件内容复制又新建了一个文件进行修改,后来发现仅有根用户拥有读写权限,而普通用户只可读文件,只要将用户切换为管理员,就可以编辑py文件。
  • 最后的进阶要求中,我复制实验指导pdf中提供的链接博文修改保存后,报错TabError: inconsistent use of tabs and spaces in indentation,发现是格式出现错误,删除报错行前的空格重新输入就好了。

c)个人感想

  • sdn实验可以提升自学能力,通过本次实验,我进一步理解拓扑结构的原理和创建,因为对python不熟悉,阅读进阶要求参考代码刚开始不是很理解,但认真研究后也大概理解并顺利完成。总体来说收获满满!
posted @ 2022-09-13 20:44  小八丸  阅读(100)  评论(0)    收藏  举报