Mininet Updates
parent
b25d1e04fc
commit
974db9c1f9
@ -0,0 +1,53 @@
|
||||
import configparser
|
||||
from colorama import Fore, Style
|
||||
from mininet.net import Mininet
|
||||
from mininet.topo import Topo
|
||||
from mininet.node import Node
|
||||
from mininet.cli import CLI
|
||||
from mininet.link import TCLink
|
||||
from mininet.log import setLogLevel
|
||||
|
||||
class MyRouter (Node):
|
||||
def config(self, **params):
|
||||
super(MyRouter, self).config(**params)
|
||||
self.cmd('sysctl net.ipv4.ip_forward=1') #Enable forwarding on the router
|
||||
def terminate(self):
|
||||
self.cmd('sysctl net.ipv4.ip_forward=0') #Disable forwarding on the router
|
||||
super(MyRouter, self).terminate
|
||||
|
||||
def build_topology(config_file):
|
||||
topo = Topo()
|
||||
elements = {} # Dictionary to store nodes
|
||||
|
||||
h4 = topo.addHost('H4', ip='161.46.247.131/26', defaultRoute='via 161.46.247.129')
|
||||
h3 = topo.addHost('H3', ip='161.46.247.196/27', defaultRoute='via 161.46.247.195')
|
||||
|
||||
r1 = topo.addNode('R1', cls=MyRouter, ip='161.46.247.254/30')
|
||||
r2 = topo.addNode('R2', cls=MyRouter, ip='161.46.247.253/30')
|
||||
|
||||
# Ordine importante
|
||||
topo.addLink(r2, r1, intfName2='R13', intfName1='R21', params2={'ip' : '161.46.247.254/30'}, params1={'ip' : '161.46.247.253/30'})
|
||||
|
||||
topo.addLink(r2, h3, intfName2='H31', intfName1='R22', params1={'ip' : '161.46.247.195/27'})
|
||||
topo.addLink(r2, h4, intfName2='H41', intfName1='R23', params1={'ip' : '161.46.247.129/26'})
|
||||
|
||||
return topo
|
||||
|
||||
def run_topology(config_file):
|
||||
setLogLevel('info') #Different logging levels are 'info' 'warning' 'error' 'debug'
|
||||
topo = build_topology(config_file)
|
||||
net = Mininet(topo=topo, link=TCLink)
|
||||
net.start() #Starting the network
|
||||
|
||||
(net.getNodeByName('R1')).cmd('ip route add 161.46.247.192/27 via 161.46.247.254 dev R13')
|
||||
(net.getNodeByName('R1')).cmd('ip route add 161.46.247.128/26 via 161.46.247.254 dev R13')
|
||||
|
||||
if net.pingAll():
|
||||
print(Fore.RED + "Network has issues" + Style.RESET_ALL)
|
||||
else:
|
||||
print(Fore.GREEN + "Network working properly" + Style.RESET_ALL)
|
||||
CLI(net)
|
||||
net.stop() #Stopping the network
|
||||
|
||||
if __name__ == '__main__':
|
||||
run_topology('MininetTopo.conf')
|
@ -1,48 +1,55 @@
|
||||
######## Set hosts ########
|
||||
## host name ip defRoute ##
|
||||
###########################
|
||||
host h1 161.46.247.131/26 161.46.247.129
|
||||
host h2 161.46.247.196/27 161.46.247.195
|
||||
|
||||
#### Set routers ###
|
||||
## router name ip ##
|
||||
####################
|
||||
router r1 161.46.247.129/26
|
||||
#router r2 10.2.0.1/24
|
||||
# L'ordine deve rimanee questo
|
||||
|
||||
############# Set hosts #############
|
||||
## host name intfIP/mask defRoute ###
|
||||
#####################################
|
||||
host H4 161.46.247.131/26 161.46.247.129
|
||||
host H3 161.46.247.196/27 161.46.247.195
|
||||
|
||||
######## Set routers ########
|
||||
## router name intfIP/mask ##
|
||||
#############################
|
||||
router R1 161.46.247.254/30
|
||||
router R2 161.46.247.253/30
|
||||
|
||||
## Set switches ##
|
||||
## switch name ##
|
||||
## switch name ##
|
||||
##################
|
||||
# switch s1
|
||||
# switch s2
|
||||
|
||||
####### Set links #######
|
||||
################################################ Set links ################################################
|
||||
## linkRR router1, router1_intfName, router1_intfIP/mask, router2, router2_intfName, router2_intfIP/mask ##
|
||||
###########################################################################################################
|
||||
linkRR R1 R13 161.46.247.254/30 R2 R21 161.46.247.253/30
|
||||
|
||||
######################## Set links and router interfaces #####################
|
||||
## linkRH host, host_intfName, router, router_intfName, router_intfIP/mask ###
|
||||
##############################################################################
|
||||
linkRH H3 H31 R2 R22 161.46.247.195/27
|
||||
linkRH H4 H41 R2 R23 161.46.247.129/26
|
||||
|
||||
##################### Set links and router interfaces #####################
|
||||
## linkRS ##
|
||||
#####################################################
|
||||
# linkRS
|
||||
# linkRS
|
||||
|
||||
###### Set links ######
|
||||
## linkSS switch1, switch2 ##
|
||||
######################
|
||||
# linkSS s2 s1
|
||||
|
||||
###### Set links ######
|
||||
## linkSH switch, host ##
|
||||
#########################
|
||||
##########
|
||||
# linkSH s1 h1
|
||||
# linkSH s1 h2
|
||||
# linkSH s2 h3
|
||||
# linkSH s2 h4
|
||||
|
||||
######### Set links #########
|
||||
## linkSS switch1, switch2 ##
|
||||
#############################
|
||||
# linkSS s2 s1
|
||||
|
||||
|
||||
##################### Set links #####################
|
||||
## linkHR host, router, router_intfName, router_ip ##
|
||||
#####################################################
|
||||
linkHR h1 r1 R23 161.46.247.129/26
|
||||
linkHR h2 r1 R22 161.46.247.195/27
|
||||
|
||||
######################### Set links #########################
|
||||
## linkRR router1, router2, intfName1, intfName2, ip1, ip2 ##
|
||||
#############################################################
|
||||
# linkRR r1 r2 r1-eth2 r2-eth2 10.0.0.0/31 10.0.0.1/31
|
||||
|
||||
############# route table #############
|
||||
## route name source destRoute interf ##
|
||||
########################################
|
||||
# route r1 0.0.0.0/0 10.0.0.1 r1-eth2
|
||||
# route r2 0.0.0.0/0 10.0.0.0 r2-eth2
|
||||
################## route table ################
|
||||
## route name final_destIP/mask nextHop intf ###
|
||||
################################################
|
||||
route R1 161.46.247.192/27 161.46.247.254 R13
|
||||
route R1 161.46.247.128/26 161.46.247.254 R13
|
||||
|
Loading…
Reference in New Issue