简体   繁体   English

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

[英]How to properly connect remote controller POX to mininet

I constructed a simple mininet topology with two hosts connected to switch controlled by a remote controller pox running the forwarding.L2_learning component. 我构建了一个简单的mininet拓扑,其中两台主机连接到由运行forwarding.L2_learning组件的远程控制器pox控制的交换机。 this works fine ping all is good. ping通正常,这很好。

Now i change the topology with two hosts and two switches each host connected to a switch, both switches are connected to the remote pox controller running the same component (forwarding.L2_learning ). 现在,我用两个主机和两个交换机更改拓扑,每个主机连接到一个交换机,两个交换机都连接到运行相同组件的远程pox控制器(forwarding.L2_learning)。

but this time the pingall is not working !! 但是这次pingall无法正常工作! i'm new to mininet and pox. 我是mininet和pox的新手。

The python script used to create the mininet topology is below 下面是用于创建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()

The controller I assume is running on localhost though you should replace the 我认为该控制器正在localhost上运行,尽管您应该替换

ip='0.0.0.0'

with

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

and replace 并更换

net.addLink(h1, s2)

with

net.addLink(s1, s2)

to connect the 2 switches 连接两个开关

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM