Ejemplo n.º 1
0
def emptyNet():

    net = Mininet(topo=None, build=False)
    c0 = Controller('c0', inNamespace=False)

    h1 = Host('h1')
    h2 = Host('h2')
    #intf1 = Intf("h1-eth1")
    #intf2 = Intf("h2-eth1")
    s1 = OVSSwitch('br0', inNamespace=False)    

    Link(h1, s1)
    Link(h2, s1)


    c0.start()
    s1.start([c0])

    net.start()    
    #s1.cmd('ovs-vsctl set bridge br0 protocols=OpenFlow13')
    CLI(net)

    net.stop()
    h1.stop()
    h2.stop()
    s1.stop()
    c0.stop()
Ejemplo n.º 2
0
def emptyNet():

    net = Mininet(topo=None, build=False)
    c0 = Controller('c0', inNamespace=False)

    h1 = Host('h1')
    h2 = Host('h2')
    #intf1 = Intf("h1-eth1")
    #intf2 = Intf("h2-eth1")
    s1 = OVSSwitch('br0', inNamespace=False)

    Link(h1, s1)
    Link(h2, s1)

    c0.start()
    s1.start([c0])

    net.start()
    #s1.cmd('ovs-vsctl set bridge br0 protocols=OpenFlow13')
    CLI(net)

    net.stop()
    h1.stop()
    h2.stop()
    s1.stop()
    c0.stop()
Ejemplo n.º 3
0
def topology():
    "Create a network."
    net = Mininet( link=TCLink, switch=OVSSwitch )
    c0 = Controller( 'c0', port=6634 )
    c1 = RemoteController( 'c1', ip='127.0.0.1', port=6633 )
    net.addController(c0)
    net.addController(c1) 

    
    print "*** Creating nodes"
    s0 = net.addSwitch('s0')
    ap1 = net.addBaseStation( 'ap1', ssid="ssid_ap1", mode="g", channel="5" )
    ap2 = net.addBaseStation( 'ap2', ssid="ssid_ap2", mode="g", channel="1" )
   
    
    sta1 = net.addStation( 'sta1', ip='192.168.0.1/24' )
    sta2 = net.addStation( 'sta2', ip='192.168.0.2/24' )
    sta3 = net.addStation( 'sta3', ip='192.168.0.3/24' )
    sta4 = net.addStation( 'sta4', ip='192.168.0.4/24' )
    h1 = net.addHost('h0', ip='192.168.0.5')
    h2 = net.addHost('h1', ip='192.168.0.6')
       
    print "*** Adding Link"
    net.addLink(sta1, ap1, bw=10, loss=0)
    net.addLink(sta2, ap1, bw=10, loss=0)
    net.addLink(sta3, ap2, bw=10, loss=0)
    net.addLink(sta4, ap2, bw=10, loss=0)
    net.addLink(ap1, s0)
    net.addLink(ap2, s0)
    net.addLink(h1, s0)
    net.addLink(h2, s0)

    net.build()
    c0.start()
    c1.start()
                                 
                                 
    ap1.start( [c0] )
    ap2.start( [c0] )
    #nat0.start( [c0] )
    s0.start([c1])

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

    print "*** Stopping network"
    net.stop()
Ejemplo n.º 4
0
def topology():
    "Create a network."
    net = Mininet(link=TCLink, switch=OVSSwitch)
    c0 = Controller('c0', port=6634)
    c1 = RemoteController('c1', ip='127.0.0.1', port=6633)
    net.addController(c0)
    net.addController(c1)

    print "*** Creating nodes"
    s0 = net.addSwitch('s0')
    ap1 = net.addBaseStation('ap1', ssid="ssid_ap1", mode="g", channel="5")
    ap2 = net.addBaseStation('ap2', ssid="ssid_ap2", mode="g", channel="1")

    sta1 = net.addStation('sta1', ip='192.168.0.1/24')
    sta2 = net.addStation('sta2', ip='192.168.0.2/24')
    sta3 = net.addStation('sta3', ip='192.168.0.3/24')
    sta4 = net.addStation('sta4', ip='192.168.0.4/24')
    h1 = net.addHost('h0', ip='192.168.0.5')
    h2 = net.addHost('h1', ip='192.168.0.6')

    print "*** Adding Link"
    net.addLink(sta1, ap1, bw=10, loss=0)
    net.addLink(sta2, ap1, bw=10, loss=0)
    net.addLink(sta3, ap2, bw=10, loss=0)
    net.addLink(sta4, ap2, bw=10, loss=0)
    net.addLink(ap1, s0)
    net.addLink(ap2, s0)
    net.addLink(h1, s0)
    net.addLink(h2, s0)

    net.build()
    c0.start()
    c1.start()

    ap1.start([c0])
    ap2.start([c0])
    #nat0.start( [c0] )
    s0.start([c1])

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

    print "*** Stopping network"
    net.stop()
Ejemplo n.º 5
0
def myNetwork():
    net = Mininet()

    info('***Adding controller\n')
    c0 = net.addController(name='c0',
                           controller=RemoteController,
                           ip='127.0.0.1',
                           protocol='tcp',
                           port=6633)

    info('***Adding switches\n')
    s2 = net.addSwitch('s2', cls=OVSKernelSwitch, dpid='00000000000000000002')
    s1 = net.addSwitch('s1', cls=OVSKernelSwitch, dpid='00000000000000000001')

    info('***Adding host\n')
    h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)
    h3 = net.addHost('h3', cls=Host, ip='10.0.0.3', defaultRoute=None)
    h4 = net.addHost('h4', cls=Host, ip='10.0.0.4', defaultRoute=None)
    h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)
    h5 = net.addHost('h5', cls=Host, ip='10.0.0.5', defaultRoute=None)

    info('***Adding links\n')
    net.addLink(s1, s2)
    net.addLink(s1, h1)
    net.addLink(s1, h2)
    net.addLink(s2, h3)
    net.addLink(s2, h4)
    net.addLink(s2, h5)

    info('***Starting network\n')
    net.build()

    info('***Starting controllers\n')
    for Controller in net.controllers:
        Controller.start()

    info('***Starting switches\n')
    net.get('s2').start([c0])
    net.get('s1').start([c0])

    info('***Post configure switches and hosts\n')

    CLI(net)
    net.stop()
