实验一:SDN 拓扑实践

实验要求

(一)基本要求

使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py。
image
image

使用Mininet的命令行生成如下拓扑:
a) 3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。
image

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

在2 b)的基础上,在Mininet交互界面上新增1台主机并且连接到交换机上,再测试新拓扑的连通性。
image

编辑(一)中第1步保存的Python脚本,添加如下网络性能限制,生成拓扑:
a) h1的cpu最高不超过50%;
b) h1和s1之间的链路带宽为10,延迟为5ms,最大队列大小为1000,损耗率50。
image

image

(二)进阶要求

image

from mininet.topo import Topo
class MyTopo(Topo):
    def __init__(self):
        #初始化拓扑
        Topo.__init__(self)
        host = []
        switch = []
        for i in range(1, 17):
            ho=self.addHost("h" + str(i))
            host.append(ho)
        for i in range(1, 15):
            sw=self.addSwitch("s" + str(i))
            switch.append(sw)
        for i in range(0, 2):
            for j in range(2, 6):
                self.addLink(switch[i], switch[j])
        for i in range(2, 4):
            for j in range(6, 10):
                self.addLink(switch[i], switch[j])
            #s5,s6和s11,s12,s13,s14
        for i in range(4, 6):
            for j in range(10, 14):
                self.addLink(switch[i], switch[j])
        for i in range(0,8):
            self.addLink(switch[i+6],host[2*i])
            self.addLink(switch[i+6],host[2*i+1])
topos = {'mytopo': (lambda: MyTopo())}

个人总结:

用Mininet 可视化工具,可以生成网络拓扑结构,让网络结构直观明了。本次实验要求熟悉mininet 的相关操作,进阶操作要求掌握python 的基础使用与编写。经过这次实验,我对minnet工具有了基本的了解。

实验中遇到的一些问题:

第一步保存的python脚本无法修改,将其他可修改的python文件复制一份即可。

添加节点与节点间的路径时,使用pingall 指令无法正常得出答案,用浏览器搜索发现要加h4.setIp('10.0.0.4'),s1.attach('s1-eth4')指令。
image
image

posted @ 2022-09-15 17:38  liuzil  阅读(26)  评论(0)    收藏  举报