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 ): def __init__( self ): Topo.__init__( self ) L1 = 2 L2 = L1 * 2 L3 = L2 * 2 c = [] a = [] e = [] for i in range( L1 ): sw = self.addSwitch( 'c{}'.format( i + 1 ) ) c.append( sw ) for i in range( L2 ): sw = self.addSwitch( 'a{}'.format( L1 + i + 1 ) ) a.append( sw ) for i in range( L3 ): sw = self.addSwitch( 'e{}'.format( L1 + L2 + i + 1 ) ) e.append( sw ) for i in range( L1 ): sw1 = c[i] for sw2 in a[i//2::L1//2]: self.addLink( sw2, sw1 ) for i in range( 0, L2, 2 ): for sw1 in a[i:i+2]: for sw2 in e[i:i+2]: self.addLink( sw2, sw1 ) 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() ) }
实验难度:本次实验总体不难,容易理解,按照文档讲解来做基本上没有问题,但在解决与实验本身无关的报错上花了很多时间。
实验过程中遇到的问题及解决办法:
个人感想:通过本次实验,理解了可视化工具以及命令行生成拓扑的方法,能够使用Mininet交互界面管理拓扑,使用Python脚本构建SDN拓扑,遇到问题能更快找到解决办法。也感受到自己的不足,有很多不懂的东西需要不断去学习。