building community network using openflo · introduction: trema there are numbers of openflow...
TRANSCRIPT
Building Community Network using
OpenFlow
Team members: Bu-Sung Lee, Zoebir Bong, Stanley GohSingaren, Singapore
Zoebir BongPresenter
Overview
● Objective
● Introduction: Openflow and Trema
● System Design
● Current works
● Future works
● Demonstration
Objective
● Provide a web service for user to create openflow flow rules
● Reduce complexity of flow rule creation
Introduction: Openflow
● A new communication protocol that give access to forwarding plane of a network switch/router over a network
● Unified forwarding protocol among existing switch/router vendor such Juniper Networks, HP, Dell, Fujitsu and so on
● Enabler for Software Defined Networking
● Important terms; - datapath ID- match fields- action output
Introduction: Openflow
Packet flow
Host
OpenflowSwitch #1
OpenflowSwitch #2
OpenflowController
Data plane
Control plane (secure channel)
Introduction: Openflow
Packet flow
Host
OpenflowSwitch #1
OpenflowSwitch #2
OpenflowController
Firstpacket
Introduction: Openflow
Packet flow
Host
OpenflowSwitch #1
OpenflowSwitch #2
OpenflowController
Installation Of Flow Rule
Introduction: Openflow
Packet flow
Host
OpenflowSwitch #1
OpenflowSwitch #2
OpenflowController
subsequentpackets
Introduction: Openflow
Packet flow
Host
OpenflowSwitch #1
OpenflowSwitch #2
OpenflowController
subsequentpackets
Introduction: Trema
● There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema
● Our development on openflow controller is based on Trema
● Trema supports C(C++) and Ruby API
● Compared to NOX, lines of coding is lesser for developing OFC on Ruby-based Trema
● Trema provides additional features;- Tremashark; a plug-in to Wireshark (Traffic monitor application)- Network emulator
System Design
● Two space design: front-end and back-end modules
● Front-end --> Web servicesBack-end --> Openflow controller
● Utilised ZeroMQ library to provide interaction between front-end and back-end modules
● ZeroMQ is a interprocess communication (IPC) protocol with request-response messaging
System DesignWebBrowser
Web Server
TopologyDiscovery
PolicyComposer
PolicyQuery
TrafficMonitor
Front-end
Back-end
Controller
TopologyManager
PolicyManager
TrafficManager
MySQL
ActualNetwork
System Design
● With topology library (Trema application) to detect up-to-date network topology
● Identify host and switch node
● Update web service with latest network information to prevent invalid policy creation
TOPOLOGY MANAGER
System Design
● A policy is chain of flow rules and its actions
● Store (Retrieve) policy to (from) database
● Prevent policy conflict or flow rule conflict
POLICY MANAGER
Confusion for switchto decide output port
RULE CONFLICT
Duplicate policyRedundant flow rules
POLICY CONFLICT
Policy 1
Policy 2
Policy 1
Policy 2
System Design
● Provides traffic monitoring on ports of openflow switch (PortStats) and a community (FlowStats)
● Update and display traffic information on web service
TRAFFIC MANAGER
Current works
● Discover openflow switches and update the network topology web service
● Allow user to create a policy comprising flow rules on chosen path
Future works
● Update web service about changes of network topology
● Traffic monitoring and display on particular port or community
● Query on user-created policy and flow rules from database
● Modify and delete stored flow rules in database
● Allow user to create, delete, join and leave a community
Demonstration
● Actual openflow network connecting among Japan, Singapore and Thailand
● Two hosts connecting to singapore-pf52-1 and note-pf52-2 openflow switches
● Scenario: simple file transfer from singapore host to japan host
Demonstration
note-mx80-2
hk-mx80-1
sg-mx80-1
bk-mx80-1
kote-mx80-1
note-pf52-2
note-pf52-1(L2 only)
kote-pf52-1(L2 only)
kote-pf52-2kote-pf52-3
sin-pf52-1
bkk-ip88-1
Host(Japan)
0/2
0/510/50
0/49
0/490/50
0/51
0/2
0/4
0/6
0/40/6
0/17
0/46vid=1999
vid=1999
vid=2004
vid=2004
0/4 0/500/4 0/50
0/490/49
* VLAN IDs1999: Control plane2004: Data plane
OpenFlow enable ports
vid=2004
0/22
vid=1999
0/21
OFC
Host(Singapore)
note-pf52-3
0/28
0/27
Demonstration: Physical Connection
host(singapore)
host(japan)
ofc
note_pf2_2 note_pf2_3kote_pf2_3 kote_pf2_2
singapore_pf52_1 bkk_ip88_1
OFS-OFS connection
Japan
OFS-OFC connection
OFS-Host connection
Demonstration connection
Demonstration: Openflow connection
Sri Lanka Singapore Thailand
Demonstration: Testbed
host(singapore)
host(japan)
ofc
note_pf2_2 note_pf2_3kote_pf2_3 kote_pf2_2
singapore_pf52_1 bkk_ip88_1
Japan
Sri Lanka Singapore
192.168.8.220
192.168.8.200
Thailand
Demonstration: Testbed
Demonstration: Testbed
END