Ejemplo n.º 6
0
def multiControllerNet():
    "Create a network from semi-scratch with multiple controllers."

    net = Mininet(switch=OVSSwitch)

    c0 = Controller("c0")

    print("*** Creating switches")
    s1 = net.addSwitch('s1')

    print("*** Creating hosts")
    #hosts1 = [ net.addHost( 'h%d' % n ) for n in ( 1, 3 ) ]
    #h1 = net.addHost("h1", ip="192.168.3.1")
    h11 = net.addHost("h11", ip="192.168.101.1")
    h12 = net.addHost("h12", ip="192.168.102.1")

    print("*** Creating links")
    #for h in hosts1:
    #    net.addLink( s1, h )
    #net.addLink(s1, h1)
    net.addLink(s1, h11)
    net.addLink(s1, h12)

    print("*** Starting network")
    net.addController(c0)
    net.build()
    c0.start()
    s1.start([c0])

    print("*** Testing network")
    #net.pingAll()
    #s1.cmd("ifconfig s1 192.168.5.10")

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

    print("*** Stopping network")
    net.stop()
Ejemplo n.º 7
0
def emptyNet():

    "Create an empty network and add nodes to it."

    net = Mininet( controller=Controller)

    info( '*** Adding controller\n' )
    ctrlRemote = RemoteController( 'c0', ip=ipControladorOF )
    net.addController(ctrlRemote)
    info('--> remote IP controller - c0:' + ctrlRemote.IP() +'\n')
    
    #ctrlLocal = RemoteController('c1', port=6633, ip="127.0.0.1")
    ctrlLocal = Controller('c1', port=6634)
    net.addController(ctrlLocal)
    info('--> local IP controller - c1:' + ctrlLocal.IP() +'\n')
    
    
    
    info( '*** Adding hosts\n' )
    lanH1 = net.addHost('h1', ip='10.0.0.1')
    lanH2 = net.addHost('h2', ip='10.0.0.2')
    lanIDS = net.addHost('h3', ip='10.0.0.3')
    lanRouter = net.addHost('h4')
    wanH1 = net.addHost('h5', ip='192.168.0.5')
    wanH2 = net.addHost('h6', ip='192.168.0.6')

    info( '*** Adding switch\n' )
    lanSw = net.addSwitch('s1')
    wanSw = net.addSwitch('s2')

    info( '*** Creating links\n' )
    net.addLink(lanH1, lanSw)
    net.addLink(lanH2, lanSw)
    net.addLink(lanIDS, lanSw)
    net.addLink(lanRouter, lanSw)
    net.addLink(lanRouter, wanSw)
    net.addLink(wanH1, wanSw)
    net.addLink(wanH2, wanSw)

    info( '*** Starting network\n')
    net.start()
    
    info('*** Starting controllers and switches')
    #link remote controller to s0 internal network swith
    ctrlRemote.start()
    #use remote controller
    lanSw.start([ctrlRemote])
    
    #use local controller
    #info('\n\n\n************ using local controller for swLAN')
    #lanSw.start([ctrlLocal])
    
    #start local controller to switch from s1 external network
    ctrlLocal.start()
    wanSw.start([ctrlLocal])
    
    info( '*** Executing hosts scripts\n')
    execCmds(net)
    
    sleep(5) # wai 5 seconds to start IDS!
    
    #log tests in files, the name of file and directory will be composed by date/time of start execution of test
    hst1 = net.getNodeByName('h1')
    hst1.cmdPrint('mkdir /var/log/tcpdump/'+date)
    arquivo = open('/var/log/tcpdump/'+date+'/teste.txt', 'w')
    textoTeste = """
    Test -
    \n Begin at:\n
    """
    data = datetime.datetime.now()
    textoTeste=textoTeste+"%s/%s/%s as %s:%s:%s:%s\n"%(data.year,data.month,data.day,data.hour,data.minute,data.second,data.microsecond)
    arquivo.write(textoTeste)
    
    ### Tests
    
    #
    # Start the testes here!
    #
    # Select the test to run. For that uncomment the line of the desired test.
	   
    info( '*** Executing Tests\n')
    textoTeste = textoTeste =teste1(net)
    #textoTeste = testeIperf(net)
    #textoTeste = testeIDSWakeupExternoInterno(net)
    #textoTeste = testeDDoSExtInt(net)
    #textoTeste = testeDDoSIntExt(net)
    #textoTeste = testeDDoSIntInt(net)
    
    # record attack test!
    textoTeste = textoTeste+"""
     
    put comment of test here
    
    """
    
    arquivo.write(textoTeste)

    ### end of test!
    
    # register the time that test was finished
    data = datetime.datetime.now()
    textoTeste=' \nFinished at:\n '+"%s/%s/%s as %s:%s:%s:%s\n"%(data.year,data.month,data.day,data.hour,data.minute,data.second,data.microsecond)
    arquivo.write(textoTeste)
    arquivo.close()

    info( '*** Running CLI\n' )
    #Uncomment below line for execute the test with CLI console
    #CLI( net )
    sleep(5)
    info('*** Stoping IDS process\n')
    desligarIDS(net,'h3')
    #thIds.join()

    info( '*** Stopping network\n' )
    lanSw.stop()
    ctrlRemote.stop()

    net.stop() 
    exit()
Ejemplo n.º 8
0
from mininet.link import Link

