2017-03-28 5 views
0

Au départ, je voulais créer une topologie complexe (plus de commutateurs connectés les uns aux autres), mais même cette simple ne fonctionne pas. Je ne suis pas en mesure d'obtenir une connexion de travail, par exemple. 'H1 ping h2'topologie personnalisée Mininet-wifi

Voici la topologie: topology

Il est le script qui doit créer la topologie équivalente:

!/usr/bin/python 

""" 
Setting the position of Nodes (only for Stations and Access Points) and providing mobility. 

""" 

from mininet.net import Mininet 
from mininet.node import Controller, RemoteController, OVSKernelAP 
from mininet.link import TCLink 
from mininet.cli import CLI 
from mininet.log import setLogLevel 

def topology(): 

    "Create a network." 
    net = Mininet(controller=Controller, link=TCLink, accessPoint=OVSKernelAP) 

    print "*** Creating nodes" 
    h1 = net.addHost('h1', mac='00:00:00:00:00:01', ip='10.0.0.1/8') 
    h2 = net.addHost('h2', mac='00:00:00:00:00:11', ip='10.0.1.1/8') 

    sta1 = net.addStation('sta1', mac='00:00:00:00:00:02', ip='10.0.0.2/8', position='50,50,0') 
    sta2 = net.addStation('sta2', mac='00:00:00:00:00:03', ip='10.0.0.3/8', position='40,50,0') 
    sta3 = net.addStation('sta3', mac='00:00:00:00:00:04', ip='10.0.0.4/8', position='20,50,0') 

    ap1 = net.addAccessPoint('ap1', ssid= 'new-ssid', mode= 'g', channel= '5', position='25,50,0', range='35') 
    ap2 = net.addAccessPoint('ap2', ssid= 'new-ssid', mode= 'g', channel= '5', position='75,50,0', range='35') 

    c1 = net.addController('c1') 

    s1 = net.addSwitch('s1') 

    #net.runAlternativeModule('../module/mac80211_hwsim.ko') 

    print "*** Configuring wifi nodes" 
    net.configureWifiNodes() 

    print "*** Associating and Creating links" 

    net.addLink(ap1, s1) 
    net.addLink(ap2, s1) 
    net.addLink(s1, c1) 
    #net.addLink(ap1, ap2) 

    net.addLink(s1, h1) 
    net.addLink(s1, h2) 

    net.addLink(ap1, sta1) 
    net.addLink(ap1, sta2) 
    net.addLink(ap1, sta3) 

    print "*** Starting network" 
    net.build() 
    c1.start() 
    ap1.start([c1]) 
    ap2.start([c1]) 

    """uncomment to plot graph""" 
    net.plotGraph(max_x=100, max_y=100) 

    net.startMobility(startTime=0) 
    net.mobility(sta1, 'start', time=1, position='0.0,50.0,0.0') 
    net.mobility(sta1, 'stop', time=30, position='100.0,50.0,0.0') 
    net.stopMobility(stopTime=31) 

    print "*** Running CLI" 
    CLI(net) 

    print "*** Stopping network" 
    net.stop() 

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

Comme déjà dit, je ne suis pas en mesure de même ping h1 et h2 :( J'ai même essayé d'utiliser RemoteController mais on m'a donné le même résultat. Toute idée de ce qui pourrait être erroné?

Répondre

2

S'il vous plaît considérer le ch ANGES ci-dessous:

from mininet.node import Controller, RemoteController, OVSKernelAP, OVSSwitch 
net = Mininet(controller=Controller, link=TCLink, accessPoint=OVSKernelAP, switch=OVSSwitch) 
c1 = net.addController('c1', controller=Controller) 
s3 = net.addSwitch('s3') 

Supprimer:
net.addLink(s1, c1)

Ajouter:
s3.start([c1])

S'il vous plaît noter que si vous définissez à la fois ap et passer avec le même ID (par exemple s1, ap1), ils auront le même DPID par défaut. Donc, j'ai dû renommer s1 en s3. D'autre part, vous pouvez définir le DPID en tant que paramètre lorsque vous ajoutez le nœud si vous le souhaitez.