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()
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()
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()
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()
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()
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()
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()
def start(self): Controller.start(self) sleep(1)
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')
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()
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()
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()
#!/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()
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()
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()
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()
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()
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()
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()