h1 = Host('h1')
h2 = Host('h2')
h3 = Host('h3')
h4 = Host('h4')
s1 = OVSSwitch('s1', inNamespace=False)
s2 = OVSSwitch('s2', inNamespace=False)
c0 = Controller('c0', inNamespace=False)
Link(h1, s1)
Link(h2, s1)
Link(h3, s2)
Link(h4, s2)
Link(s1, s2)
h1.setIP('10.0.0.1/24')
h2.setIP('10.0.0.2/24')
h3.setIP('10.0.0.3/24')
h4.setIP('10.0.0.4/24')
c0.start()
s1.start([c0])
s2.start([c0])
print h1.IP
print h2.IP
print h3.IP
print h4.IP
print 'Pinging ...'
print h1.cmd('ping -c3 ', h2.IP())
print h1.cmd('ping -c3 ', h3.IP())
s1.stop()
s2.stop()
c0.stop()
Ejemplo n.º 9
0
 def start(self):
     Controller.start(self)
     sleep(1)
Ejemplo n.º 10
0
class Topo(object):
    def __init__(self):
        self.ap_dict = {}
        self.sw_dict = {}
        self.host_dict = {}
        self.sta_dict = {}
        self.net = Mininet_wifi(accessPoint=OVSKernelAP)
        self.net.propagationModel(model="logDistance", exp=3)
        self.c1 = Controller('c1')
        self.add_nodes()

    def start(self):
        log.info("*** Starting network\n")
        # self.net.plotGraph(max_x=200, max_y=200)
        self.ts_netstart = time()
        # trigger attachment
        self.net.startMobility(time=0, repetitions=1)
        for sta_name, sta_obj in iteritems(self.sta_dict):
            self.net.mobility(sta_obj, 'start', time=1, position='0,0,0')
            self.net.mobility(sta_obj, 'stop', time=2, position='0,0,0')
        self.net.stopMobility(time=3)
        self.net.build()
        self.c1.start()
        for ap_name, ap_obj in iteritems(self.ap_dict):
            ap_obj.start([self.c1])
        sleep(5)  # wait for setup
        CLI_wifi(self.net)
        # TODO: clean this shit
        result = self.exec_cmd('h1', 'ping 10.0.0.13 -c 1')
        log.info(result)
        result = self.exec_cmd('sta1', 'ping 10.0.0.11 -c 1')
        log.info(result)
        result = self.exec_cmd('sta2', 'ping 10.0.0.12 -c 1')
        log.info(result)
        result = self.exec_cmd(
            'h1',
            'python main.py color_finder 10.0.0.11:18800 10.0.0.13:18800 &')
        log.info(result)
        result = self.exec_cmd(
            'sta1',
            'python main.py data_forwarder 172.17.0.2:18800 10.0.0.11:18800 True &'
        )
        log.info(result)
        result = self.exec_cmd(
            'sta2',
            'python main.py data_forwarder 10.0.0.13:18800 192.168.56.102:18900 False &'
        )
        log.info(result)

    def run_cli(self):
        log.info("*** Running CLI\n")
        CLI_wifi(self.net)

    def stop(self):
        log.info("*** Stopping network\n")
        self.net.stop()

    def exec_cmd(self, node_name, cmd):
        if node_name in self.sta_dict:
            node = self.sta_dict[node_name]
        elif node_name in self.host_dict:
            node = self.host_dict[node_name]
        else:
            assert False, 'no such node {}'.format(node_name)
        return node.cmd(cmd)

    def move_station(self, sta_name, next_pos=None, speed=None):
        assert sta_name in self.sta_dict
        sta = self.sta_dict[sta_name]
        if 'position' in sta.params:
            cur_x, cur_y, cur_z = sta.params['position']
            cur_x, cur_y, cur_z = float(cur_x), float(cur_y), float(cur_z)
        else:
            cur_x, cur_y, cur_z = 0.0, 0.0, 0.0
        if not next_pos:
            next_x, next_y, next_z = cur_x, cur_y, cur_z
        else:
            next_x, next_y, next_z = next_pos
        if not speed:
            duration = 1
        else:
            duration = int(
                sqrt((next_x - cur_x)**2 + (next_y - cur_y)**2 +
                     (next_z - cur_z)**2) / speed)
        log.info('[I] move {} from ({} {} {}) to ({} {} {}), dur={}\n'.format(
            sta_name, cur_x, cur_y, cur_z, next_x, next_y, next_z, duration))
        sta.setPosition('{}, {}, {}'.format(next_x, next_y, next_z))
        if duration > 0:
            sleep(duration)
        log.info('{} rssi: {}'.format(sta_name, sta.params['rssi']))

    def add_nodes(self, mode='containernet'):
        """
        add nodes to net.
        Args:
            mode (str): miminet or containernet
        Returns:
            ap_dict, sw_dict, host_dict, sta_dict
        """
        log.info("*** Creating nodes\n")
        if mode == 'mininet':
            h1 = self.net.addHost('h1',
                                  cls=Node,
                                  mac='00:00:00:00:00:01',
                                  ip='10.0.0.11/8')
            sta1 = self.net.addStation('sta1',
                                       cls=Station,
                                       mac='00:00:00:00:00:02',
                                       ip='10.0.0.12/8')
            sta2 = self.net.addStation('sta2',
                                       cls=Station,
                                       mac='00:00:00:00:00:03',
                                       ip='10.0.0.13/8')
        else:
            dimage_name = 'kumokay/ubuntu_wifi:v4'
            h1 = self.net.addHost('h1',
                                  cls=Docker,
                                  dimage=dimage_name,
                                  mac='00:00:00:00:00:01',
                                  ip='10.0.0.11/8')
            sta1 = self.net.addStation('sta1',
                                       cls=DockerStation,
                                       dimage=dimage_name,
                                       mac='00:00:00:00:00:02',
                                       ip='10.0.0.12/8')
            sta2 = self.net.addStation('sta2',
                                       cls=DockerStation,
                                       dimage=dimage_name,
                                       mac='00:00:00:00:00:03',
                                       ip='10.0.0.13/8')
        ap1 = self.net.addAccessPoint('ap1',
                                      ssid='new-ssid',
                                      mode='g',
                                      channel='1',
                                      position='0,0,0',
                                      range=100)
        ap2 = self.net.addAccessPoint('ap2',
                                      ssid='new-ssid',
                                      mode='g',
                                      channel='1',
                                      position='-100,0,0',
                                      range=60)
        ap3 = self.net.addAccessPoint('ap3',
                                      ssid='new-ssid',
                                      mode='g',
                                      channel='1',
                                      position='-150,0,0',
                                      range=100)
        self.net.addController(self.c1)

        # add all nodes to dict
        self.ap_dict['ap1'] = ap1
        self.ap_dict['ap2'] = ap2
        self.ap_dict['ap3'] = ap3
        self.host_dict['h1'] = h1
        self.sta_dict['sta1'] = sta1
        self.sta_dict['sta2'] = sta2

        log.info("*** Configuring wifi nodes\n")
        self.net.configureWifiNodes()

        log.info("*** Associating and Creating links\n")
        self.net.addLink(ap1, h1, delay='5ms')
        self.net.addLink(ap1, ap2, delay='10ms')
        self.net.addLink(ap2, ap3, delay='10ms')
