我是mininet的新手,我想看看使用opendaylight(碳)控制器的网络拓扑 . 我试过命令:
sudo mn --topo linear,3 --mac \
--controller=remote,ip=10.109.253.152,port=6633 \
--switch ovs,protocols=OpenFlow13,stp=1
opendaylight可以成功显示整个拓扑 . 然后,我想通过单独使用python代码来显示相同的结果 . 但是,它不起作用 .
#!/usr/bin/python
from mininet.net import Mininet
from mininet.node import RemoteController, OVSSwitch
from mininet.log import info, setLogLevel
from mininet.cli import CLI
def RemoteCon():
net = Mininet(controller=RemoteController, switch=OVSSwitch)
c1 = net.addController('c1', ip='10.109.253.152',port=6633)
h1 = net.addHost('h1')
h2 = net.addHost('h2')
s1 = net.addSwitch('s1')
net.addLink(s1, h1)
net.addLink(s1, h2)
net.build()
net.start()
CLI(net)
net.stop()
if __name__ == '__main__':
setLogLevel('info')
RemoteCon()
哦,顺便说一句,交换机是否具有默认转发功能?有时,我有主机和交换机相互连接,主机可以在运行上面的代码时相互ping通,h1不能ping h2,反之亦然 .
提前致谢 .
1 回答
我假设你在OpenDaylight中使用l2switch功能 .
如果您搜索此论坛,您会发现其他人在使用l2switch时抱怨连接不一致 . 您可能会遇到错误,但在重新启动OpenDaylight后,它可能没问题 . 默认情况下,使用l2switch,它应该学习拓扑的链接,并创建流以允许所有主机ping每个其他主机 .
至于你的python脚本运行mininet,我没有看到任何明显的东西 . 你能看一下OpenDaylight karaf.log中的任何线索吗?或者查看OVS日志以获取其他线索?如果您只是在拓扑查看器中看不到任何内容,那么我的猜测是OVS根本没有连接到OpenDaylight .
要仔细检查一件事 . 我不知道python脚本是如何决定使用哪个openflow版本的,但也许它使用的是1.0,这与你的命令行有很大不同,后者将它设置为1.3?