networking answer 3 questions must be original
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.1
Lecture 5 Software Defined Networks (ST: Advances in Networks)
CS 6/75995 Summer 2014
H. Peyravi Department of Computer Science
Kent State University
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 1 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.2
§5.0.0 Contents Acronyms 1 Introduction
Software Defined Networks 2 Today’s Networks
Today’s Networks Limitations of Current Networks Drawbacks of Existing Networks
3 Idea: An OS for Networks Idea: An OS for Networks
4 SDN History SDN History
5 SDN Architecture SDN Architecture SDN Benefits SDN Standard Bodies SDN Paradigm
6 The Road to SDN The Road to SDN Some Basic Questions
7 OpenFlow OpenFlow Centralized vs. Distributed Control OPenFlow Protocol Messages Secure Channel (SC) Packet Matching Pipeline Processing Instructions and Action Set Actions Flow Table Entry Flow Switching/Routing Load Balancing Dynamic Flow Modification Flow Routing vs. Aggregation Reactive vs. Proactive Entries
8 Virtualization Virtualization Server Virtualization Network Virtualization Models for Network Virtualization Network Slice Model
9 Virtualizing OpenFlow Trend
10 References
The contents of this lecture have been composed from various resources including those listed at the reference section.
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 2 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.3
§5.0.0 Glossaries API Application Programming Interface 18, 23, 26
BGP Boarder Gateway Protocol 6 DiffServ Differentiated Services 6
IETF Internet Engineering Task Force 21 MPLS Multiprotocol Label Switching 6, 46
NAT Network Address Translation 6 NIC Network Interface Controller 22
ONF Open Networking Foundation 21 OSPF Open Shortest Path First 6
SDK Software Development Kit 22 SDN Software Defined Networking 14, 18, 19, 22, 24
VLAN Virtual Local Area Network 46 VM Virtual Machine 8
VPN Virtual Private Network 46 VRF Virtual Routing and Forwarding 46
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 3 / 52
Software Defined Networks
Acronyms
Introduction Software Defined Networks
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.4
Introduction Software Defined Networks
§5.1.1 Software Defined Networks
å Reading list: [3, 4, 5]
Control Control
Plane Plane
Open Interface
Plane Control
Open Interface
Merchant Switching Chips
Specialized
Current Single Vendor Ecosystem
Future Open Network Ecosystem
Vertically integrated
Closed interfaces
Proprietary
Slow innovation Rapid innovation
Open interfaces Horizontal
Apps
Specialized Hardware
PlaneControl
Specialized Features
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 4 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks Today’s Networks
Limitations of Current Networks
Drawbacks of Existing Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.5
Today’s Networks Today’s Networks
§5.2.1 Today’s Networks I
Today’s networks are statically provisioned
[1]
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 5 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks Today’s Networks
Limitations of Current Networks
Drawbacks of Existing Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.6
Today’s Networks Today’s Networks
§5.2.1 Today’s Networks II
[1]
Many complex functions are baked into infrastructure I Open Shortest Path First (OSPF), Boarder Gateway Protocol (BGP),
Differentiated Services (DiffServ), Network Address Translation (NAT), firewalls, Multiprotocol Label Switching (MPLS) etc.
How to efficiently and effectively manage such a comples system?
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 6 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks Today’s Networks
Limitations of Current Networks
Drawbacks of Existing Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.7
Today’s Networks Today’s Networks
§5.2.1 Today’s Networks III
A Box
. . .Features FeaturesFeatures
Operating System
Specialized Packet Forwarding Hardware
Million lines of source code
5400 RFCs
Barrier to entry
Billions of gates Bloated Power hungry
Routing, management, access control etc.
Devices are managed at a box level I Applications I Operating systems I Hardware
Kind of mainframe mentality
The box becomes a barrier to entry
Resources are often under-utilized
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 7 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks Today’s Networks
Limitations of Current Networks
Drawbacks of Existing Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.8
Today’s Networks Limitations of Current Networks
§5.2.2 Limitations of Current Networks I 1 Enterprise networks are difficult to manage
I We Cannot dynamically make changes according to network conditions
2 No control plane abstraction for the whole network I Like old days of computers when there were no operating systems
3 New control requirements are needed for I Greater scalability I Migration of Virtual Machines (VMs)
• Migrating operating system instances across distinct physical hosts in K Clusters K Data centers
• It allows a clean separation between hardware and software to K facilitate fault management K load balancing
4 No mix and match between various devices and interfaces 5 Lack of competition at each layer 6 Configuring such huge networks is very difficult if not impossible
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 8 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks Today’s Networks
Limitations of Current Networks
Drawbacks of Existing Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.9
Today’s Networks Drawbacks of Existing Networks
§5.2.3 Drawbacks of Existing Networks It is difficult to perform real world experiments on large scale networks I Research stagnation
• Costly equipment needed to be setup to conduct research We have a closed system I We are stuck with interfaces I Vendors have proprietary software/hardware Network equipment have been hardware centric Why? I To increase network capacity I Faster packet switching The impact has been I Slower innovation I Reducing flexibility once chips are fabricated
• Firmware provides some programmability Vendor specific software I Custom built
K Better efficiency K Increasing competitive edge
I Impact K Closed software K Non-standard interfaces
Proprietary networking devices with proprietary software and hardware resulted I Limiting innovation to vendor/ vendor partners I Major barriers for new ideas in networking
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 9 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.10
Idea: An OS for Networks Idea: An OS for Networks
§5.3.1 Idea: An OS for Networks I
Closed Boxes
Operating System
Specialized Packet Forwarding Hardware
App App App
Operating System
Specialized Packet Forwarding Hardware
App App App
Operating System
Specialized Packet Forwarding Hardware
App App App
Operating System
Specialized Packet Forwarding Hardware
App App App
Operating System
Specialized Packet Forwarding Hardware
App App App
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 10 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.11
Idea: An OS for Networks Idea: An OS for Networks
§5.3.1 Idea: An OS for Networks II Adding Network OS + Control Program
Operating System
Specialized Packet Forwarding Hardware
App App App
Operating System
Specialized Packet Forwarding Hardware
App App App
Operating System
Specialized Packet Forwarding Hardware
App App App
Operating System
Specialized Packet Forwarding Hardware
App App App
Operating System
Specialized Packet Forwarding Hardware
App App App
Control Program
Network Operating System
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 11 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.12
Idea: An OS for Networks Idea: An OS for Networks
§5.3.1 Idea: An OS for Networks III Separation of Control Panel from Data Panel: SDN [7]
Specialized Packet Forwarding Hardware
Specialized Packet Forwarding Hardware
Specialized Packet Forwarding Hardware
Specialized Packet Forwarding Hardware
Specialized Packet Forwarding Hardware
Network Operating System
Open API Control Program
Open Interface to Hardware
(OpenFlow)
Routing Traffic Security AppApp. . .Engineering
Data Plane
Control Plane
It decouples topology, traffic and inter-layer dependencies
It offers dynamic multi-layer networking
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 12 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.13
Idea: An OS for Networks Idea: An OS for Networks
§5.3.1 Idea: An OS for Networks IV
NOX: Towards an Operating System for Networks [6]
Network Operating System
Global Network View
Control Program
Protocols
Control via forwarding interface
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 13 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.14
SDN History SDN History
§5.4.1 SDN History I
Software Defined Networking (SDN) is part of a long history of efforts to make computer networks more programmable
Traditional node entity
Ethernet Switch
Control Path (Software)
Data Path (Hardware)
SDN separated control panel from data panel
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 14 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.15
SDN History SDN History
§5.4.1 SDN History II SDN Elements
Ethernet Switch
App1 App2 App3
SDN Client Data Path (Hardware)
SDN Controller (Server)Controller (Server)
SDN Protocol − Open Flow
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 15 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.16
SDN History SDN History
§5.4.1 SDN History III
Networks have various kinds of equipment I Hardware: Routers, switches, etc. I Middleware: firewalls, network address translators, load balancers,
intrusion detection systems I Software: application protocols
Switches and routers run distributed control software that is typically closed and proprietary The software implements network protocols I Tested for interoperability and standardization
Network administrators configure network devices using configuration interfaces I Vary across networks I Vary across protocols
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 16 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture SDN Architecture
SDN Benefits
SDN Standard Bodies
SDN Paradigm
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.17
SDN Architecture SDN Architecture
§5.5.1 SDN Architecture I
SDN Applications
(e.g., OpenFlow) Control & DataPlane Programmable Interface
SDN Controller
Programmable Open APIs
Business Applications
Cloud Orchestration
(e.g., OpenStack, CloudStack)L a
y e
r L
a y e
r L
a y e
r In
fr a
s tr
u c tu
re C
o n
tr o
l A
p p
li c a
ti o
n
Network Device Network Device Network Device
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 17 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture SDN Architecture
SDN Benefits
SDN Standard Bodies
SDN Paradigm
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.18
SDN Architecture SDN Architecture
§5.5.1 SDN Architecture II SDN has gained significant traction recently I Many commercial switches support the OpenFlow Application
Programming Interface (API) SDN enables innovation in how we design and manage networks I Computer networks are complex and difficult to manage
SDN has changed network management in different ways
1 SDN separates the control plane from from the data plane I Control plane ⇒ decides how to handle the traffic I Data plane ⇒ forwards traffic according to the control plane’s rules
2 SDN consolidates the control plane to control multiple data plane elements I Controls routers, switches, and other middle boxes I Using a well-defined API
K Brings network to applications K OpenFlow [7] is an example of API developed at Stanford
Û An OpenFlow switch has one or more tables of packet-handling rule Û Each rule matches a subset of traffic and performs certain actions on
the traffic – e.g., Dropping, forwarding
Û An OpenFlow switch can behave like a router, switch, firewall, network address translator, etc.
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 18 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture SDN Architecture
SDN Benefits
SDN Standard Bodies
SDN Paradigm
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.19
SDN Architecture SDN Architecture
§5.5.1 SDN Architecture III
Many different controller platforms have emerged These controlling platforms have been used to create many applications I Dynamic access control I Server load balancing I Network virtualization I Energy-efficient networking I Seamless virtual-machine migration and user mobility Major companies (Google, HP, NEC, etc.) have joined SDN industry consortium I Open Networking Foundation I Open Daylight SDN idea has its root in early telephone systems I Separation of control and data planes to
• Simplify network management • Deployment of new services
SDN also resembles past research on active networking I Programmable networks
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 19 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture SDN Architecture
SDN Benefits
SDN Standard Bodies
SDN Paradigm
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.20
SDN Architecture SDN Benefits
§5.5.2 SDN Benefits
1 It facilitates Innovations in Networks
2 It is a layered architecture with standard open interfaces I Independent innovation can be developed at each layer
3 Experiment and research can be conducted without using bulky, expensive equipment
4 Offers more accessibility since software can be easily developed by more vendors
5 Speed-to-market I There is no hardware fabrication cycles
6 Offers more flexibility with programmability
7 Ease of customization and integration with other software applications
8 Fast upgrades
9 Programming a network vs configure a network
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 20 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture SDN Architecture
SDN Benefits
SDN Standard Bodies
SDN Paradigm
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.21
SDN Architecture SDN Standard Bodies
§5.5.3 SDN Standard Bodies
1 Open Networking Foundation (ONF) I https://www.opennetworking.org/
2 OpenFlow Organization I http://www.openflow.org/
3 Clean State at Stanford I http://cleanslate.stanford.edu
4 Internet Engineering Task Force (IETF) I http://tools.ietf.org/html/draft-nadeau-sdn-problem-statement-00 I http://tools.ietf.org/html/draft-nadeau-sdn-framework-01
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 21 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture SDN Architecture
SDN Benefits
SDN Standard Bodies
SDN Paradigm
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.22
SDN Architecture SDN Paradigm
§5.5.4 SDN Paradigm
Software-Centric-Network I Network devices provide Software Development Kits (SDKs) I SDN facilitates third-party application development and integration I SDN allows software vendors to develop network applications I SDN helps evolving standards for network applications
SDN Entities
1 A general purpose commodity-off-the-shelf hardware
2 A real time optimized operating system ⇒ mostly Linux based 3 Some high end power and multi-port Network Interface Controller
(NIC) cards 4 Integration with other new trends in servers
I Virtualization I Parallelization I Modularity
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 22 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN The Road to SDN
Some Basic Questions
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.23
The Road to SDN The Road to SDN
§5.6.1 The Road to SDN I
Making networks programmable enables I Innovation in network management I Lowers the barrier to deploying new services
Historically, we have 3 stages of evolutionary activities in programmable networks I Active networks (mid-1990s to the early 2000s)
• Introduced programmable functions in the network to enable innovations I Control and data plane separation (2001 to 2007)
• Developed open interfaces between the control and data planes I OpenFlow API and network operating systems (2007 to 2010)
• Represented widespread adoption of an open interface • Making control-data plane separation scalable and practical
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 23 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN The Road to SDN
Some Basic Questions
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.24
The Road to SDN The Road to SDN
§5.6.1 The Road to SDN II
Network virtualization played an important role through the evolution of SDN I We will discuss network virtualization and its relationship to SDN
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 24 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN The Road to SDN
Some Basic Questions
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.25
The Road to SDN Some Basic Questions
§5.6.2 Some Basic Questions
1 How to obtain global information?
2 What are the configurations?
3 How to implement?
4 How is the scalability?
5 How does it really work?
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 25 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.26
OpenFlow OpenFlow
§5.7.1 OpenFlow I OpenFlow is an open API that provides a standard interface for programming the data plane switches I An standard way to control flow-tables in commercial switches and routers I Like an x86 instruction set for the network
It provides an open interface to a L2/L3 node (switches, routers) and make them visible to the network
(SW)Secure Channel
(HW)Flow Table SSL
OpenFlow Protocol
Controller
How does it separate the control plane from the data plane? I The data path consists of a Flow Table
• An action associated with each flow entry I The control path consists of a controller
• It programs the flow entry in the flow table
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 26 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.27
OpenFlow OpenFlow
§5.7.1 OpenFlow II
OpenFlow is based on an Ethernet switch with I an internal flow-table I a standardized interface to add/remove flows
OpenFlow was intended to enable innovation in campus networks I Like hardware drivers
• Interface between switches and network
It has been deployed at Stanford ⇒ http://cleanslate.stanford.edu
Some Applications
Mobility management
Network-wide energy management
New naming/addressing schemes
Network access control
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 27 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.28
OpenFlow Centralized vs. Distributed Control
§5.7.2 Centralized vs. Distributed Control
Centralized
(SW)Secure Channel
(HW)Flow Table
(SW)Secure Channel
(HW)Flow Table
(SW)Secure Channel
(HW)Flow Table
Controller
Distributed
(SW)Secure Channel
(HW)Flow Table
(SW)Secure Channel
(HW)Flow Table
(SW)Secure Channel
(HW)Flow Table
Controller
Controller
Controller
One OpenFlow switch cannot be controlled by two controllers with out additional abstractions
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 28 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.29
OpenFlow OPenFlow Protocol Messages
§5.7.3 OPenFlow Protocol Messages
Controller-to-Switch messages I Initiated by the controller I Used to directly manage or inspect the state of the switch
• Features, Config, Modify State, Read-State, Packet-Out, Barrier
Asynchronous I Asynchronous messages are sent without the controller soliciting them
from a switch • Packet-in, Flow Removed / Expiration, Port-status, Error, Barrier
Symmetric I Symmetric messages are sent without solicitation, in either direction
• Hello, Echo, Experimenter / Vendor
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 29 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.30
OpenFlow Secure Channel (SC)
§5.7.4 Secure Channel (SC)
Secure Channel is the Interface that connects each OpenFlow switch to controller
A controller configures and manages the switch, receives events from the switch, and send packets out the switch via this interface Secure Channel establishes and terminates the connection between OpenFlow Switch and the controller I Using Connection Setup and Connection Interruption procedures The Secure Channel connection is a TLS connection I Switch and controller mutually authenticate by exchanging certificates
signed by a site-specific private key
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 30 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.31
OpenFlow Packet Matching
§5.7.5 Packet Matching Packet Arrival
fields
Extract headerPacket
arrives
Match in
any tables ?
Apply actions
Updata statistics
Encapsulate and
forward to controller
Yes
No
Table Match
Table n
Match in
Start at Flow Table n=0
Packet in
o Send the packet to controller
o Drop the packet
o Continue to the next table
o Update action set
Execute Instruction Set
Update Counters and
o Update packet/match set fields
o Update metadata
Execute Action Set
Table n++
Go to
Based on table configuration, do one of the following
Yes
Yes
NoNo
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 31 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.32
OpenFlow Pipeline Processing
§5.7.6 Pipeline Processing
Steps at each stage 1 Find highest priority matching flow entry 2 Apply instructions
a Modify packet and update match fields • Apply actions instruction
b Update action set • Clear actions and/or write actions instruction
c Update metadata
3 Send match data and actions set to next table
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 32 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.33
OpenFlow Instructions and Action Set
§5.7.7 Instructions and Action Set I Each flow entry contains a set of instructions I They are executed when a packet matches the entry Instructions contain I A set of actions to add to the action set
• A list of actions to apply immediately to the packet I A set of actions to modify pipeline processing An Action set is associated with each packet I It is empty by default
Action set is carried between flow tables
A flow entry modifies action set using Write-Action or Clear-Action instruction Processing stops when: I The instruction does not contain Goto-Table I The actions in the set are executed
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 33 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.34
OpenFlow Instructions and Action Set
§5.7.7 Instructions and Action Set II
List of Instructions to modify action set
Apply Actions I Apply the specified actions immediately
Clear Actions I Clear all the actions in the set immediately
Write Actions I Merge the specified actions to the current set
Write Metadata I Write the meta data field with the specified value
Goto-Table I Indicated the next table in the processing pipeline
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 34 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.35
OpenFlow Actions
§5.7.8 Actions
Required Actions I Output ⇒ Forward a packet to the specified port I Drop I Group Optional Actions I Set-Queue I Push/Pop Tag I Set-Field
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 35 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.36
OpenFlow Flow Table Entry
§5.7.9 Flow Table Entry I
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 36 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.37
OpenFlow Flow Table Entry
§5.7.9 Flow Table Entry II
[2]
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 37 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.38
OpenFlow Flow Switching/Routing
§5.7.10 Flow Switching/Routing I
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 38 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.39
OpenFlow Flow Switching/Routing
§5.7.10 Flow Switching/Routing II
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 39 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.40
OpenFlow Load Balancing
§5.7.11 Load Balancing
Current methods use uniform distribution of traffic
It is not based on network congestion and server load More adaptive algorithms can be implemented by using OpenFlow I Monitoring the network traffic I Program flows based on demand and server capacity
Dynamic load balancing using OpenFlow
Data Forwarding
OpenFlow Switch
Data Forwarding
OpenFlow Switch
Data Forwarding
OpenFlow Switch
Network Operating System
Program Flow Entries Collect Statistics
Observed Load patterns
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 40 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.41
OpenFlow Dynamic Flow Modification
§5.7.12 Dynamic Flow Modification
A microflow rule matches on all fields
A wildcard rule can have ”dont care” bits in some fields Rules can be installed with a timeout I Delete the rule after a fixed time interval (a hard timeout) I Specified period of inactivity (a soft timeout) I The switch counts the number of bytes and packets matching each rule,
and the controller can poll these counter values
Switch MAC MAC Eth VLAN IP IP IP TCP TCP Action
Port Src Dst Type ID Src Dst Port S-port D-port
IPSrc: 192.168.*/24 IPDst: 200.12.*/24 IPDst: 300.12.*/24
Incoming Request
Server 2
Server 1
Balancing Switch
R1
R2
R1
R2
200.12.*/24
300.12.*/24
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 41 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.42
OpenFlow Flow Routing vs. Aggregation
§5.7.13 Flow Routing vs. Aggregation
Both models are possible with OpenFlow
Flow-Based Every flow is individually set up by a controller
Exact match for flow entries
Flow table contains one entry per flow
Good for fine grain control, e.g. campus networks
Aggregation-Based One flow entry covers large groups of flows
Wildcard match for flow entries
Flow table contains one entry per category of flows
Good for large number of flows, e.g. backbone
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 42 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow OpenFlow
Centralized vs. Distributed Control
OPenFlow Protocol Messages
Secure Channel (SC)
Packet Matching
Pipeline Processing
Instructions and Action Set
Actions
Flow Table Entry
Flow Switching/Routing
Load Balancing
Dynamic Flow Modification
Flow Routing vs. Aggregation
Reactive vs. Proactive Entries
Virtualization
Virtualizing OpenFlow
References 5.43
OpenFlow Reactive vs. Proactive Entries
§5.7.14 Reactive vs. Proactive Entries
Both models are possible with OpenFlow
Reactive First packet of flow triggers controller to insert flow entries
Efficient use of flow table
Every flow incurs small additional flow setup time
If control connection lost, switch has limited utility
Proactive Controller pre-populates flow table in switch
Zero additional flow setup time
Loss of control connection does not disrupt traffic
Essentially requires aggregated (wildcard) rules
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 43 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization Virtualization
Server Virtualization
Network Virtualization
Models for Network Virtualization
Network Slice Model
Virtualizing OpenFlow
References
5.44
Virtualization Virtualization
§5.8.1 Virtualization
Abstraction between the physical resources and their logical representation Virtualization can be implemented in various layers of a computer system or network 1 Storage Virtualization ⇒ OS virtual memory 2 Server Virtualization 3 Network Virtualization
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 44 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization Virtualization
Server Virtualization
Network Virtualization
Models for Network Virtualization
Network Slice Model
Virtualizing OpenFlow
References
5.45
Virtualization Server Virtualization
§5.8.2 Server Virtualization Server virtualization refers to the partitioning of the resources of a single physical machine into multiple execution environments I Each of which can host a different server Server virtualization methods 1 Partitioning
• Each virtual machine is a subset of the physical resources
Application
Guest OS
Virtual Hardware
Application
Guest OS
Virtual Hardware
Application
Guest OS
Virtual Hardware
Hypervisor or VMM
Virtual Machines (CPU, Memory, NIC, Disk)
2 Aggregation • Concatenation of physical resources
Virtual Machine
Hypervisor or VMM Hypervisor or VMM Hypervisor or VMM Hypervisor or VMM
OS
Application
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 45 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization Virtualization
Server Virtualization
Network Virtualization
Models for Network Virtualization
Network Slice Model
Virtualizing OpenFlow
References
5.46
Virtualization Network Virtualization
§5.8.3 Network Virtualization I
Network virtualization allows heterogeneous virtual networks that are isolated, independently managed to coexist over a shared physical network infrastructure Network virtualization is not a new concept I It is available in parts
• MPLS L2/L3 Virtual Private Network (VPN), Virtual Local Area Network (VLAN), Virtual Routing and Forwarding (VRF), etc.
Network virtualization can slice particular hardware resources and logically isolate them I MPLS can virtualize forwarding tables I VLANs slice the link layer
Currently there is no single technology (or clear abstraction) that will virtualize the network as a whole
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 46 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization Virtualization
Server Virtualization
Network Virtualization
Models for Network Virtualization
Network Slice Model
Virtualizing OpenFlow
References
5.47
Virtualization Network Virtualization
§5.8.3 Network Virtualization II
Switch Based Virtualization
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 47 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization Virtualization
Server Virtualization
Network Virtualization
Models for Network Virtualization
Network Slice Model
Virtualizing OpenFlow
References
5.48
Virtualization Models for Network Virtualization
§5.8.4 Models for Network Virtualization I
1 Network Slicing Model I Logically isolated network partitions are created over a shared physical
network infrastructure
2 HyperVisor Model I The model combines logical computer network resources into a single
platform appearing as a single network • HyperVisor, Vswitch
3 Hybrid Model I Combination of the above two models
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 48 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization Virtualization
Server Virtualization
Network Virtualization
Models for Network Virtualization
Network Slice Model
Virtualizing OpenFlow
References
5.49
Virtualization Network Slice Model
§5.8.5 Network Slice Model
Virtual Network 1
Physical Network
Virtual Network2
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 49 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow Trend
References
5.50
Virtualizing OpenFlow Trend
§5.9.1 Trend I
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 50 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow Trend
References
5.51
Virtualizing OpenFlow Trend
§5.9.1 Trend II
App App App App
Specialized Packet Forwarding Hardware
Specialized Packet Forwarding Hardware
App App App App
Network Operating System 1
Operating Network
System 2
Network Operating System 3
Network Operating System 4
Open Interface to Hardware
Open Interface to Hardware
Virtualization or Slicing Layer
Specialized Packet Forwarding Hardware
Specialized Packet Forwarding Hardware
Specialized Packet Forwarding Hardware
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 51 / 52
Software Defined Networks
Acronyms
Introduction
Today’s Networks
Idea: An OS for Networks
SDN History
SDN Architecture
The Road to SDN
OpenFlow
Virtualization
Virtualizing OpenFlow
References
5.52
References
§5.10.0 References
[1] http://www.excitingip.com/743/network-convergence/.
[2] http://www.ipinfusion.com/.
[3] Astuto A. Bruno, Marc Mendonca Nunes, Xuan-Nam Nguyen, Katia Obraczka, and Thierry Turletti. A survey of software-defined networking: Past, present, and future of programmable networks. IEEE Communications Surveys and Tutorials, 14:1–17, 2012. [PDF].
[4] Nick Feamster, Jennifer Rexford, and Ellen Zegura. The road to SDN. ACM Queue: Tomorrow’s Computing Today, 11(12):??–??, December 2013. [PDF].
[5] Nick Feamster, Jennifer Rexford, and Ellen Zegura. The road to sdn: An intellectual history of programmable networks. SIGCOMM Comput. Commun. Rev., 44(2):87–98, April 2014. [PDF].
[6] Natasha Gude, Teemu Koponen, Justin Pettit, Ben Pfaff, Martı́n Casado, Nick McKeown, and Scott Shenker. Nox: Towards an operating system for networks. SIGCOMM Comput. Commun. Rev., 38(3):105–110, July 2008.
[7] Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson, Jennifer Rexford, Scott Shenker, and Jonathan Turner. Openflow: Enabling innovation in campus networks. SIGCOMM Comput. Commun. Rev., 38(2):69–74, March 2008.
(CS 6/75995: ST: Advances in Networks) Software Defined Networks Summer 2014 52 / 52
- Introduction
- Software Defined Networks
- Today's Networks
- Today's Networks
- Limitations of Current Networks
- Drawbacks of Existing Networks
- Idea: An OS for Networks
- Idea: An OS for Networks
- SDN History
- SDN History
- SDN Architecture
- SDN Architecture
- SDN Benefits
- SDN Standard Bodies
- SDN Paradigm
- The Road to SDN
- The Road to SDN
- Some Basic Questions
- OpenFlow
- OpenFlow
- Centralized vs. Distributed Control
- OPenFlow Protocol Messages
- Secure Channel (SC)
- Packet Matching
- Pipeline Processing
- Instructions and Action Set
- Actions
- Flow Table Entry
- Flow Switching/Routing
- Load Balancing
- Dynamic Flow Modification
- Flow Routing vs. Aggregation
- Reactive vs. Proactive Entries
- Virtualization
- Virtualization
- Server Virtualization
- Network Virtualization
- Models for Network Virtualization
- Network Slice Model
- Virtualizing OpenFlow
- Trend
- References