Ejemplo n.º 11
0
info('*** Linking...')
for h in hosts_s0:
    net.addLink(s0, h)

for h in hosts_s1:
    net.addLink(s1, h)

#for h in hosts_s2:
#    net.addLink( s2, h )

net.addLink(s0, s1)
#net.addLink( s1, s2 )

info('*** start network')
net.build()
c0.start()
c1.start()
c2.start()

s0.start([c0])
s1.start([c1])
#s2.start( [c2] )

info('*** Ping all')
net.pingAll()

CLI(net)

net.stop()
Ejemplo n.º 12
0
def topology():
    "Create a network."
    net = Mininet( link=TCLink, switch=OVSSwitch )
    #create local controller for APs
    c0 = Controller( 'c0', port=6634 )
    #create controller for s0 (Ryuretic)
    #c1 = RemoteController( 'c1', ip='127.0.0.1', port=6633 )
    net.addController(c0)
    #net.addController(c1)
    
    print "*** Creating nodes"
    s0 = net.addSwitch('s0')
    ##################    Create Rogue APs    ###############################
    ap1 = net.addBaseStation( 'ap1', ssid="ssid_ap1", mode="g", channel="5",
                              position='10,30,0', range='20' )
    ap3 = net.addBaseStation( 'ap3', ssid="ssid_ap3", mode="g", channel="10",
                              position='50,30,0', range='20')

    ################   Create Rogue Stations   #############################
    sta1 = net.addStation( 'sta1', ip='192.168.0.11/24', mac='AA:BB:BB:BB:BB:01',
                           defaultRoute='via 192.168.0.224', position='10,40,0' )
    sta2 = net.addStation( 'sta2', ip='192.168.0.12/24', mac='AA:BB:BB:BB:BB:02',
                           defaultRoute='via 192.168.0.224', position='15,30,0'  )
    sta3 = net.addStation( 'sta3', ip='192.168.0.13/24', mac='AA:BB:BB:BB:BB:03',
                           defaultRoute='via 192.168.0.224', position='15,35,0' )
    sta4 = net.addStation( 'sta4', ip='10.0.0.1/24', mac='AA:BB:BB:BB:BB:11',
                           defaultRoute='via 10.0.0.22', position='50,20,0' )
    sta5 = net.addStation( 'sta5', ip='10.0.0.2/24', mac='AA:BB:BB:BB:BB:12',
                           defaultRoute='via 10.0.0.22', position='55,15,0' )
    sta6 = net.addStation( 'sta6', ip='10.0.0.3/24', mac='AA:BB:BB:BB:BB:13',
                           defaultRoute='via 10.0.0.22', position='45,125,0' )
    ##################    Create Hosts    ####################################
    h1 = net.addHost('h1', ip='192.168.0.1', mac='AA:AA:AA:AA:AA:01',
                     defaultRoute='via 192.168.0.224')
    h2 = net.addHost('h2', ip='192.168.0.2', mac='AA:AA:AA:AA:AA:02',
                     defaultRoute='via 192.168.0.224')
    h3 = net.addHost('h3', ip='192.168.0.3', mac='AA:AA:AA:AA:AA:03',
                     defaultRoute='via 192.168.0.224')
    h4 = net.addHost('h4', ip='192.168.0.4', mac='AA:AA:AA:AA:AA:04',
                     defaultRoute='via 192.168.0.224')
    h5 = net.addHost('h5', ip='192.168.0.5', mac='AA:AA:AA:AA:AA:05',
                     defaultRoute='via 192.168.0.224')
    h6 = net.addHost('h6', ip='192.168.0.6', mac='AA:AA:AA:AA:AA:06',
                     defaultRoute='via 192.168.0.224')
    ##################   Wireless AP Interface   #############################
    print "*** Adding Link"
    net.addLink(sta1, ap1, bw=10, loss=5)
    net.addLink(sta2, ap1, bw=10, loss=5)
    net.addLink(sta3, ap1, bw=10, loss=5)
    #####################    NAT1 Interface    ###############################   
    net.addLink(sta4, ap3, bw=10, delay=5, loss=5)
    net.addLink(sta5, ap3, bw=10, loss=5)
    net.addLink(sta6, ap3, bw=10, loss=5)
    #####################   Link devices to Switch    ######################## 
    net.addLink(ap1, s0)
    net.addLink(h1, s0)
    net.addLink(h2, s0)
    net.addLink(h3, s0)
    net.addLink(h4, s0)
    net.addLink(h5, s0)
    net.addLink(h6, s0)
    ######################   Create NAT for Internet   #######################
    nat = net.addHost( 'nat', cls=NAT, ip='192.168.0.224', mac='AA:AA:AA:AA:AA:AA',
                       subnet='192.168.0.0/24', inNamespace=False)
    net.addLink(nat, s0)
    ###########################     Create RAP        ########################
    nat1=net.addHost('nat1', cls=NAT, ip='192.168.0.22', mac='AA:CC:CC:CC:CC:CC',
                                  subnet='10.0.0.0/24', inNameSpace=False,
                                  inetIntf='nat1-eth0', localIntf='nat1-eth1',
                                  defaultRoute='via 192.168.0.224')
    net.addLink(nat1,s0)
    net.addLink(ap3, nat1, bw=100)
    #########################   Build Topology      ##########################
    net.build()
    #########################   Start Topology      ##########################     
    c0.start()
    #c1.start()                                                   
    ap1.start( [c0] )
    ap3.start( [c0] )
    s0.start( [c0] )
    ########################   Add RAP Interface    ########################## 
    nat1.setIP('10.0.0.22/8', intf='nat1-eth1')

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

    print "*** Stopping network"
    net.stop()
