- 第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 文件名