实验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不熟悉,阅读进阶要求参考代码刚开始不是很理解,但认真研究后也大概理解并顺利完成。总体来说收获满满!

浙公网安备 33010602011771号