Download presentation
Presentation is loading. Please wait.
1
Programming Assignment
Wang Zixiao School of Computing National University of Singapore CS 4226: Internet Architecture
2
Overview: step 1 Build a virtual network with Mininet network emulation environment s1 dpid:1 s4 dpid:4 s2 dpid:2 s3 dpid:3 h1 h3 h2 h4 h5 h6 h7 20 Mb/s 10 Mb/s
3
Mininet network Node Link Switch 20 Mb/s 10 Mb/s h1 h3 h2 h4 h5 h6 h7
dpid:1 s4 dpid:4 s2 dpid:2 s3 dpid:3 h1 h3 h2 h4 h5 h6 h7 20 Mb/s 10 Mb/s Node Link Switch
4
Mininet network Host Machine Virtual Machine s1 s4 s2 s3 h1 h3 h2 h4
Virtua Network
5
Overview: step 2 Program the OpenFlow controller POX to implement three applications: Learning Switch, Firewall, VPN
6
Mininet network POX Host Machine Virtual Machine s1 s4 s2 s3 h1 h3 h2
Virtual Network
7
Learning Switch S1 Forward Table 20 Mb/s 10 Mb/s h1->h3 MAC Address
dpid:1 s4 dpid:4 s2 dpid:2 s3 dpid:3 h1 h3 h2 h4 h5 h6 h7 20 Mb/s 10 Mb/s h1->h3 S1 Forward Table MAC Address Port
8
Learning Switch S1 Forward Table 20 Mb/s 10 Mb/s h1->h3 h1->h3
dpid:1 s4 dpid:4 s2 dpid:2 s3 dpid:3 h1 h3 h2 h4 h5 h6 h7 20 Mb/s 10 Mb/s h1->h3 h1->h3 h1->h3 S1 Forward Table MAC Address Port 00:00:00:00:00:01 1
9
Learning Switch S1 Forward Table 20 Mb/s 10 Mb/s h3->h1
dpid:1 s4 dpid:4 s2 dpid:2 s3 dpid:3 h1 h3 h2 h4 h5 h6 h7 20 Mb/s 10 Mb/s h3->h1 S1 Forward Table MAC Address Port 00:00:00:00:00:01 1 00:00:00:00:00:03 3
10
Firewall Block List: [10.0.0.1, 10.0.0.4, 80] 20 Mb/s 10 Mb/s
dpid:1 s4 dpid:4 s2 dpid:2 s3 dpid:3 h1 h3 h2 h4 h5 h6 h7 20 Mb/s 10 Mb/s h1->h4:80
11
Firewall Block List: [10.0.0.1, 10.0.0.4, 80] 20 Mb/s 10 Mb/s
dpid:1 s4 dpid:4 s2 dpid:2 s3 dpid:3 h1 h3 h2 h4 h5 h6 h7 20 Mb/s 10 Mb/s h1->h4:100
12
Virtual Private Network (VPN)
s1 dpid:1 s4 dpid:4 s2 dpid:2 s3 dpid:3 h1 h3 h2 h4 h5 h6 h7 20 Mb/s 10 Mb/s What is the sample space? 36 (i,j) pairs. h1->h4 100 Mb/s h1->h4 50 Mb/s
13
Priority Firewall VPN Learning Switch > >
What is the sample space? 36 (i,j) pairs. VPN > Learning Switch
14
Submission File: mininetTopo.py, controller.py Comments
What is the sample space? 36 (i,j) pairs. Comments Report (1 page)
15
Demo Run mininetTopo.py, controller.py
Network Topology + Learning Switch: topology.in ping all hosts ( pingall command) What is the sample space? 36 (i,j) pairs. Firewall: polocy.in One host sends data to another on certain ports (iperf ) VPN: polocy.in Hosts in the same company Vs. Hosts from different companies
16
Preview Packet sent to controller “PacketIn” event fired
No flow table match Compose and send message Write flow table entry Action Flow table match Second packet arrives at switch Parse packet and execute control logic First packet arrives at switch Msg Listener Control Logic Messager POX OpenFlow OpenFlow OpenFlow PacketIn Control Plane Data Plane OpenFlow Switch OpenFlow Switch Entry 1 Mininet OpenFlow Switch 1 2
17
Mininet Creates a realistic network, running real kernel, switch and application code on a single machine Interact with the network using Mininet Command Line Interface (CLI) Support OpenFlow switches (OpenVSwitch) Support custom topologies
18
Important classes and functions
Topo: the base class for Mininet topologies addSwitch(): adds a switch to a topology and returns the switch name addHost(): adds a host to a topology and returns the host name addLink(): adds a bidirectional link to a topology
19
Important classes and functions
Mininet: the main class to create and manage a network start(): starts your network stop(): stops your network pingAll(): tests connectivity by trying to have all nodes ping each other
21
Setup: Mininet Download Virtualbox ( Recommended)
Download Mininet Image ( FTP server) What is the sample space? 36 (i,j) pairs. Install the Mininet Appliance
22
Setup: POX Install Ubuntu (Recommended)
What is the sample space? 36 (i,j) pairs. Checkout POX controller from github Checkout and install POXDest (optional)
23
Test your code Check the topology using POXDesk Test learning switch
Test firewall Test VPN
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.