#!/usr/bin/env python2 | |
from mininet.topo import Topo | |
from mininet.net import Mininet | |
from mininet.link import TCLink | |
from mininet.log import setLogLevel, info | |
from mininet.node import Controller, RemoteController | |
from mininet.cli import CLI | |
from mininet.link import Intf | |
from mininet.util import dumpNodeConnections | |
''' | |
two_vlan.py | |
teacher{1,2}: vlan 100 | |
student{1,2}: vlan 200 | |
''' | |
REMOTE_CONTROLLER_IP="140.113.215.6" | |
def MininetTopo(): | |
''' | |
Prepare Your Topology | |
''' | |
net = Mininet (topo=None, build=False) | |
controller = net.addController(name='controller0', | |
controller=RemoteController, | |
ip=REMOTE_CONTROLLER_IP, | |
port=6633) | |
info("Create Host node\n") | |
teacher1 = net.addHost('teacher1', ip='10.0.0.1') | |
teacher2 = net.addHost('teacher2', ip='10.0.0.2') | |
student1 = net.addHost('student1', ip='10.0.0.3') | |
student2 = net.addHost('student2', ip='10.0.0.4') | |
info("Create Switch node\n") | |
switch1 = net.addSwitch('ovs1', protocols='OpenFlow13') | |
switch2 = net.addSwitch('ovs2', protocols='OpenFlow13') | |
switch3 = net.addSwitch('ovs3', protocols='OpenFlow13') | |
info("Link switch to host\n") | |
net.addLink(switch1, student1) | |
net.addLink(switch3, student2) | |
net.addLink(switch1, teacher1) | |
net.addLink(switch3, teacher2) | |
net.addLink(switch1, switch2) | |
net.addLink(switch2, switch3) | |
''' | |
Working your topology | |
''' | |
info("Start network\n") | |
net.start() | |
info("Dumping host connections\n") | |
dumpNodeConnections(net.hosts) | |
info("Testing network connectivity\n") | |
net.pingAll() | |
info("Set vlan id\n") | |
''' | |
ovs1 ofport list: | |
teacher1 ofport 1 | |
student1 ofport 2 | |
ovs2 ofport 3 | |
''' | |
#Ingress | |
switch1.cmdPrint('ovs-ofctl -O OpenFlow13 add-flow ovs1 in_port=1,dl_vlan=0xffff,actions=push_vlan:0x8100,set_field:100-\>vlan_vid,output:3') | |
switch1.cmdPrint('ovs-ofctl -O OpenFlow13 add-flow ovs1 in_port=2,dl_vlan=0xffff,actions=push_vlan:0x8100,set_field:200-\>vlan_vid,output:3') | |
#Egress | |
switch1.cmdPrint('ovs-ofctl -O OpenFlow13 add-flow ovs1 in_port=3,dl_vlan=100,actions=pop_vlan,output:1') | |
switch1.cmdPrint('ovs-ofctl -O OpenFlow13 add-flow ovs1 in_port=3,dl_vlan=200,actions=pop_vlan,output:2') | |
''' | |
ovs3 ofport list: | |
teacher2 ofport 1 | |
student2 ofport 2 | |
ovs2 ofport 3 | |
''' | |
#Ingress | |
switch3.cmdPrint('ovs-ofctl -O OpenFlow13 add-flow ovs3 in_port=1,dl_vlan=0xffff,actions=push_vlan:0x8100,set_field:100-\>vlan_vid,output:3') | |
switch3.cmdPrint('ovs-ofctl -O OpenFlow13 add-flow ovs3 in_port=2,dl_vlan=0xffff,actions=push_vlan:0x8100,set_field:200-\>vlan_vid,output:3') | |
#Egress | |
switch3.cmdPrint('ovs-ofctl -O OpenFlow13 add-flow ovs3 in_port=3,dl_vlan=100,actions=pop_vlan,output:1') | |
switch3.cmdPrint('ovs-ofctl -O OpenFlow13 add-flow ovs3 in_port=3,dl_vlan=200,actions=pop_vlan,output:2') | |
''' | |
ovs2 ofport list: | |
ovs2 ofport 1 | |
ovs1 ofport 2 | |
''' | |
switch2.cmdPrint('ovs-ofctl -O OpenFlow13 add-flow ovs2 in_port=1,actions=output:2') | |
switch2.cmdPrint('ovs-ofctl -O OpenFlow13 add-flow ovs2 in_port=2,actions=output:1') | |
info("Try vlan\n") | |
net.pingAll() | |
CLI(net) | |
''' | |
Clean mininet | |
''' | |
net.stop() | |
if __name__ == '__main__': | |
setLogLevel('info') | |
MininetTopo() |
#!/usr/bin/env python2 | |
from mininet.topo import Topo | |
from mininet.net import Mininet | |
from mininet.link import TCLink | |
from mininet.log import setLogLevel, info | |
from mininet.node import Controller, RemoteController | |
from mininet.cli import CLI | |
from mininet.link import Intf | |
from mininet.util import dumpNodeConnections | |
''' | |
two_vlan.py | |
teacher{1,2}: vlan 100 | |
student{1,2}: vlan 200 | |
''' | |
REMOTE_CONTROLLER_IP="10.211.55.56" | |
def MininetTopo(): | |
''' | |
Prepare Your Topology | |
''' | |
net = Mininet (topo=None, build=False) | |
controller = net.addController(name='controller0', | |
controller=RemoteController, | |
ip=REMOTE_CONTROLLER_IP, | |
port=6633) | |
info("Create Host node\n") | |
teacher1 = net.addHost('teacher1', ip='10.0.0.1') | |
teacher2 = net.addHost('teacher2', ip='10.0.0.2') | |
student1 = net.addHost('student1', ip='10.0.0.3') | |
student2 = net.addHost('student2', ip='10.0.0.4') | |
info("Create Switch node\n") | |
switch1 = net.addSwitch('ovs1') | |
switch2 = net.addSwitch('ovs2') | |
switch3 = net.addSwitch('ovs3') | |
info("Link switch to host\n") | |
net.addLink(switch1, student1) | |
net.addLink(switch3, student2) | |
net.addLink(switch1, teacher1) | |
net.addLink(switch3, teacher2) | |
net.addLink(switch1, switch2) | |
net.addLink(switch2, switch3) | |
''' | |
Working your topology | |
''' | |
info("Start network\n") | |
net.start() | |
info("Dumping host connections\n") | |
dumpNodeConnections(net.hosts) | |
info("Testing network connectivity\n") | |
net.pingAll() | |
info("Set vlan id\n") | |
''' | |
ovs1 ofport list: | |
teacher1 ofport 1 | |
student1 ofport 2 | |
ovs2 ofport 3 | |
''' | |
#Ingress | |
switch1.cmdPrint('ovs-ofctl add-flow ovs1 in_port=1,dl_vlan=0xffff,actions=mod_vlan_vid:100,output:3') | |
switch1.cmdPrint('ovs-ofctl add-flow ovs1 in_port=2,dl_vlan=0xffff,actions=mod_vlan_vid:200,output:3') | |
#Egress | |
switch1.cmdPrint('ovs-ofctl add-flow ovs1 in_port=3,dl_vlan=100,actions=strip_vlan,output:1') | |
switch1.cmdPrint('ovs-ofctl add-flow ovs1 in_port=3,dl_vlan=200,actions=strip_vlan,output:2') | |
''' | |
ovs3 ofport list: | |
teacher2 ofport 1 | |
student2 ofport 2 | |
ovs2 ofport 3 | |
''' | |
#Ingress | |
switch3.cmdPrint('ovs-ofctl add-flow ovs3 in_port=1,dl_vlan=0xffff,actions=mod_vlan_vid:100,output:3') | |
switch3.cmdPrint('ovs-ofctl add-flow ovs3 in_port=2,dl_vlan=0xffff,actions=mod_vlan_vid:200,output:3') | |
#Egress | |
switch3.cmdPrint('ovs-ofctl add-flow ovs3 in_port=3,dl_vlan=100,actions=strip_vlan,output:1') | |
switch3.cmdPrint('ovs-ofctl add-flow ovs3 in_port=3,dl_vlan=200,actions=strip_vlan,output:2') | |
''' | |
ovs2 ofport list: | |
ovs2 ofport 1 | |
ovs1 ofport 2 | |
''' | |
switch2.cmdPrint('ovs-ofctl add-flow ovs2 in_port=1,actions=output:2') | |
switch2.cmdPrint('ovs-ofctl add-flow ovs2 in_port=2,actions=output:1') | |
info("Try vlan\n") | |
net.pingAll() | |
CLI(net) | |
''' | |
Clean mininet | |
''' | |
net.stop() | |
if __name__ == '__main__': | |
setLogLevel('info') | |
MininetTopo() |
This comment has been minimized.
This comment has been minimized.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.