2016-05-23 61 views
0

我构造有连接到开关通过运行forwarding.L2_learning部件的遥控器控制痘两个主机的简单mininet拓扑。这个工作很好,ping都很好。如何正确连接的遥控器来POX mininet

现在我改变与两个主机和两个开关连接到一个开关的每个主机的拓扑结构,两个开关都连接到运行相同的组分(forwarding.L2_learning)遥控痘控制器。

但此时pingall不工作!我是新来的mininet和痘。

用于创建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() 
+0

你是如何创建新的拓扑结构连接? – SotirisTsartsaris

+0

@SotirisTsartsaris我使用了mininet python API。 –

回答

0

控制器我想在本地主机上运行,​​虽然你应该

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个开关

+0

刚刚发现错误我被添加的链接:net.addLink(H1,S1)net.addLink(H2,S2),net.addLink(H1,S2);愚蠢的错误来解决这个问题,我用net.addLink(s1,s2)替换了net.addLink(h1,s2) –

+0

当我添加这个时,你让我了解了。你现在应该可以。 – SotirisTsartsaris

+0

请再说一个问题,在主机上运行命令的最佳方式是什么(例如h1),我应该使用h1.cmd()? –