yusuf sezgi
yusuf sezgi

Reputation: 1

Importing mininet-wifi topology to NetFlow Analyzer on ubuntu for J-Flow Network Monitoring

I am trying to monitor a simple network using NetFlow Analyzer/J-Flow. I have a topology made with mininet-wifi and I am trying to monitor it but when I try to export my flow (by first writing my router's ip address) it just says 'ping test failed'.

Here is my mininet-wifi topology for reference :

from mininet.net import Mininet
from mininet.node import Controller, OVSKernelSwitch, Host
from mininet.log import setLogLevel, info
from mn_wifi.cli import CLI
from mn_wifi.net import Mininet_wifi

def create_network():
    net = Mininet_wifi(controller=Controller, switch=OVSKernelSwitch)

    info('Adding routers...\n')
    router1 = net.addHost('router1', ip='192.168.1.1/24', cls=Host)
    router2 = net.addHost('router2', ip='192.168.2.1/24', cls=Host)
    
    info('Adding switches...\n')
    switch1 = net.addSwitch('switch1')
    switch2 = net.addSwitch('switch2')
    
    info('Adding access points...\n')
    ap1 = net.addAccessPoint('ap1', ssid='gaziag1', mode='g', channel='1', position='0,10,0', range=20)
    ap2 = net.addAccessPoint('ap2', ssid='gaziag2', mode='g', channel='1', position='20,20,0', range=20)
    ap3 = net.addAccessPoint('ap3', ssid='gaziag3', mode='g', channel='1', position='50,10,0', range=20)
    
    info('Adding stations...\n')
    sta1 = net.addStation('sta1', ip='192.168.1.2/24', position='0,0,0', range=10)
    sta2 = net.addStation('sta2', ip='192.168.2.2/24', position='30,20,0', range=10)
    sta3 = net.addStation('sta3', ip='192.168.2.3/24', position='50,0,0', range=10)
    
    info('Adding controller...\n')
    c1 = net.addController('c1')
    
    net.configureWifiNodes()
    
    info('Creating links...\n')
    net.addLink(ap1, switch1)
    net.addLink(ap2, switch1)
    net.addLink(ap2, switch2)
    net.addLink(ap3, switch2)
    net.addLink(router1, switch1)
    net.addLink(router2, switch2)
    net.addLink(router1, router2)

    info("* Starting network\n")
    net.build()
    net.start()

    # Enable IP forwarding on routers
    router1.cmd('sysctl -w net.ipv4.ip_forward=1')
    router2.cmd('sysctl -w net.ipv4.ip_forward=1')

    # Configure static routes
    router1.cmd('ip route add 192.168.2.0/24 via 192.168.1.1')
    router2.cmd('ip route add 192.168.1.0/24 via 192.168.2.1')

    info("* Setting up JFlow\n")
    ap1.cmd('ovs-vsctl -- --id=@sflow create sflow agent=ap1-wlan0 target="10.0.0.100:9996" sampling=10 polling=20 -- set bridge ap1 sflow=@sflow')
    ap2.cmd('ovs-vsctl -- --id=@sflow create sflow agent=ap2-wlan0 target="10.0.0.100:9996" sampling=10 polling=20 -- set bridge ap2 sflow=@sflow')
    ap3.cmd('ovs-vsctl -- --id=@sflow create sflow agent=ap3-wlan0 target="10.0.0.100:9996" sampling=10 polling=20 -- set bridge ap3 sflow=@sflow')

    info("* Running CLI\n")
    CLI(net)

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

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

Export Flow result =>

I am new to network creating/monitoring, I hope I could give enough information.

Thank you for your time.

Upvotes: 0

Views: 70

Answers (0)

Related Questions