EEE 4121F-B
Software-Defined
Networking
SDN Overview
Roots of SDN: Make Network
Management Easier by “Removing
Routing From Routers”
⬜ Routing is hard to do in a distributed fashion
◼ Beyond single-path and/or shortest-path routing
⬜ Difficult to make load-sensitive routing stable
◼ Over-reacting to out-of-date information
⬜ Poor visibility to drive good decisions
◼ Incomplete local views of topology and load
⬜ Not flexible enough for end users
◼ Cannot easily select customized routes
⬜ Difficult to extend over time
◼ Hard-coded into the underlying routers
3
What is a Software-Defined
Network?
⬜ Separate data plane and control plane
⬜ Control network behavior from single high-level
control program
⬜ Two parts to the infrastructure
◼ Data plane: programmable switches
◼ Control plane: controllers, apps
⬜ Deployments to solve network management
problems in real networks
4
SDN Infrastructure: Two Parts
⬜ Software Control Plane
◼ The network’s “brain”
◼ Can be run separately from devices
◼ Computes logic of how traffic will be forwarded
⬜ Programmable Data Plane
◼ Typically programmable hardware
◼ Controlled by the control plane
5
Why network operators need SDN
1. Network-wide views
a. topology
Control
Program
b. traffic
Control
Program
Control
Program
Global Network Map
Control Plane
Control
Packet
Forwarding
Control
Packet
Forwarding
Control
Packet
Forwarding
Control
Packet
Forwarding
Control
Packet
Forwarding
Why network operators need SDN
2. Network-network level objectives
a. load balance
b. Security
3. Direct access and control
a. configure and control a network from a logically
central location
Control
Program
Control
Program
Control
Program
Global Network Map
Control Plane
Control
Packet
Forwarding
Control
Packet
Forwarding
Control
Packet
Forwarding
Control
Packet
Forwarding
Control
Packet
Forwarding
SDN: A Major Trend in Networking
Entire backbone
runs on SDN
Bought for $1.2 billion
(mostly cash)
8
Pre SDN
⬜ Closed Systems with no or very minimal
abstractions in the network design.
⬜ Hardware centric – usage of custom hardware:
Application Specific Integrated Circuit (ASICs) with
Vendor Specific Software.
⬜ Difficult to perform real world experiments on large
scale production networks.
⬜ No standard abstractions towards northbound and
southbound interfaces, even though we have
standard abstractions in the east/west bound
interface with peer routers/switches.
Software Defined Networking
10
Why Separate the Control and Data Planes?
⬜ Independent evolution and development
◼ The software control of the network can evolve
independently of the hardware.
⬜ Control from high-level software program
◼ Control behavior using higher-order programs
◼ Debug/check behavior more easily
The Networking “Planes”
⬜Data plane: processing and delivery of packets with local
forwarding state
◼ Forwarding state + packet header → forwarding decision
◼ Filtering, buffering, scheduling.
⬜Control plane: computing the forwarding state in routers
◼ Determines how and where packets are forwarded
◼ Routing, traffic engineering, failure detection/recovery, etc.
⬜Management plane: configuring and tuning the network
◼ Traffic engineering, device provisioning, etc.
12
Timescales
Data
Timescale
Packet
(nsec)
Location Linecard
hardware
Control
Management
Event (10
Human (min
msec to sec) to hours)
Router
software
Humans or
scripts
13
Network Devices and Planes
Control
plane
Control
plane
Control
plane
Control
plane
Control
plane
Data
plane
Data
plane
Data
plane
Data
plane
Data
plane
fwd tbl
fwd tbl
fwd tbl
fwd tbl
fwd tbl
Control +
Data
Plane
Control +
Data
Plane
Control +
Data
Plane
Control +
Data
Plane
control plane
data plane
Line card
Line card
Control +
Data
Plane
Processor
Line card
Line card
Switching
Fabric
Line card
Line card
Management Plane
⬜ Traffic Engineering: setting the weights
◼ Inversely proportional to link capacity?
◼ Proportional to propagation delay?
◼ Network-wide optimization based on traffic?
2
3
2
1
1
3
1
3
5
4
3
15
SDN Network Devices and Planes
Control
plane
Data
plane
Data
plane
fwd tbl
Data
plane
fwd tbl
Data
plane
Data
plane vendor B
fwd tbl
fwd tbl
Data
plane vendor C
fwd tbl
fwd tbl
Data
plane
Data
plane
fwd tbl
fwd tbl
OpenFlow/Software-Defined Network
3. Well-defined open API
Routing
Traffic Engineering
2. At least one Network OS
probably many.
Open- and closed-source
Controller
1. Open vendor agnostic protocol
OpenFlow
Simple Packet
Forwarding
Hardware
Simple Packet
Forwarding
Hardware
Simple Packet
Forwarding
Hardware
Simple Packet
Forwarding
Hardware
Simple Packet
Forwarding
Hardware
OpenFlow
⬜ OpenFlow is a protocol which enables
programmability of the forwarding plane
⬜ OpenFlow provides open interface to “black box”
networking node (ie. Routers, L2/L3 switch) to
enable visibility and openness in network
⬜ Separation of control plane and data plane.
◼ The datapath of an OpenFlow Switch consists of a Flow
Table, and an action associated with each flow entry
◼ The control path consists of a controller which
programs the flow entry in the flow table
SDN and OpenFlow
Control Program A
Control Program B
Network OS
“If header = p, send to port 4”
Packet
Forwarding
Packet
Forwarding
“If header = q, overwrite header with r,
add header s, and send to ports 5,6”
“If header = ?, send to me”
Flow
Table(s)
Packet
Forwarding
OpenFlow
General Myth
SDN is OpenFlow
Reality
OpenFlow is an open API that provides a standard
interface for programming the data plane
switches (i.e OpenFlow is one way to achieve an
SDN, but there are many others)
Application Programming Interface
Management Plane
Control Plane
OpenFlow
Data Plane
Traditional Switch Forwarding
OpenFlow Switch Forwarding
Components of OpenFlow
❑ An OpenFlow Switch consists of one or more flow tables and a group table, which
perform packet lookups and forwarding, and an OpenFlow channel to an external
controller
❑ The switch communicates with the controller and the controller manages the switch via
the OpenFlow protocol
❑ Using the OpenFlow protocol, the controller can add, update, and delete flow entries in
flow tables, both reactively (in response to packets) and proactively.
❑ Each flow table in the switch contains a set of flow entries; each flow entry consists of
match fields, counters, and a set of instructions to apply to matching packets
OpenFlow Packet: Matching
OpenFlow Packet
❑ Matching starts at the first flow table and may continue to additional flow tables. Flow
entries match packets in priority order, with the first matching entry in each table being
used
❑ If a matching entry is found, the instructions associated with the specific flow entry are
executed. If no match is found in a flow table, the outcome depends on configuration of
the table-miss flow entry: for example, the packet may be forwarded to the controller
over the OpenFlow channel, dropped, or may continue to the next flow table.
Components of OpenFlow Network
OpenFlow Switch specification
OpenFlow Switch
Secure
sw Channel
hw
PC
Controller
Flow
Table
1
5
OpenFlow Controller
⬜Manages one or more switch via OpenFlow channels.
⬜Uses OpenFlow protocol to communicate with a OpenFlow
aware switch.
⬜Acts similar to control plane of traditional switch.
⬜Provides a network wide abstraction for the applications on
northbound.
⬜Responsible for programming various tables in the
OpenFlow Switch.
⬜Single switch can be managed by more than one
controller for load balancing or redundancy purpose. In
this case the controller can take any one of the following
roles.
◼ Master.
◼ Slave.
◼ Equal.
OpenFlow Controllers
⬜OpenSource
◼ OpenDayLight
◼ Floodlight
◼ RYU
◼ NOX/POX
◼ ONOS
⬜Commercial Controllers
◼ Cisco APIC
◼ VMware NSX Controller
◼ HP VAN SDN Controller
◼ NEC ProgrammableFlow PF6800 Controller
◼ Nuage Networks Virtualized Services Controller (VSC)
OpenFlow Channel
⬜Used to exchange OpenFlow message between switch and
controller.
⬜Switch can establish single or multiple connections to same
or different controllers (auxiliary connections).
⬜A controller configures and manages the switch, receives
events from the switch, and send packets out the switch via
this interface
⬜The Secure Channel connection is a TLS/TCP connection.
Switch and controller mutually authenticate by exchanging
certificates signed by a site-specific private key
OpenFlow Message
Three types of OpenFlow
messages
1. Controller to Switch
◼ Feature Request
◼ Configuration
◼ Modify State (flow)
◼ Packet Out
2. Asynchronous (switch to
controller)
◼ Packet-in
◼ Flow Removed
◼ Port Status
◼ Error
3. Asymmetric
◼ Hello
◼ Echo
Initial Connection Setup
OpenFlow Switches
⬜ Types of the switches:
◼ OpenFlow only
◼ OpenFlow hybrid
⬜ Major Components
◼ Ports
◼ Flow Table
◼ Group Table
◼ Meter Table
OpenFlow Ports
⬜Network interfaces for passing packets between Openflow
Processing and the rest of the Network.
⬜Types of Ports:
◼ Physical Ports
▫ Switch defined ports
▫ Eg. Physical ports map one to one Ethernet interfaces
◼ Logical Ports
▫ Switch defined ports that don’t correspond to a
hardware interface of switch
▫ Logical ports include “Tunnel-ID”.
◼ Reserved Ports
▫ Defined by OpenFlow Spec
▫ Specifies generic forwarding actions such as sending
to the controller, flooding and forwarding using nonopenflow methods
Pipeline Processing
EEE4121F-B
NEVER GIVE UP.