Ejemplo n.º 13
0
def topology():
    "Create a network."
    net = Mininet( link=TCLink, switch=OVSSwitch )
    #create local controller for APs
    c0 = Controller( 'c0', port=6634 )
    #create controller for s0 (Ryuretic)
    c1 = RemoteController( 'c1', ip='127.0.0.1', port=6633 )
    net.addController(c0)
    net.addController(c1)
    
    print "*** Creating nodes"
    s0 = net.addSwitch('s0')
    ap1 = net.addBaseStation( 'ap1', ssid="ssid_ap1", mode="g", channel="5" )
    ap2 = net.addBaseStation( 'ap2', ssid="ssid_ap2", mode="g", channel="1" )
    ###########
    ap3 = net.addBaseStation( 'ap3', ssid="ssid_ap3", mode="g", channel="10" )   
    sta1 = net.addStation( 'sta1', ip='192.168.0.1/24',
                           defaultRoute='via 192.168.0.224' )
    sta2 = net.addStation( 'sta2', ip='192.168.0.2/24',
                           defaultRoute='via 192.168.0.224' )
    sta3 = net.addStation( 'sta3', ip='192.168.0.3/24',
                           defaultRoute='via 192.168.0.224' )
    sta4 = net.addStation( 'sta4', ip='192.168.0.4/24',
                           defaultRoute='via 192.168.0.224' )
    #############
    sta5 = net.addStation( 'sta5', ip='10.0.0.2/24', defaultRoute='via 10.0.0.22' )
    sta6 = net.addStation( 'sta6', ip='10.0.0.3/24', defaultRoute='via 10.0.0.22')
    #############
    h1 = net.addHost('h1', ip='192.168.0.5', defaultRoute='via 192.168.0.224')
    h2 = net.addHost('h2', ip='192.168.0.6', defaultRoute='via 192.168.0.224')

    print "*** Adding Link"
    net.addLink(sta1, ap1, bw=10, loss=0)
    net.addLink(sta2, ap1, bw=10, loss=0)
    net.addLink(sta3, ap2, bw=10, loss=0)
    net.addLink(sta4, ap2, bw=10, loss=0)
    ###############
    net.addLink(sta5, ap3, bw=10, loss=0)
    net.addLink(sta6, ap3, bw=10, loss=0)     
    net.addLink(ap1, s0)
    net.addLink(ap2, s0)
    net.addLink(h1, s0)
    net.addLink(h2, s0)
    ######

    ##############################################################
    #Add NAT granting access to Internet
    nat = net.addHost( 'nat', cls=NAT, ip='192.168.0.224',
                       subnet='192.168.0.0/24', inNamespace=False)
    net.addLink(nat, s0)
    ##############################################################
    #Create RAP
    nat1=net.addHost('nat1', cls=NAT, ip='192.168.0.22',
                                  subnet='10.0.0.0/24', inNameSpace=False,
                                  inetIntf='nat1-eth0', localIntf='nat1-eth1',
                                  defaultRoute='via 192.168.0.224')

    net.addLink(nat1,s0)
    net.addLink(ap3, nat1)
    ###############################################################
    net.build()
    c0.start()
    c1.start()                            
                                 
    ap1.start( [c0] )
    ap2.start( [c0] )
    ap3.start( [c0] )
    s0.start( [c1] )
    nat1.setIP('10.0.0.22/8', intf='nat1-eth1')

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

    print "*** Stopping network"
    net.stop()
Ejemplo n.º 14
0
#!/usr/bin/python

from mininet.topo import Topo
from mininet.node import Host, OVSSwitch, Controller
from mininet.link import Link

