- 第1步Mininet运行结果截图
![]()
- 第2步的执行结果截图
![]()
![]()
- 第3步提交修改过的“学号.py”代码、Mininet运行结果
![]()
#!/usr/bin/env python
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
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(s1, h2)
net.addLink(h1, s1,bw=10,delay='5ms',max_queue_size=1000,loss=50)
net.addLink(s2, h3)
net.addLink(s2, h4)
net.addLink(s1, s2)
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()
个人总结
本次实验主要是学会了使用Mininet的可视化工具生成拓扑和使用Mininet的命令行生成特定拓扑和使用Mininet交互界面管理SDN拓扑,生成不同要求的拓扑,并且在此基础上增加主机,并且却宝宝其连通性,以及使用Python脚本构建SDN拓扑,在这个过程中也遇到了一些没有见过的问题,在遇到问题时,自己通过查资料或者询问同学来解决问题。
1、可视化界面无法打开

解决办法

2、在第三步增加主机的时候遇到了问题

解决办法:增加主机时选择需要连接哪个接口,并且需要配置IP地址,IP要大写


3、python文件显示可读,不可修改

解决办法:sudo chmod a+w 文件名




