-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmininet.py
More file actions
84 lines (67 loc) · 2.41 KB
/
mininet.py
File metadata and controls
84 lines (67 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/usr/bin/python
from mininet.net import Mininet
from mininet.topo import Topo
from mininet.log import setLogLevel
from mininet.cli import CLI
from mininet.node import Controller
from mininet.node import RemoteController
class MyTopo( Topo ):
"Simple topology example."
def __init__( self ):
"Create custom topo."
# Initialize topology
Topo.__init__( self )
# Add hosts and switches
sw1 = self.addSwitch( 's1' )
sw2 = self.addSwitch( 's2' )
sw3 = self.addSwitch( 's3' )
sw4 = self.addSwitch( 's4' )
sw5 = self.addSwitch( 's5' )
fw1 = self.addSwitch( 's6')
fw2 = self.addSwitch( 's7')
lb1 = self.addSwitch( 's8')
lb2 = self.addSwitch( 's9')
ids = self.addSwitch( 's10')
napt = self.addSwitch( 's11')
h1 = self.addHost( 'h1', ip='100.0.0.10/24' )
h2 = self.addHost( 'h2', ip='100.0.0.11/24' )
h3 = self.addHost( 'h3', ip='100.0.0.50/24' )
h4 = self.addHost( 'h4', ip='100.0.0.51/24' )
ds1 = self.addHost( 'ds1', ip='100.0.0.20/24' )
ds2 = self.addHost( 'ds2', ip='100.0.0.21/24' )
ds3 = self.addHost( 'ds3', ip='100.0.0.22/24' )
ws1 = self.addHost( 'ws1', ip='100.0.0.40/24' )
ws2 = self.addHost( 'ws2', ip='100.0.0.41/24' )
ws3 = self.addHost( 'ws3', ip='100.0.0.42/24' )
insp = self.addHost( 'insp1', ip='100.0.0.30/24' )
# Add links
# Public Zone
self.addLink( h1, sw1 )
self.addLink( h2, sw1 )
#Firewall 1
self.addLink( sw1, fw1)
self.addLink( sw2, fw1)
#Demilitarized zone
self.addLink( ds1, sw3 )
self.addLink( ds2, sw3 )
self.addLink( ds3, sw3 )
self.addLink( ws1, sw4 )
self.addLink( ws2, sw4 )
self.addLink( ws3, sw4 )
self.addLink( sw2, lb1 )
self.addLink( sw3, lb1 )
self.addLink( sw2, ids )
self.addLink( lb2, ids )
self.addLink( lb2, sw4 )
self.addLink( ids, insp )
#Firewall 2 , NAPT, Private zone
self.addLink( fw2, sw2)
self.addLink( fw2, napt)
self.addLink( sw5, napt)
self.addLink( h3 , sw5)
self.addLink( h4 , sw5)
#topos = { 'mytopo': ( lambda: MyTopo() ) }
net = Mininet(topo=MyTopo(), controller=None)
net.addController('c0',controller=RemoteController, ip='127.0.0.1', port=6633)
net.start()
CLI(net)