Skip to content
Snippets Groups Projects
Commit 8a987b9c authored by Brian O'Connor's avatar Brian O'Connor
Browse files

adding linuxrouter.py

parent 92075113
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/python
"""
linuxrouter.py: Example network with Linux IP router
"""
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import Node
from mininet.log import setLogLevel
from mininet.cli import CLI
from mininet.util import irange
class Router( Node ):
def config( self, **params ):
super( Router, self).config( **params )
# Enable forwarding on the router
self.cmd( 'sysctl net.ipv4.ip_forward=1' )
def terminate( self ):
self.cmd( 'sysctl net.ipv4.ip_forward=0' )
super( Router, self ).terminate()
class NetworkTopo(Topo):
def __init__(self, n=2, h=1, **opts):
Topo.__init__(self, **opts)
router = self.addNode('r0', cls=Router, ip='192.168.1.1/24')
h1 = self.addHost('h1', ip='192.168.1.100/8', defaultRoute='via 192.168.1.1')
h2 = self.addHost('h2', ip='172.16.0.100/8', defaultRoute='via 172.16.0.1')
h3 = self.addHost('h3', ip='10.0.0.100/24', defaultRoute='via 10.0.0.1')
self.addLink(h1, router, intfName2='r0-eth1', params2={ 'ip' : '192.168.1.1/24' })
self.addLink(h2, router, intfName2='r0-eth2', params2={ 'ip' : '172.16.0.1/24' })
self.addLink(h3, router, intfName2='r0-eth3', params2={ 'ip' : '10.0.0.1/24' })
def run():
topo = NetworkTopo()
net = Mininet(topo=topo)
net.start()
CLI(net)
net.stop()
if __name__ == '__main__':
setLogLevel('info')
run()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment