I want to connect different switches of the mininet virtual network to different remote controller and am unable to get any idea how to proceed. Please provide any method to do this?
Any python example is appreciated.
By default, Mininet runs Open vSwitch in OpenFlow mode, which requires an OpenFlow controller.
A Switch is a Node that is running (or has execed?) an OpenFlow switch.
I recommand you to read this mail form mininet's mailing list archives in order to have an idea about how to do it yourself. I hope you already know the mininet's python API too. Find below the python code i wrote. You can custumize it
#!/usr/bin/python
from mininet.net import Mininet
from mininet.node import Controller, RemoteController
from mininet.cli import CLI
from mininet.log import setLogLevel, info
def myNet():
#OpenDayLight controller
ODL_CONTROLLER_IP='10.0.0.4'
#Floodlight controller
FL_CONTROLLER_IP='10.0.0.5'
net = Mininet( topo=None, build=False)
# Create nodes
h1 = net.addHost( 'h1', mac='01:00:00:00:01:00', ip='192.168.0.1/24' )
h2 = net.addHost( 'h2', mac='01:00:00:00:02:00', ip='192.168.0.2/24' )
# Create switches
s1 = net.addSwitch( 's1', listenPort=6634, mac='00:00:00:00:00:01' )
s2 = net.addSwitch( 's2', listenPort=6634, mac='00:00:00:00:00:02' )
print "*** Creating links"
net.addLink(h1, s1, )
net.addLink(h2, s2, )
net.addLink(s1, s2, )
# Add Controllers
odl_ctrl = net.addController( 'c0', controller=RemoteController, ip=ODL_CONTROLLER_IP, port=6633)
fl_ctrl = net.addController( 'c1', controller=RemoteController, ip=FL_CONTROLLER_IP, port=6633)
net.build()
# Connect each switch to a different controller
s1.start( [odl_ctrl] )
s2.start( [fl_ctrl] )
s1.cmdPrint('ovs-vsctl show')
CLI( net )
net.stop()
if __name__ == '__main__':
setLogLevel( 'info' )
myNet()
Have fun!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With