Professional Documents
Culture Documents
(SDN)/ OpenFlow
Experience sharing
Baraki H. Abay
Nov 04,2011
Outline
1. Legacy Networks
2. Software defined networks
Motivation ,Architecture, Principles,
3. OpenFlow
Principles, Architecture
OpenFlow Basics- Flow table, controller, protocol
How it works
Centralized vs Distributed, Aggregated vs Flow based, Proactive
vs Reactive
Network Slicing - FlowVisor
How to get started to play with OpenFlow
4. Industry trends
5. Demo screen shoots
Current Networking Scheme
Fully distributed protocols - hard to add a feature to a
network
Network is closed for research and innovation
Network administrators and Researchers
can only configure devices
Software is embedded in Industry
Data plan and control plan in the
same device
Routers and switches are locked
Packet forwarding and decision
controlled by underlined switched and
routers
Closed System Ap Ap Ap
Ap Ap Ap
p
p p
p p
p
Operating
Operating
System
System
Packet
Packet
Forwarding
Forwarding
Hardware
Hardware
Ap
Ap Ap
Ap Ap
Ap
p
p p
p p
p
Operating
Operating
System
System
Packet
Packet
Forwarding
Forwarding
Hardware
Hardware Ap Ap Ap
Ap Ap Ap
p p p
p p p
Operating
Operating
System
System
Ap
Ap Ap
Ap Ap
Ap Packet
Packet
p
p p
p p
p
Forwarding
Forwarding
Operating
Operating Hardware
Hardware
System
System
Hardwared
Hardwared
Packet
Packet
Forwarding
Forwarding
Mitigation approach
Open Development environment for Networking
Isolation:
regular production Network untouched
Virtualized and Programmable networks
6
SDN Architecture Principles
1. Separation of data and control
planes
well defined API/protocol
1. Open Interface to HW
Ap Ap Ap
Ap Ap Ap
p p p
p p p
Operating
Operating
System
System
Packet
Packet
Ap
Ap
Ap
Ap
Ap
Ap Forwarding
Forwarding
p p p
p p p Hardware
Hardware
Operating
Operating
System
System
Packet
Packet
Forwarding
Forwarding
Hardware
Hardware Ap
Ap Ap
Ap Ap
Ap
p
p p
p p
p
Ap
Ap
Ap
Ap
Ap
Ap
Operating
Operating
p p p
p p p System
System
Operating Packet
Packet
Operating
System
System Forwarding
Forwarding
Hardware
Hardware
Hardware
Hardware Packet
Packet
Forwarding
Forwarding
OpenFlow
What is OpenFlow?
openflow.org
OpenFlow
Motivation
Network changes are sluggish
The need for programmable networks
Goal
Use a centralized controller to determine traffic
forwarding
Principle
Separate control plane from data plane
OpenFlow
SDN protocol(API) that modifies forwarding tables in
network switches.
Added as a feature to commercial Ethernet switches,
routers and wireless access points
Developed by Stanford University
Sits between a switch and controller
Allows the path of network packets through the
network of switches to be determined by software
running on a separate server
OpenFlow
Vendor independent
Protocol is open source
Version status
OF 1.0 : most widely used version
OF 1.1: multiple tables and counters
OF 1.2 : Wire protocol IPv6, basic configuration
OF 1.3 : Topology discovery, test processes
OF 1.4 : capability discovery , test labs
Classic Switch Vs OpenFlow Switch
OpenFlow Enabled
Classic Switch/Router Switch/Router
Data path and control path Separates the data path and
occur on the same device control path
Data path- packet forwarding Data path portion still
path resides on the switch
Control path- routing High level routing decisions
decisions reside in controller
The OpenFlow switch and
the controller communicate
via the OpenFlow protocol
OpenFlow Specification Basics
Consists at least three parts
Flow Table – define how the switch will process each flow
Secure Channel –to connect to controller
OpenFlow Protocol(API) Controller
( SSL) PC
tocol
Pro
OpenFlow Switch p en Flow
O
sw Secure •Flow table are set up on
Channel switches
•Controller talk to the
Flow switch via the OpenFlow
hw protocol
Table
Flow table Entry
Flow table consists of set of entries to compare incoming
packets against
Each flow entry consist of match fields, counters, actions
Matching starts at the first flow table
Flow entries match in priority order
Match found
Apply the instructions
Match not found
forwarded to the controller over the OpenFlow channel,
dropped
may continue to the next flow table
Table entry
Rule Action Stats
•Per table
Packet + byte counters •Per flow
•Per table
Modify-State, barrier
Asynchronous
To update the controller of network events and changes to the
switch state.
sent without the controller soliciting them from a switch
To tell controller a packet arrival, switch state change, or error
Controller
2
.0.
68
192.10.0.1
.1
192
Statistics 10.4.0.2
Action
Rule
192.168.0.1 Entry
OFS Available?
192.168.0.2
10.4.0.2
OFS
Rule Action Statistics
OFS
Inst.
rule
Rule Action Statistics Ins
rul t. PC
e 10.4.0.2
OFS Inst.
Rule Action Statistics rule
Controller
192.168.0.2
10.4.0.2
Flow match Examples
Flow Rule(match) Action
Controller Usage Models
Centralized vs Distributed control
Centralized Control Distributed Conrol
Controller
Controller
PC PC
OFS OFS Controller
PC
Controller
OFS
OFS OFS PC
OFS
Flow Routing vs Aggregation
Flow-based Aggregated
Every flow is individually set One flow entry covers large
up by controller groups of flows
Exact match flow entries Wildcard flow entries
Flow table contains one entry Flow table contains one entry
per flow per category of flows
Good for fine grain control Good for large # of flows
Reactive vs Proactive
Reactive Proactive
First packet of flow triggers Controller pre-populates flow
controller to insert flow entries table in switch
Efficient use of flow table Zero additional flow set up
Every flow incurs small time
additional set up time Loss of control connection
Switch has limited utility of doesn’t disrupt connection
connection control is lost Requires aggregated rules
Open Controllers
Controller name Language Platform
Slicing Layer
Switch data
plane
FlowVisor
A tool for slicing OpenFlow Networks
creating multiple isolated and programmable logical
networks on the same physical topology
Puts Slicing Policies
The policy specifies resource limits for each slice:
– Link bandwidth
– Maximum number of forwarding rules
– Topology
– Fraction of switch/router CPU
Virtual networks through FlowVisor
Research 2
Research 1 controller Prod. nkt controller controller
PC PC PC
OpenFlow
protocol
OFS
OpenFlow
protocol
Flow Visor
Hardware switches
OpenFlow enabled commercial switches – ex. pronto
Controller
Reference Learning Switch Controller
NOX, Beacon, SNAC
What can we do with OpenFlow
Write- configure – deploy
Experimenting our networks
Develop network applications on top of existing
controllers (ex. NOX, Beacon)
Customize controllers
Extend existing controllers
Developing our own controller
Example Developing on NOX
Basics – components and events
Develop components that handle events
Components can be developed using
C++
Python or
Combination of them
NOX built-in component
Core apps
Network apps
Web apps
Third-part y extensions
Example – a component
Events
Drives execution in NOX
Core events
Data_path_join event, Packet_in_event
Application events
Host_in event, flow_in event etc
By Stanford
OFELIA - Pan-European Test Facility for OpenFlow
Experimentation