2016-05-23 11 views
0

Ich konstruierte eine einfache Mininet-Topologie mit zwei Hosts verbunden zu wechseln von einer Fernbedienung gesteuert Pox mit der Forwarding.L2_learning-Komponente. das funktioniert gut ping alles ist gut.So verbinden Sie die Fernbedienung POX mit Mininet

Jetzt ändere ich die Topologie mit zwei Hosts und zwei Switches, wobei jeder Host mit einem Switch verbunden ist, beide Switches sind mit dem Remote-Pox-Controller verbunden, der dieselbe Komponente ausführt (forwarding.L2_learning).

aber dieses Mal funktioniert der Pingall nicht !! Ich bin neu in Mininet und Pocken.

Das Python-Skript verwendet, um die MININET Topologie zu erstellen, ist unter

#!/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

verbinden Wie haben Sie die neue Topologie erstellen? – SotirisTsartsaris

+0

@SotirisTsartsaris Ich habe die Mininet Python API verwendet. –

Antwort

0

Der Controller Ich gehe davon aus auf localhost läuft, obwohl Sie die

ip='0.0.0.0' 

mit

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

ersetzen soll und ersetzen

net.addLink(h1, s2) 

mit

net.addLink(s1, s2) 

den 2-Switches

+0

Habe gerade den Fehler herausgefunden, dass ich die Links hinzugefügt habe: net.addLink (h1, s1) net.addLink (h2, s2), net.addLink (h1, s2); dummer Fehler, um das zu beheben Ich ersetzte net.addLink (h1, s2) mit net.addLink (s1, s2) –

+0

Sie haben mich nur, wenn ich das hinzugefügt habe. Du solltest jetzt in Ordnung sein. – SotirisTsartsaris

+0

nur noch eine Frage, was ist der beste Weg, um Befehle auf einem Host (h1 zum Beispiel) auszuführen, sollte ich h1.cmd() ?? –

Verwandte Themen