h1 = Host('h1')
h2 = Host('h2')
s1 = OVSSwitch('s1', inNamespace=False)
c0 = Controller('c0', inNamespace=False)
Link(h1,s1)
Link(h2,s1)
h1.setIP('10.1/8')
h2.setIP('10.2/8')
c0.start()
s1.start([c0])
print h1.cmd('ping -c1', h2.IP())
s1.stop()
c0.stop()
Ejemplo n.º 15
0
def topology():
    "Create a network."
    net = Mininet(link=TCLink, switch=OVSSwitch)
    c0 = Controller('c0', port=6634)
    c1 = RemoteController('c1', ip='127.0.0.1', port=6633)
    net.addController(c0)
    net.addController(c1)

    print "*** Creating nodes"
    s0 = net.addSwitch('s0')
    ap1 = net.addBaseStation('ap1', ssid="ssid_ap1", mode="g", channel="5")
    ap2 = net.addBaseStation('ap2', ssid="ssid_ap2", mode="g", channel="1")

    sta1 = net.addStation('sta1',
                          ip='192.168.0.1/24',
                          defaultRoute='via 192.168.0.224')
    sta2 = net.addStation('sta2',
                          ip='192.168.0.2/24',
                          defaultRoute='via 192.168.0.224')
    sta3 = net.addStation('sta3',
                          ip='192.168.0.3/24',
                          defaultRoute='via 192.168.0.224')
    sta4 = net.addStation('sta4',
                          ip='192.168.0.4/24',
                          defaultRoute='via 192.168.0.224')
    h1 = net.addHost('h1', ip='192.168.0.5', defaultRoute='via 192.168.0.224')
    h2 = net.addHost('h2', ip='192.168.0.6', defaultRoute='via 192.168.0.224')

    print "*** Adding Link"
    net.addLink(sta1, ap1, bw=10, loss=0)
    net.addLink(sta2, ap1, bw=10, loss=0)
    net.addLink(sta3, ap2, bw=10, loss=0)
    net.addLink(sta4, ap2, bw=10, loss=0)
    net.addLink(ap1, s0)
    net.addLink(ap2, s0)
    net.addLink(h1, s0)
    net.addLink(h2, s0)

    ##############################################################
    #nat = net.addNAT('nat', ip=natIP, inNamespace=False)
    nat = net.addHost('nat',
                      cls=NAT,
                      ip='192.168.0.224',
                      subnet='192.168.0.0/24',
                      inNamespace=False)
    net.addLink(nat, s0)
    ##############################################################

    ##    s2 = net.addSwitch('s2')
    ##    nat1=net.addHost('nat1', cls=NAT, ip='192.168.0.220',
    ##                                  subnet='10.0.0.0/24',
    ##                                  inetIntf='nat1-eth0', localIntf='nat1-eth1',
    ##                                  **hostConfig)
    ##    net.addLink(nat1, s0)
    ##    natParams = {'ip' : '10.0.0.1/24'}
    ##    net.addLink(s2, nat1, intfName1='nat1-eth1', params1=natParams)
    ##
    ##    h3 = net.addHost('h3', ip='10.0.0.2', defaultRoute = 'via 10.0.0.1')
    ##    h4 = net.addHost('h4', ip='10.0.0.3', defaultRoute = 'via 10.0.0.1')
    ##    h5 = net.addHost('h5', ip='10.0.0.4', defaultRoute = 'via 10.0.0.1')
    ##    net.addLink(h3, s2)
    ##    net.addLink(h4, s2)
    ##    net.addLink(h5, s2)

    net.build()
    c0.start()
    c1.start()

    ap1.start([c0])
    ap2.start([c0])
    s0.start([c1])

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

    print "*** Stopping network"
    net.stop()
Ejemplo n.º 16
0
def topology():
    "Create a network."
    net = Mininet(link=TCLink, switch=OVSSwitch)
    #create local controller for APs
    c0 = Controller('c0', port=6634)
    #create controller for s0 (Ryuretic)
    c1 = RemoteController('c1', ip='127.0.0.1', port=6633)
    net.addController(c0)
    net.addController(c1)

    print "*** Creating nodes"
    s0 = net.addSwitch('s0')
    ap1 = net.addBaseStation('ap1', ssid="ssid_ap1", mode="g", channel="5")
    ap2 = net.addBaseStation('ap2', ssid="ssid_ap2", mode="g", channel="1")
    ###########
    ap3 = net.addBaseStation('ap3', ssid="ssid_ap3", mode="g", channel="10")
    sta1 = net.addStation('sta1',
                          ip='192.168.0.1/24',
                          defaultRoute='via 192.168.0.224')
    sta2 = net.addStation('sta2',
                          ip='192.168.0.2/24',
                          defaultRoute='via 192.168.0.224')
    sta3 = net.addStation('sta3',
                          ip='192.168.0.3/24',
                          defaultRoute='via 192.168.0.224')
    sta4 = net.addStation('sta4',
                          ip='192.168.0.4/24',
                          defaultRoute='via 192.168.0.224')
    #############
    sta5 = net.addStation('sta5',
                          ip='10.0.0.2/24',
                          defaultRoute='via 10.0.0.22')
    sta6 = net.addStation('sta6',
                          ip='10.0.0.3/24',
                          defaultRoute='via 10.0.0.22')
    #############
    h1 = net.addHost('h1', ip='192.168.0.5', defaultRoute='via 192.168.0.224')
    h2 = net.addHost('h2', ip='192.168.0.6', defaultRoute='via 192.168.0.224')

    print "*** Adding Link"
    net.addLink(sta1, ap1, bw=10, loss=0)
    net.addLink(sta2, ap1, bw=10, loss=0)
    net.addLink(sta3, ap2, bw=10, loss=0)
    net.addLink(sta4, ap2, bw=10, loss=0)
    ###############
    net.addLink(sta5, ap3, bw=10, loss=0)
    net.addLink(sta6, ap3, bw=10, loss=0)
    net.addLink(ap1, s0)
    net.addLink(ap2, s0)
    net.addLink(h1, s0)
    net.addLink(h2, s0)
    ######

    ##############################################################
    #Add NAT granting access to Internet
    nat = net.addHost('nat',
                      cls=NAT,
                      ip='192.168.0.224',
                      subnet='192.168.0.0/24',
                      inNamespace=False)
    net.addLink(nat, s0)
    ##############################################################
    #Create RAP
    nat1 = net.addHost('nat1',
                       cls=NAT,
                       ip='192.168.0.22',
                       subnet='10.0.0.0/24',
                       inNameSpace=False,
                       inetIntf='nat1-eth0',
                       localIntf='nat1-eth1',
                       defaultRoute='via 192.168.0.224')

    net.addLink(nat1, s0)
    net.addLink(ap3, nat1)
    ###############################################################
    net.build()
    c0.start()
    c1.start()

    ap1.start([c0])
    ap2.start([c0])
    ap3.start([c0])
    s0.start([c1])
    nat1.setIP('10.0.0.22/8', intf='nat1-eth1')

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

    print "*** Stopping network"
    net.stop()
