ufes-20191-redes-mininet/proj-impl/bigtopo.py

376 lines
17 KiB
Python
Executable File

#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
from mininet.net import Mininet
from mininet.node import Controller, RemoteController, OVSController
from mininet.node import CPULimitedHost, Host, Node
from mininet.node import OVSKernelSwitch, UserSwitch
from mininet.node import IVSSwitch
from mininet.cli import CLI
from mininet.log import setLogLevel, info
from mininet.link import TCLink, Intf
from subprocess import call
def myNetwork():
net = Mininet(
topo=None,
build=False,
ipBase="10.0.0.0/8"
)
info('*** Adding controller\n')
c0=net.addController(
name='c0',
controller=Controller,
protocol='tcp',
port=6633
)
info('*** Adding switches\n')
s1 = net.addSwitch('s1', cls=OVSKernelSwitch)
s2 = net.addSwitch('s2', cls=OVSKernelSwitch)
s3 = net.addSwitch('s3', cls=OVSKernelSwitch)
s4 = net.addSwitch('s4', cls=OVSKernelSwitch)
s5 = net.addSwitch('s5', cls=OVSKernelSwitch)
s6 = net.addSwitch('s6', cls=OVSKernelSwitch)
s7 = net.addSwitch('s7', cls=OVSKernelSwitch)
s8 = net.addSwitch('s8', cls=OVSKernelSwitch)
s9 = net.addSwitch('s9', cls=OVSKernelSwitch)
s10 = net.addSwitch('s10', cls=OVSKernelSwitch)
s11 = net.addSwitch('s11', cls=OVSKernelSwitch)
s12 = net.addSwitch('s12', cls=OVSKernelSwitch)
s13 = net.addSwitch('s13', cls=OVSKernelSwitch)
s14 = net.addSwitch('s14', cls=OVSKernelSwitch)
s15 = net.addSwitch('s15', cls=OVSKernelSwitch)
s16 = net.addSwitch('s16', cls=OVSKernelSwitch)
s17 = net.addSwitch('s17', cls=OVSKernelSwitch)
s18 = net.addSwitch('s18', cls=OVSKernelSwitch)
s19 = net.addSwitch('s19', cls=OVSKernelSwitch)
s20 = net.addSwitch('s20', cls=OVSKernelSwitch)
s21 = net.addSwitch('s21', cls=OVSKernelSwitch)
s22 = net.addSwitch('s22', cls=OVSKernelSwitch)
s23 = net.addSwitch('s23', cls=OVSKernelSwitch)
s24 = net.addSwitch('s24', cls=OVSKernelSwitch)
s25 = net.addSwitch('s25', cls=OVSKernelSwitch)
s26 = net.addSwitch('s26', cls=OVSKernelSwitch)
s27 = net.addSwitch('s27', cls=OVSKernelSwitch)
s28 = net.addSwitch('s28', cls=OVSKernelSwitch)
s29 = net.addSwitch('s29', cls=OVSKernelSwitch)
s30 = net.addSwitch('s30', cls=OVSKernelSwitch)
s31 = net.addSwitch('s31', cls=OVSKernelSwitch)
s32 = net.addSwitch('s32', cls=OVSKernelSwitch)
s33 = net.addSwitch('s33', cls=OVSKernelSwitch)
s34 = net.addSwitch('s34', cls=OVSKernelSwitch)
s35 = net.addSwitch('s35', cls=OVSKernelSwitch)
s36 = net.addSwitch('s36', cls=OVSKernelSwitch)
s37 = net.addSwitch('s37', cls=OVSKernelSwitch)
s38 = net.addSwitch('s38', cls=OVSKernelSwitch)
s39 = net.addSwitch('s39', cls=OVSKernelSwitch)
s40 = net.addSwitch('s40', cls=OVSKernelSwitch)
s41 = net.addSwitch('s41', cls=OVSKernelSwitch)
s42 = net.addSwitch('s42', cls=OVSKernelSwitch)
s43 = net.addSwitch('s43', cls=OVSKernelSwitch)
s44 = net.addSwitch('s44', cls=OVSKernelSwitch)
s45 = net.addSwitch('s45', cls=OVSKernelSwitch)
s46 = net.addSwitch('s46', cls=OVSKernelSwitch)
s47 = net.addSwitch('s47', cls=OVSKernelSwitch)
s48 = net.addSwitch('s48', cls=OVSKernelSwitch)
s49 = net.addSwitch('s49', cls=OVSKernelSwitch)
s50 = net.addSwitch('s50', cls=OVSKernelSwitch)
s51 = net.addSwitch('s51', cls=OVSKernelSwitch)
s52 = net.addSwitch('s52', cls=OVSKernelSwitch)
s53 = net.addSwitch('s53', cls=OVSKernelSwitch)
s54 = net.addSwitch('s54', cls=OVSKernelSwitch)
s55 = net.addSwitch('s55', cls=OVSKernelSwitch)
s56 = net.addSwitch('s56', cls=OVSKernelSwitch)
s57 = net.addSwitch('s57', cls=OVSKernelSwitch)
info('*** Adding hosts\n')
h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)
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)
h5 = net.addHost('h5', cls=Host, ip='10.0.0.5', defaultRoute=None)
h6 = net.addHost('h6', cls=Host, ip='10.0.0.6', defaultRoute=None)
h7 = net.addHost('h7', cls=Host, ip='10.0.0.7', defaultRoute=None)
h8 = net.addHost('h8', cls=Host, ip='10.0.0.8', defaultRoute=None)
h9 = net.addHost('h9', cls=Host, ip='10.0.0.9', defaultRoute=None)
h10 = net.addHost('h10', cls=Host, ip='10.0.0.10', defaultRoute=None)
h11 = net.addHost('h11', cls=Host, ip='10.0.0.11', defaultRoute=None)
h12 = net.addHost('h12', cls=Host, ip='10.0.0.12', defaultRoute=None)
h13 = net.addHost('h13', cls=Host, ip='10.0.0.13', defaultRoute=None)
h14 = net.addHost('h14', cls=Host, ip='10.0.0.14', defaultRoute=None)
h15 = net.addHost('h15', cls=Host, ip='10.0.0.15', defaultRoute=None)
h16 = net.addHost('h16', cls=Host, ip='10.0.0.16', defaultRoute=None)
h17 = net.addHost('h17', cls=Host, ip='10.0.0.17', defaultRoute=None)
h18 = net.addHost('h18', cls=Host, ip='10.0.0.18', defaultRoute=None)
h19 = net.addHost('h19', cls=Host, ip='10.0.0.19', defaultRoute=None)
h20 = net.addHost('h20', cls=Host, ip='10.0.0.20', defaultRoute=None)
h21 = net.addHost('h21', cls=Host, ip='10.0.0.21', defaultRoute=None)
h22 = net.addHost('h22', cls=Host, ip='10.0.0.22', defaultRoute=None)
h23 = net.addHost('h23', cls=Host, ip='10.0.0.23', defaultRoute=None)
h24 = net.addHost('h24', cls=Host, ip='10.0.0.24', defaultRoute=None)
h25 = net.addHost('h25', cls=Host, ip='10.0.0.25', defaultRoute=None)
h26 = net.addHost('h26', cls=Host, ip='10.0.0.26', defaultRoute=None)
h27 = net.addHost('h27', cls=Host, ip='10.0.0.27', defaultRoute=None)
h28 = net.addHost('h28', cls=Host, ip='10.0.0.28', defaultRoute=None)
h29 = net.addHost('h29', cls=Host, ip='10.0.0.29', defaultRoute=None)
h30 = net.addHost('h30', cls=Host, ip='10.0.0.30', defaultRoute=None)
h31 = net.addHost('h31', cls=Host, ip='10.0.0.31', defaultRoute=None)
h32 = net.addHost('h32', cls=Host, ip='10.0.0.32', defaultRoute=None)
h33 = net.addHost('h33', cls=Host, ip='10.0.0.33', defaultRoute=None)
h34 = net.addHost('h34', cls=Host, ip='10.0.0.34', defaultRoute=None)
h35 = net.addHost('h35', cls=Host, ip='10.0.0.35', defaultRoute=None)
h36 = net.addHost('h36', cls=Host, ip='10.0.0.36', defaultRoute=None)
h37 = net.addHost('h37', cls=Host, ip='10.0.0.37', defaultRoute=None)
h38 = net.addHost('h38', cls=Host, ip='10.0.0.38', defaultRoute=None)
h39 = net.addHost('h39', cls=Host, ip='10.0.0.39', defaultRoute=None)
h40 = net.addHost('h40', cls=Host, ip='10.0.0.40', defaultRoute=None)
h41 = net.addHost('h41', cls=Host, ip='10.0.0.41', defaultRoute=None)
h42 = net.addHost('h42', cls=Host, ip='10.0.0.42', defaultRoute=None)
h43 = net.addHost('h43', cls=Host, ip='10.0.0.43', defaultRoute=None)
h44 = net.addHost('h44', cls=Host, ip='10.0.0.44', defaultRoute=None)
h45 = net.addHost('h45', cls=Host, ip='10.0.0.45', defaultRoute=None)
h46 = net.addHost('h46', cls=Host, ip='10.0.0.46', defaultRoute=None)
h47 = net.addHost('h47', cls=Host, ip='10.0.0.47', defaultRoute=None)
h48 = net.addHost('h48', cls=Host, ip='10.0.0.48', defaultRoute=None)
h49 = net.addHost('h49', cls=Host, ip='10.0.0.49', defaultRoute=None)
h50 = net.addHost('h50', cls=Host, ip='10.0.0.50', defaultRoute=None)
h51 = net.addHost('h51', cls=Host, ip='10.0.0.51', defaultRoute=None)
h52 = net.addHost('h52', cls=Host, ip='10.0.0.52', defaultRoute=None)
h53 = net.addHost('h53', cls=Host, ip='10.0.0.53', defaultRoute=None)
h54 = net.addHost('h54', cls=Host, ip='10.0.0.54', defaultRoute=None)
h55 = net.addHost('h55', cls=Host, ip='10.0.0.55', defaultRoute=None)
h56 = net.addHost('h56', cls=Host, ip='10.0.0.56', defaultRoute=None)
h57 = net.addHost('h57', cls=Host, ip='10.0.0.57', defaultRoute=None)
h58 = net.addHost('h58', cls=Host, ip='10.0.0.58', defaultRoute=None)
h59 = net.addHost('h59', cls=Host, ip='10.0.0.59', defaultRoute=None)
h60 = net.addHost('h60', cls=Host, ip='10.0.0.60', defaultRoute=None)
h61 = net.addHost('h61', cls=Host, ip='10.0.0.61', defaultRoute=None)
h62 = net.addHost('h62', cls=Host, ip='10.0.0.62', defaultRoute=None)
h63 = net.addHost('h63', cls=Host, ip='10.0.0.63', defaultRoute=None)
h64 = net.addHost('h64', cls=Host, ip='10.0.0.64', defaultRoute=None)
h65 = net.addHost('h65', cls=Host, ip='10.0.0.65', defaultRoute=None)
h66 = net.addHost('h66', cls=Host, ip='10.0.0.66', defaultRoute=None)
h67 = net.addHost('h67', cls=Host, ip='10.0.0.67', defaultRoute=None)
h68 = net.addHost('h68', cls=Host, ip='10.0.0.68', defaultRoute=None)
h69 = net.addHost('h69', cls=Host, ip='10.0.0.69', defaultRoute=None)
h70 = net.addHost('h70', cls=Host, ip='10.0.0.70', defaultRoute=None)
h71 = net.addHost('h71', cls=Host, ip='10.0.0.71', defaultRoute=None)
h72 = net.addHost('h72', cls=Host, ip='10.0.0.72', defaultRoute=None)
info('*** Adding links\n')
net.addLink(h2, s7, cls=TCLink, bw=0.1)
net.addLink(h3, s7, cls=TCLink, bw=0.1)
net.addLink(h1, s7, cls=TCLink, bw=0.1)
net.addLink(s7, s6, cls=TCLink, bw=0.1)
net.addLink(h5, s8, cls=TCLink, bw=0.1)
net.addLink(h6, s8, cls=TCLink, bw=0.1)
net.addLink(h4, s8, cls=TCLink, bw=0.1)
net.addLink(s8, s6, cls=TCLink, bw=0.1)
net.addLink(s6, s4, cls=TCLink, bw=1)
net.addLink(s6, s5, cls=TCLink, bw=1)
net.addLink(h8, s10, cls=TCLink, bw=0.1)
net.addLink(h9, s10, cls=TCLink, bw=0.1)
net.addLink(h7, s10, cls=TCLink, bw=0.1)
net.addLink(s10, s9, cls=TCLink, bw=0.1)
net.addLink(h11, s11, cls=TCLink, bw=0.1)
net.addLink(h12, s11, cls=TCLink, bw=0.1)
net.addLink(h10, s11, cls=TCLink, bw=0.1)
net.addLink(s11, s9, cls=TCLink, bw=0.1)
net.addLink(s9, s4, cls=TCLink, bw=1)
net.addLink(s9, s5, cls=TCLink, bw=1)
net.addLink(s4, s1, cls=TCLink, bw=1)
net.addLink(s5, s2, cls=TCLink, bw=1)
net.addLink(h14, s15, cls=TCLink, bw=0.1)
net.addLink(h15, s15, cls=TCLink, bw=0.1)
net.addLink(h13, s15, cls=TCLink, bw=0.1)
net.addLink(s15, s14, cls=TCLink, bw=0.1)
net.addLink(h17, s16, cls=TCLink, bw=0.1)
net.addLink(h18, s16, cls=TCLink, bw=0.1)
net.addLink(h16, s16, cls=TCLink, bw=0.1)
net.addLink(s16, s14, cls=TCLink, bw=0.1)
net.addLink(s14, s12, cls=TCLink, bw=1)
net.addLink(s14, s13, cls=TCLink, bw=1)
net.addLink(h20, s18, cls=TCLink, bw=0.1)
net.addLink(h21, s18, cls=TCLink, bw=0.1)
net.addLink(h19, s18, cls=TCLink, bw=0.1)
net.addLink(s18, s17, cls=TCLink, bw=0.1)
net.addLink(h23, s19, cls=TCLink, bw=0.1)
net.addLink(h24, s19, cls=TCLink, bw=0.1)
net.addLink(h22, s19, cls=TCLink, bw=0.1)
net.addLink(s19, s17, cls=TCLink, bw=0.1)
net.addLink(s17, s12, cls=TCLink, bw=1)
net.addLink(s17, s13, cls=TCLink, bw=1)
net.addLink(s12, s2, cls=TCLink, bw=1)
net.addLink(s13, s3, cls=TCLink, bw=1)
net.addLink(h26, s26, cls=TCLink, bw=0.1)
net.addLink(h27, s26, cls=TCLink, bw=0.1)
net.addLink(h25, s26, cls=TCLink, bw=0.1)
net.addLink(s26, s25, cls=TCLink, bw=0.1)
net.addLink(h29, s27, cls=TCLink, bw=0.1)
net.addLink(h30, s27, cls=TCLink, bw=0.1)
net.addLink(h28, s27, cls=TCLink, bw=0.1)
net.addLink(s27, s25, cls=TCLink, bw=0.1)
net.addLink(s25, s23, cls=TCLink, bw=1)
net.addLink(s25, s24, cls=TCLink, bw=1)
net.addLink(h32, s29, cls=TCLink, bw=0.1)
net.addLink(h33, s29, cls=TCLink, bw=0.1)
net.addLink(h31, s29, cls=TCLink, bw=0.1)
net.addLink(s29, s28, cls=TCLink, bw=0.1)
net.addLink(h35, s30, cls=TCLink, bw=0.1)
net.addLink(h36, s30, cls=TCLink, bw=0.1)
net.addLink(h34, s30, cls=TCLink, bw=0.1)
net.addLink(s30, s28, cls=TCLink, bw=0.1)
net.addLink(s28, s23, cls=TCLink, bw=1)
net.addLink(s28, s24, cls=TCLink, bw=1)
net.addLink(s23, s20, cls=TCLink, bw=1)
net.addLink(s24, s21, cls=TCLink, bw=1)
net.addLink(h38, s34, cls=TCLink, bw=0.1)
net.addLink(h39, s34, cls=TCLink, bw=0.1)
net.addLink(h37, s34, cls=TCLink, bw=0.1)
net.addLink(s34, s33, cls=TCLink, bw=0.1)
net.addLink(h41, s35, cls=TCLink, bw=0.1)
net.addLink(h42, s35, cls=TCLink, bw=0.1)
net.addLink(h40, s35, cls=TCLink, bw=0.1)
net.addLink(s35, s33, cls=TCLink, bw=0.1)
net.addLink(s33, s31, cls=TCLink, bw=1)
net.addLink(s33, s32, cls=TCLink, bw=1)
net.addLink(h44, s37, cls=TCLink, bw=0.1)
net.addLink(h45, s37, cls=TCLink, bw=0.1)
net.addLink(h43, s37, cls=TCLink, bw=0.1)
net.addLink(s37, s36, cls=TCLink, bw=0.1)
net.addLink(h47, s38, cls=TCLink, bw=0.1)
net.addLink(h48, s38, cls=TCLink, bw=0.1)
net.addLink(h46, s38, cls=TCLink, bw=0.1)
net.addLink(s38, s36, cls=TCLink, bw=0.1)
net.addLink(s36, s31, cls=TCLink, bw=1)
net.addLink(s36, s32, cls=TCLink, bw=1)
net.addLink(s31, s21, cls=TCLink, bw=1)
net.addLink(s32, s22, cls=TCLink, bw=1)
net.addLink(s1, s20, cls=TCLink, bw=10)
net.addLink(s2, s21, cls=TCLink, bw=10)
net.addLink(s3, s22, cls=TCLink, bw=10)
net.addLink(h50, s45, cls=TCLink, bw=0.1)
net.addLink(h51, s45, cls=TCLink, bw=0.1)
net.addLink(h49, s45, cls=TCLink, bw=0.1)
net.addLink(s45, s44, cls=TCLink, bw=0.1)
net.addLink(h53, s46, cls=TCLink, bw=0.1)
net.addLink(h54, s46, cls=TCLink, bw=0.1)
net.addLink(h52, s46, cls=TCLink, bw=0.1)
net.addLink(s46, s44, cls=TCLink, bw=0.1)
net.addLink(s44, s42, cls=TCLink, bw=1)
net.addLink(s44, s43, cls=TCLink, bw=1)
net.addLink(h56, s48, cls=TCLink, bw=0.1)
net.addLink(h57, s48, cls=TCLink, bw=0.1)
net.addLink(h55, s48, cls=TCLink, bw=0.1)
net.addLink(s48, s47, cls=TCLink, bw=0.1)
net.addLink(h59, s49, cls=TCLink, bw=0.1)
net.addLink(h60, s49, cls=TCLink, bw=0.1)
net.addLink(h58, s49, cls=TCLink, bw=0.1)
net.addLink(s49, s47, cls=TCLink, bw=0.1)
net.addLink(s47, s42, cls=TCLink, bw=1)
net.addLink(s47, s43, cls=TCLink, bw=1)
net.addLink(s42, s39, cls=TCLink, bw=1)
net.addLink(s43, s40, cls=TCLink, bw=1)
net.addLink(h62, s53, cls=TCLink, bw=0.1)
net.addLink(h63, s53, cls=TCLink, bw=0.1)
net.addLink(h61, s53, cls=TCLink, bw=0.1)
net.addLink(s53, s52, cls=TCLink, bw=0.1)
net.addLink(h65, s54, cls=TCLink, bw=0.1)
net.addLink(h66, s54, cls=TCLink, bw=0.1)
net.addLink(h64, s54, cls=TCLink, bw=0.1)
net.addLink(s54, s52, cls=TCLink, bw=0.1)
net.addLink(s52, s50, cls=TCLink, bw=1)
net.addLink(s52, s51, cls=TCLink, bw=1)
net.addLink(h68, s56, cls=TCLink, bw=0.1)
net.addLink(h69, s56, cls=TCLink, bw=0.1)
net.addLink(h67, s56, cls=TCLink, bw=0.1)
net.addLink(s56, s55, cls=TCLink, bw=0.1)
net.addLink(h71, s57, cls=TCLink, bw=0.1)
net.addLink(h72, s57, cls=TCLink, bw=0.1)
net.addLink(h70, s57, cls=TCLink, bw=0.1)
net.addLink(s57, s55, cls=TCLink, bw=0.1)
net.addLink(s55, s50, cls=TCLink, bw=1)
net.addLink(s55, s51, cls=TCLink, bw=1)
net.addLink(s50, s40, cls=TCLink, bw=1)
net.addLink(s51, s41, cls=TCLink, bw=1)
net.addLink(s20, s39, cls=TCLink, bw=10)
net.addLink(s21, s40, cls=TCLink, bw=10)
net.addLink(s22, s41, cls=TCLink, bw=10)
info('*** Starting network\n')
net.build()
info('*** Starting controllers\n')
for controller in net.controllers:
controller.start()
info('*** Starting switches\n')
net.get('s1').start([c0])
net.get('s2').start([c0])
net.get('s3').start([c0])
net.get('s4').start([c0])
net.get('s5').start([c0])
net.get('s6').start([c0])
net.get('s7').start([c0])
net.get('s8').start([c0])
net.get('s9').start([c0])
net.get('s10').start([c0])
net.get('s11').start([c0])
net.get('s12').start([c0])
net.get('s13').start([c0])
net.get('s14').start([c0])
net.get('s15').start([c0])
net.get('s16').start([c0])
net.get('s17').start([c0])
net.get('s18').start([c0])
net.get('s19').start([c0])
net.get('s20').start([c0])
net.get('s21').start([c0])
net.get('s22').start([c0])
net.get('s23').start([c0])
net.get('s24').start([c0])
net.get('s25').start([c0])
net.get('s26').start([c0])
net.get('s27').start([c0])
net.get('s28').start([c0])
net.get('s29').start([c0])
net.get('s30').start([c0])
net.get('s31').start([c0])
net.get('s32').start([c0])
net.get('s33').start([c0])
net.get('s34').start([c0])
net.get('s35').start([c0])
net.get('s36').start([c0])
net.get('s37').start([c0])
net.get('s38').start([c0])
net.get('s39').start([c0])
net.get('s40').start([c0])
net.get('s41').start([c0])
net.get('s42').start([c0])
net.get('s43').start([c0])
net.get('s44').start([c0])
net.get('s45').start([c0])
net.get('s46').start([c0])
net.get('s47').start([c0])
net.get('s48').start([c0])
net.get('s49').start([c0])
net.get('s50').start([c0])
net.get('s51').start([c0])
net.get('s52').start([c0])
net.get('s53').start([c0])
net.get('s54').start([c0])
net.get('s55').start([c0])
net.get('s56').start([c0])
net.get('s57').start([c0])
info('*** Post configure switches and hosts\n')
CLI(net)
net.stop()
if __name__ == "__main__":
setLogLevel("info")
myNetwork()