首页 文章

mininet使用python代码连接到远程ODL控制器

提问于
浏览
0

我是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 回答

  • 0

    我假设你在OpenDaylight中使用l2switch功能 .

    如果您搜索此论坛,您会发现其他人在使用l2switch时抱怨连接不一致 . 您可能会遇到错误,但在重新启动OpenDaylight后,它可能没问题 . 默认情况下,使用l2switch,它应该学习拓扑的链接,并创建流以允许所有主机ping每个其他主机 .

    至于你的python脚本运行mininet,我没有看到任何明显的东西 . 你能看一下OpenDaylight karaf.log中的任何线索吗?或者查看OVS日志以获取其他线索?如果您只是在拓扑查看器中看不到任何内容,那么我的猜测是OVS根本没有连接到OpenDaylight .

    要仔细检查一件事 . 我不知道python脚本是如何决定使用哪个openflow版本的,但也许它使用的是1.0,这与你的命令行有很大不同,后者将它设置为1.3?

相关问题