Ejemplo n.º 17
0
def topology():
    "Create a network."
    net = Mininet(link=TCLink, switch=OVSSwitch)
    #create local controller for APs
    c0 = Controller('c0', port=6634)
    #create controller for s0 (Ryuretic)
    c1 = RemoteController('c1', ip='127.0.0.1', port=6633)
    net.addController(c0)
    net.addController(c1)

    print "*** Creating nodes"
    s0 = net.addSwitch('s0')
    ##################    Create Rogue APs    ###############################
    ap1 = net.addBaseStation('ap1',
                             ssid="ssid_ap1",
                             channel="1",
                             mode="g",
                             range='20')
    ap3 = net.addBaseStation('ap3',
                             ssid="ssid_ap3",
                             mode="g",
                             channel="6",
                             range='20')

    ################   Create Rogue Stations   #############################
    sta1 = net.addStation('sta1',
                          ip='192.168.0.11/24',
                          mac='AA:BB:BB:BB:BB:01',
                          defaultRoute='via 192.168.0.224')
    sta2 = net.addStation('sta2',
                          ip='192.168.0.12/24',
                          mac='AA:BB:BB:BB:BB:02',
                          defaultRoute='via 192.168.0.224')
    sta3 = net.addStation('sta3',
                          ip='192.168.0.13/24',
                          mac='AA:BB:BB:BB:BB:03',
                          defaultRoute='via 192.168.0.224')
    sta4 = net.addStation('sta4',
                          ip='10.0.0.1/24',
                          mac='AA:BB:BB:BB:BB:11',
                          defaultRoute='via 10.0.0.22')
    sta5 = net.addStation('sta5',
                          ip='10.0.0.2/24',
                          mac='AA:BB:BB:BB:BB:12',
                          defaultRoute='via 10.0.0.22')
    sta6 = net.addStation('sta6',
                          ip='10.0.0.3/24',
                          mac='AA:BB:BB:BB:BB:13',
                          defaultRoute='via 10.0.0.22')

    ##################    Create Hosts    ####################################
    h1 = net.addHost('h1',
                     ip='192.168.0.1',
                     mac='AA:AA:AA:AA:AA:01',
                     defaultRoute='via 192.168.0.224')
    h2 = net.addHost('h2',
                     ip='192.168.0.2',
                     mac='AA:AA:AA:AA:AA:02',
                     defaultRoute='via 192.168.0.224')
    h3 = net.addHost('h3',
                     ip='192.168.0.3',
                     mac='AA:AA:AA:AA:AA:03',
                     defaultRoute='via 192.168.0.224')
    h4 = net.addHost('h4',
                     ip='192.168.0.4',
                     mac='AA:AA:AA:AA:AA:04',
                     defaultRoute='via 192.168.0.224')
    h5 = net.addHost('h5',
                     ip='192.168.0.5',
                     mac='AA:AA:AA:AA:AA:05',
                     defaultRoute='via 192.168.0.224')
    h6 = net.addHost('h6',
                     ip='192.168.0.6',
                     mac='AA:AA:AA:AA:AA:06',
                     defaultRoute='via 192.168.0.224')
    ##################   Wireless AP Interface   #############################

    print "*** Adding Link"
    wl_bw = 15
    wl_delay = '5ms'
    wl_loss = 10

    net.addLink(ap1, sta1, bw=wl_bw, loss=wl_loss, delay=wl_delay)
    net.addLink(ap1, sta2, bw=wl_bw, loss=wl_loss, delay=wl_delay)
    net.addLink(ap1, sta3, bw=wl_bw, loss=wl_loss, delay=wl_delay)
    #####################    NAT1 Interface    ###############################
    net.addLink(ap3, sta4, bw=wl_bw, loss=wl_loss, delay=wl_delay)
    net.addLink(ap3, sta5, bw=wl_bw, loss=wl_loss, delay=wl_delay)
    net.addLink(ap3, sta6, bw=wl_bw, loss=wl_loss, delay=wl_delay)
    #####################   Link devices to Switch    ########################
    w_delay = '3ms'

    net.addLink(ap1, s0, bw=15, delay=w_delay)
    net.addLink(h1, s0, bw=15, delay=w_delay)
    net.addLink(h2, s0, bw=15, delay=w_delay)
    net.addLink(h3, s0, bw=15, delay=w_delay)
    net.addLink(h4, s0, bw=15, delay=w_delay)
    net.addLink(h5, s0, bw=15, delay=w_delay)
    net.addLink(h6, s0, bw=15, delay=w_delay)
    ######################   Create NAT for Internet   #######################
    nat = net.addHost('nat',
                      cls=NAT,
                      ip='192.168.0.224',
                      mac='AA:AA:AA:AA:02:24',
                      subnet='192.168.0.0/24',
                      inNamespace=False)
    net.addLink(nat, s0, bw=50)
    ###########################     Create RAP        ########################
    nat1 = net.addHost('nat1',
                       cls=NAT,
                       ip='192.168.0.22',
                       mac='AA:AA:AA:AA:00:22',
                       subnet='10.0.0.0/24',
                       inNameSpace=False,
                       inetIntf='nat1-eth0',
                       localIntf='nat1-eth1',
                       defaultRoute='via 192.168.0.224')
    net.addLink(nat1, s0, bw=15, delay=w_delay)
    net.addLink(ap3, nat1, bw=15, delay='2ms')
    #########################   Build Topology      ##########################
    net.build()
    #########################   Start Topology      ##########################
    c0.start()
    c1.start()
    ap1.start([c0])
    ap3.start([c0])
    s0.start([c1])
    ########################   Add RAP Interface    ##########################
    nat1.setIP('10.0.0.22/8', intf='nat1-eth1')

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

    print "*** Stopping network"
    net.stop()
