Software Defined Networking
Software Defined Networking
Software Defined Networking
Networking
Reference
Computer Networking: A
Top-Down Approach
8th edition
Jim Kurose, Keith Ross
Pearson, 2020
Generalized forwarding: match plus action
Review: each router contains a forwarding table (aka: flow table)
“match plus action” abstraction: match bits in arriving packet, take action
• destination-based
values in arriving
packet header
forwarding: forward based on dest. IP address
• generalized forwarding:
0111 1
2
3
• many header fields can determine action
• many action possible: drop/copy/modify/log packet
forwarding table
(aka: flow table)
Firewall:
Switch MAC MAC Eth VLAN VLAN IP IP IP IP TCP TCP
Port src dst type ID Pri Src Dst Prot ToS s-port d-port Action
* * * * * * * * * * * 22 drop
Block (do not forward) all datagrams destined to TCP port 22 (ssh port #)
Router Firewall
• match: longest • match: IP addresses and
destination IP prefix TCP/UDP port numbers
• action: forward out a link • action: permit or deny
Switch
• match: destination MAC NAT
address • match: IP address and port
• action: forward or flood • action: rewrite address and
port
1 s1 1 s2
Host h1 2 Host h4
10.1.0.1 4 2 4
10.2.0.4
3 3
Host h3
Host h2
10.2.0.3
10.1.0.2
1 s1 1 s2
Host h1 2 Host h4
10.1.0.1 4 2 4
10.2.0.4
3 3
providers,
institutional, Caches: service
CDN enterprise
provider, mobile, CDNs
network
Middleboxes
initially: proprietary (closed) hardware solutions
move towards “whitebox” hardware implementing open API
move away from proprietary hardware solutions
programmable local actions via match+action
move towards innovation/differentiation in software
SDN: (logically) centralized control and configuration management
often in private/public cloud
network functions virtualization (NFV): programmable services over
white box networking, computation, storage
Per-router control plane
Individual routing algorithm components in each and every router
interact in the control plane to computer forwarding tables
Routing
Algorithm
control
plane
data
plane
values in arriving
packet header
0111 1
2
3
Remote Controller
control
plane
data
plane
CA
CA CA CA CA
values in arriving
packet header
0111 1
2
3
Specialized
Operating or or
System
Windows Linux MAC OS
Specialized Open Interface
Hardware
Microprocessor
u 2
3
1 z
1
2
x 1 y
u 2
3
1 z
1
2
x 1 y
u 2
3
1 z
1
2
x 1 y
control
plane
data
plane
1: generalized “flow-based”
forwarding (e.g., OpenFlow)
Network Layer: 5-24
Software defined networking (SDN)
network-control
Data-plane switches: applications
…
routing
fast, simple, commodity switches
access load
implementing generalized data-plane control balance
forwarding (Section 4.4) in hardware control
plane
flow (forwarding) table computed, northbound API
(e.g., OpenFlow)
southbound API
• defines what is controllable, what is not
protocol for communicating with data
controller (e.g., OpenFlow) plane
tolerance, robustness
SDN-controlled switches Network Layer: 5-26
Software defined networking (SDN)
network-control
network-control apps: applications
…
routing
“brains” of control: implement access load
control functions using lower- control balance
data
plane
statistics
3 … flow tables
2 SDN controller receives OpenFlow
message, updates link status info
Link-state info host info … switch info
2 3 Dijkstra’s routing algorithm
OpenFlow … SNMP
application has previously registered
to be called when ever link status
changes. It is called.
1
4 Dijkstra’s routing algorithm access
s2 network graph info, link state info
s1
s4 in controller, computes new
s3 routes
Network Layer: 5-32
SDN: control/data plane interaction example
Dijkstra’s link-state
routing
4 5
network
graph
RESTful
API
… intent 5 link state routing app interacts
3 … with flow-table-computation
statistics flow tables component in SDN controller,
Link-state info host info … switch info
which computes new flow tables
2 needed
OpenFlow … SNMP
6 controller uses OpenFlow to
6
install new tables in switches
1 that need updating
s2
s1
s4
s3
Network Layer: 5-33
OpenDaylight (ODL) controller
Traffic
Engineering Firewalling Load Balancing … Network Orchestrations and Applications
Northbound API
REST/RESTCONF/NETCONF APIs
Enhanced Basic Network Functions
Services
Topology Switch Stats
AAA … processing mgr. mgr.
Forwarding Host
… rules mgr. Tracker
Service Abstraction Layer:
config. and
operational data messaging Service Abstraction interconnects internal,
store Layer (SAL) external applications
and services
OpenFlow NETCONF SNMP OVSDB … Southbound API