如何将遥控器POX正确连接到mininet

时间:2016-05-23 11:49:06

标签: python mininet sdn openflow pox

我构建了一个简单的mininet拓扑,其中两个主机连接到交换机,由运行forwarding.L2_learning组件的远程控制器pox控制。这很好用ping一切都很好。

现在我用两个主机和两个交换机更改拓扑,每个主机连接到交换机,两个交换机都连接到运行相同组件的远程pox控制器(forwarding.L2_learning)。

但这次pingall无法正常工作!!我是mininet和pox的新手。

用于创建mininet拓扑的python脚本位于

之下
#!/usr/bin/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
from time import sleep


def myNetwork():
    net = Mininet(topo=None,
                  build=False,
                  ipBase='10.0.0.0/8')

    info('*** Adding controller\n')
    c0 = net.addController(name='c0',
                           controller=RemoteController,
                           ip='0.0.0.0',
                           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)
    h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)

    info('*** Add links\n')
    net.addLink(h1, s1)
    net.addLink(h2, s2)
    net.addLink(h1, 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')
    net.pingAll()
    net.stop()


if __name__ == '__main__':
    setLogLevel('info')
    myNetwork()

1 个答案:

答案 0 :(得分:0)

我假设控制器在localhost上运行,但你应该替换

ip='0.0.0.0'

c0=net.addController(name='c0',
                      controller=RemoteController,
                      ip='127.0.0.1',
                      protocol='tcp',
                      port=6633)

并替换

net.addLink(h1, s2)

net.addLink(s1, s2)

连接2个开关