Ejemplo n.º 18
0
def topology():
    "Create a network."
    net = Mininet( link=TCLink, switch=OVSSwitch )
    c0 = Controller( 'c0', port=6634 )
    c1 = RemoteController( 'c1', ip='127.0.0.1', port=6633 )
    net.addController(c0)
    net.addController(c1) 

    
    print "*** Creating nodes"
    s0 = net.addSwitch('s0')
    ap1 = net.addBaseStation( 'ap1', ssid="ssid_ap1", mode="g", channel="5" )
    ap2 = net.addBaseStation( 'ap2', ssid="ssid_ap2", mode="g", channel="1" )
   
    
    sta1 = net.addStation( 'sta1', ip='192.168.0.1/24', defaultRoute='via 192.168.0.224' )
    sta2 = net.addStation( 'sta2', ip='192.168.0.2/24', defaultRoute='via 192.168.0.224' )
    sta3 = net.addStation( 'sta3', ip='192.168.0.3/24', defaultRoute='via 192.168.0.224' )
    sta4 = net.addStation( 'sta4', ip='192.168.0.4/24', defaultRoute='via 192.168.0.224' )
    h1 = net.addHost('h1', ip='192.168.0.5', defaultRoute='via 192.168.0.224')
    h2 = net.addHost('h2', ip='192.168.0.6', defaultRoute='via 192.168.0.224')

    
       
    print "*** Adding Link"
    net.addLink(sta1, ap1, bw=10, loss=0)
    net.addLink(sta2, ap1, bw=10, loss=0)
    net.addLink(sta3, ap2, bw=10, loss=0)
    net.addLink(sta4, ap2, bw=10, loss=0)
    net.addLink(ap1, s0)
    net.addLink(ap2, s0)
    net.addLink(h1, s0)
    net.addLink(h2, s0)

    ##############################################################
    #nat = net.addNAT('nat', ip=natIP, inNamespace=False)
    nat = net.addHost( 'nat', cls=NAT, ip='192.168.0.224', subnet='192.168.0.0/24', inNamespace=False)
    net.addLink(nat, s0)
    ##############################################################

    
##    s2 = net.addSwitch('s2')
##    nat1=net.addHost('nat1', cls=NAT, ip='192.168.0.220',
##                                  subnet='10.0.0.0/24',
##                                  inetIntf='nat1-eth0', localIntf='nat1-eth1',
##                                  **hostConfig)
##    net.addLink(nat1, s0)
##    natParams = {'ip' : '10.0.0.1/24'}
##    net.addLink(s2, nat1, intfName1='nat1-eth1', params1=natParams)
##
##    h3 = net.addHost('h3', ip='10.0.0.2', defaultRoute = 'via 10.0.0.1')
##    h4 = net.addHost('h4', ip='10.0.0.3', defaultRoute = 'via 10.0.0.1')
##    h5 = net.addHost('h5', ip='10.0.0.4', defaultRoute = 'via 10.0.0.1')
##    net.addLink(h3, s2)
##    net.addLink(h4, s2)
##    net.addLink(h5, s2)
    
        
    net.build()
    c0.start()
    c1.start()
                                 
                                 
    ap1.start( [c0] )
    ap2.start( [c0] )
    s0.start([c1])

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

    print "*** Stopping network"
    net.stop()
Ejemplo n.º 19
0
Link(h2, e1)
Link(h3, e2)
Link(h4, e2)
Link(h5, e3)
Link(h6, e3)
Link(h7, e4)
Link(h8, e4)
h1.setIP('10.0.0.1/24')
h2.setIP('10.0.0.2/24')
h3.setIP('10.0.0.3/24')
h4.setIP('10.0.0.4/24')
h5.setIP('10.0.0.5/24')
h6.setIP('10.0.0.6/24')
h7.setIP('10.0.0.7/24')
h8.setIP('10.0.0.8/24')
c1.start()
a1.start([c1])
a2.start([c1])
print h1.IP
print h2.IP
print h3.IP
print h4.IP
print h5.IP
print h6.IP
print h7.IP
print h8.IP
print 'Pinging ...'
print h1.cmd('ping -c3 ', h2.IP())
print h1.cmd('ping -c3 ', h3.IP())
a1.stop()
a2.stop()
Ejemplo n.º 20
0
def topology(mode='containernet', is_enable_cli=True):
    """
    create a network.

    mode (str): miminet or containernet
    is_enable_cli (bool): running CLI
    """
    # c1 = RemoteController('c1', ip='localhost', port=6633)
    c1 = Controller('c1')
    net = Mininet_wifi(accessPoint=OVSKernelAP)
    net.propagationModel(model="logDistance", exp=3)

    info("*** Creating nodes\n")
    # mode = 'mininet'
    if mode == 'mininet':
        h1 = net.addHost('h1',
                         cls=Node,
                         mac='00:00:00:00:00:01',
                         ip='10.0.0.11/8')
        sta1 = net.addStation('sta1',
                              cls=Station,
                              mac='00:00:00:00:00:02',
                              ip='10.0.0.12/8')
        sta2 = net.addStation('sta2',
                              cls=Station,
                              mac='00:00:00:00:00:03',
                              ip='10.0.0.13/8')
    else:
        dimage_name = 'kumokay/ubuntu_wifi:v4'
        h1 = net.addHost('h1',
                         cls=Docker,
                         dimage=dimage_name,
                         mac='00:00:00:00:00:01',
                         ip='10.0.0.11/8')
        sta1 = net.addStation('sta1',
                              cls=DockerStation,
                              dimage=dimage_name,
                              mac='00:00:00:00:00:02',
                              ip='10.0.0.12/8')
        sta2 = net.addStation('sta2',
                              cls=DockerStation,
                              dimage=dimage_name,
                              mac='00:00:00:00:00:03',
                              ip='10.0.0.13/8')
    ap1 = net.addAccessPoint('ap1',
                             ssid='new-ssid',
                             mode='g',
                             channel='1',
                             position='0,0,0')
    net.addController(c1)

    info("*** Configuring wifi nodes\n")
    net.configureWifiNodes()

    info("*** Associating and Creating links\n")
    net.addLink(ap1, h1)

    # net.plotGraph(max_x=200, max_y=200)
    net.startMobility(time=0, repetitions=1)
    net.mobility(sta1, 'start', time=1, position='0.0, 0.0, 0.0')
    net.mobility(sta2, 'start', time=1, position='0.0, 0.0, 0.0')
    net.mobility(sta1, 'stop', time=22, position='40.0, 40.0, 0.0')
    net.mobility(sta2, 'stop', time=22, position='20.0, 20.0, 0.0')
    net.stopMobility(time=23)

    info("*** Starting network\n")
    net.build()
    c1.start()
    ap1.start([c1])

    if is_enable_cli:
        info("*** Running CLI\n")
        CLI_wifi(net)

    info("*** Stopping network\n")
    net.stop()