Professional Documents
Culture Documents
BSC Module 00 SDN Overview
BSC Module 00 SDN Overview
CONTROLLER
Distributed control
Independent, Control
Switch
Switch
Intelligent, Data
Control
Control Forwarding
Switch
Switch
and Autonomous Switch
Switch
Data
Forwarding
Network Devices Data
Forwarding
Control
Switch
Switch
Data
Control
Forwarding
Switch
Switch
Data
Forwarding
A Brief History of Networking
2015: PCs, laptops, tablets, phones, cloud, datacenters,
virtualization, ...
Distributed control
Independent, Control
Switch
Switch
Intelligent, Data
Control
Control Forwarding
Switch
Switch
and Autonomous Switch
Switch
Data
Forwarding
Network Devices Data
Forwarding
Control
Switch
Switch
Data
Control
Forwarding
Switch
Switch
Data
Forwarding
Why are we still here?
Well it seemed like a good idea at the time...
2/8/17 7
ForCES
Forwarding and Control Separation
Control
Control Blade
Blade Control
Control Blade
Blade
CE
CE CE
CE
Circa 2003
Separation of
Forwarding and
Control Router
Router Blade
FE
FE
Blade Router
Router Blade
FE
FE
Blade
Router
Router Blade
FE
FE
Blade
Planes
2/8/17 8
Clean Slate Program
Starting Over
Forwarding at edge
Network Element Network Element Network Element
2/8/17 9
Ethane
Complete SDN(ish) System
Registration
Registration
Circa 2007:
Policies
Policies Network
Research: Clean Slate Ethane
Ethane Controller
Controller Network Topology
Topology
implementation
Bindings
Bindings
Simple forwarding
devices
Network Element Network Element Network Element
Central controller
Flow
Flow Tables
Tables Flow
Flow Tables
Tables
Flow
Flow Tables
Tables
Forwarding
Forwarding Plane
Plane Forwarding
Forwarding Plane
Plane Forwarding
Forwarding Plane
Plane
2/8/17 10
OpenFlow Protocol
Evolves from prior work
2/8/17 11
Why SDN ?
App
App App
App App
App App
App App
App
App
App
Operating
Operating System
System
App
App App
App
Operating
Operating System
System
2/8/17 13
Why is this bad?
2/8/17 14
Cloud & Mobile Timeline
What was Driving the Networking Market
Overflowing MAC table causes device to flood packets onto the network,
with significant performance implications
Switch
Switch MACs
MACs
...
...
...
...
...
...
...
...
...
...
...
...
2/8/17 17
Spanning Tree Inefficiency
2/8/17 18
VLAN Exhaustion
2/8/17 19
Optimal Traffic Engineering
Shortest Path
Data Data
Forwarding Forwarding
Traffic
Traffic
Open
Open SDN
SDN Congestion
Controller Path
Path
Controller Congestion
2/8/17 20
Data Centers
Aggregation
Aggregation Switch
Scripting to automate Switch
Hypervisor
Hypervisor A Hypervisor
Hypervisor B
Not dynamic enough for A B
datacenter automation
VM VM VM VM VM VM
needs VM
A1
A1
VM
A2
A2
VM
A3
A3
VM
A1
A1
VM
B1
B1
VM
B2
B2
2/8/17 24
VM Plug-in Solutions
Plug-in
Plug-in
VM
VM Network attributes updated
Management
Management by CLI & SNMP
Aggregation
Aggregation Switch
Switch
Linked to server virtualization
platform TOR
TOR Switch
Switch A
A TOR
TOR Switch
Switch B
B
2/8/17 25
RADIUS Solutions
RADIUS
RADIUS
Server
Server
Network attributes updated by RADIUS
Policy
Policy
Aggregation
Aggregation
Switch
Switch
Automatic based on server
TOR
TOR Switch
Switch A
A TOR
TOR Switch
Switch B
B
changes
Physical
Physical Server
Server A
A Physical
Physical Server
Server B
B
Dynamic network re-configuration
Hypervisor
Hypervisor A
A Hypervisor
Hypervisor B
B
using RADIUS attributes
VM
VM VM
VM VM
VM VM
VM VM
VM VM
VM
Untrusted A1
A1 A2
A2 A3
A3 A1
A1 B1
B1 B2
B2
2/8/17 26
Enough Said
2/8/17 27
Solving Data Center Issues
Tunnels
Outer
Outer MAC
MAC // IP
IP // UDP
UDP Header
Header VXLAN
VXLAN Header
Header Outer
Outer Payload
Payload
Original
Original Packet
Packet
UDP
2/8/17 29
Network Virtualization
NVGRE
Outer
Outer MAC
MAC // IP
IP // UDP
UDP Header
Header GRE
GRE Header
Header Outer
Outer Payload
Payload
Original
Original Packet
Packet
GRE
2/8/17 30
Network Virtualization
STT
Outer
Outer MAC
MAC // IP
IP // UDP
UDP Header
Header STT
STT Header
Header Outer
Outer Payload
Payload
Original
Original Packet
Packet
Dest Source Source Dest Src
Src TCP Dst
Dst TCP Context
TCP
Dest
Dest Source
Source
MAC
MAC MAC
MAC IP
IP IP
IP Port
Port 7471*
7471* ID
ID Payload
Payload
MAC
MAC MAC
MAC
2/8/17 31
Network Virtualization
Orchestration Anyone ?
MAC
MAC MAC
MAC 802.1Q
802.1Q 802.1Q
802.1Q Eth
Eth 802.1ad Q-in-Q packet
Payload
Payload
Src
Src Dst
Dst Outer
Outer Tag
Tag Inner
Inner Tag
Tag Type
Type
2/8/17 35
SPB(M): USING MAC-IN-MAC
Eth
Eth
SA
SA DA
DA Payload
Payload Untagged packet
B-SA: Backbone SA Type
Type
B-DA: Backbone DA
B-VID: Backbone VID 802.1Q VLAN-
I-SID: Service ID SA
SA DA
DA
802.1Q
802.1Q Tag
Tag Eth
Eth Payload
Payload tagged packet
(VID)
(VID) Type
Type
802.1Q
802.1Q 802.1Q
802.1Q Eth
Eth
B-SA
B-SA B-DA
B-DA B-VID
B-VID I-SID
I-SID SA
SA DA
DA Payload
Payload
(S-VID)
(S-VID) (C-VID)
(C-VID) Type
Type
2/8/17 36
Distributed vs. Central
Infrastructure
SDN Definitions: Will the real SDN please stand up?
SDN Definitions
Depends who you ask...
Neurologist
Sexually
Dimorphic
Nucleus
2/8/17 40
OpenFlow-based SDN
Separate Control & Forwarding Planes
Moving control functionality to centralized controller
functionality Control
Control
Controller handles
the control plane Control
Control
functionality
Forwarding
Forwarding Device
Open Networking via SDN
Forwarding
Forwarding
SDN: The Big Picture
A network operating
system App
App App
App App
App App
App App
App
Application
Application
A suite of network
Network
Network Operating
Operating System
System
applications Control
Control
Forwarding
Data
Data Plane
Plane
Inside Networking Devices Today
Network
Network Device
Device
SOFTWARE
SOFTWARE
Services
Agent
Services
SNMP
Agent
SNMP
Web
Web
ACLs
CLI
ACLs
QoS
CLI
QoS
Routing
Routing
Security
Security
Virus
Virus Spanning
Spanning
CONFIG
CONFIG Snooping
Snooping Access
Access Control
Control
Throttling
Throttling Tree
Tree
Low-level
Low-level ASIC
ASIC interface
interface
ASIC
ASIC L3
L3 Table
Table L2
L2 Table
Table TCAM
TCAM
2/8/17 45
Inside Networking Devices
With OpenFlow
Network
Network Device
Device
SOFTWARE
SOFTWARE
to Controller
Services
Agent
SNMP
Web
ACLs
CLI
QoS
Routing
Security
Virus Spanning
CONFIG Snooping
Openflow Access Control
Throttling Openflow Tree
Low-level
Low-level ASIC
ASIC interface
interface
ASIC
ASIC L3
L3 Table
Table L2
L2 Table
Table TCAM
TCAM
API-based SDN
API-based SDN
Overview User
User Application
Application
Proprietary southbound
Examples: OpenDaylight,
OpenContrail, Brocade-ODL,
SDN APIs
Policy-Level Open but policy-specific
App
App App
App App
App App
App
Ability for applications to be
written to interact with policy
layer on Policy
Policy
controller, to manage and Controller
Controller
control
the policy behavior of the
network.
Control
Policy API is open to network Control
Forwarding
Control
open or proprietary.
Overlay-based SDN
Overlays
Overlay Networks
Completely
virtualized networks Overlay
Overlay Overlay
Overlay
Overlay
Overlay
Network
Network Network
Network Network
Network
Completely
independent of
equipment below
Physical Network
Network
Network Device
Device Network
Network Device
Device
Network
Network Device
Device Network
Network Device
Device Network
Network Device
Device
2/8/17 53
Overlays
Implemented in
Overlay Networks
hypervisor Physical
Physical Server
Server Physical
Physical Server
Server Physical
Physical Server
Server
Network
Network Device
Device Network
Network Device
Device Network
Network Device
Device
2/8/17 54
Overlay Tunneling Alternatives
2/8/17 55
Overlay Tunneling Operation
VTEP
VTEP
2/8/17 56
SDN Operation
Anatomy of an SDN Device
Hardware to Controller
API
API
Operation OpenFlow
OpenFlow NETCONF
NETCONF
2/8/17 58
Anatomy of a Software SDN Device
Slower no hardware
acceleration
Switch
Switch
Simpler no issues
API
API OpenFlow
OpenFlow NETCONF
NETCONF
related to HW table sizes
and processing limitations Abstraction
Abstraction Layer
Layer
Tables
FlowTables
Flow
Flow
Flow
Tables
Tables
Tables
Tables
SW
SW
Packet
Packet Processing
Processing
2/8/17 59
SDN Device: Hybrid Modes
SDN Device Hybrid functionality: OpenDaylight
Multiple meanings Controller
Firrmware
STP OSPF MAC Learning ACLs OpenFlow Agent
Forwarding Mode: Support for
FORWARD_NORMAL Openflow VLAN L2 L3 ACL OpenFlow Table
action, put packet through normal
processing pipeline
Ports
Port Mode: If no matching flow
entry exists in table, default to
normal switch/router processing
Normal OpenFlow
SDN Controller Overview
events received
Drop, modify, forward packet
Add, delete, modify flows
SDN Controller Applications
Routing Northbound
Northbound
API REST
API REST API
API Java
Java API
API
Additional applications
Modules
Modules
Load balancer Disco
Disco &
&
Device
Device
Topo
Topo
Flows
Flows
Mgr
Mgr
Firewall Topo
Topo Stats
Stats
Southbound
Southbound
Openflow
Openflow NETCONF
NETCONF Other
Other
2/8/17 63
SDN Controller Considerations
No standard
Northbound API
Controller
Controller
Coordination between
Northbound
Northbound
applications API
API REST
REST API
API Java
Java API
API
Scalability, Modules
Modules
High-availability, Disco
Disco &
&
Device
Device
Topo
Topo
Flows
Flows
Mgr
Mgr
Performance Topo
Topo Stats
Stats
Southbound
Southbound
Openflow
Openflow NETCONF
NETCONF Other
Other
2/8/17 64
OpenFlow Protocol
OpenFlow Basics
Flow Entries and Tables
Match Fields Stats Actions
Controller
Controller
Flow Entries
Match fields: matching incoming
packets
Stats: keeping tally of packet
matches
Actions: what to do if the packet
Flow
Flow Table
Table
matches
Forwarding
Forwarding
Flow Tables
Match: perform associated
action/instruction
No match: forward to controller
OpenFlow Basics
Match Fields
Match Fields:
Controller
Controller - Basic 12-tuple (OpenFlow 1.0)
- MAC src/dst, IP src/dst, VLAN,
TCP/UDP ports, physical switch
port...
- Wildcards
Flow
Flow Table
Table TCP/ TCP/
Ingress MAC MAC Eth VLAN VLAN IP IP IP IP
Forwarding UDP UDP
Forwarding Port Src Dst Type Id Prior Src Dst Prot ToS
sport dport
2/8/17 67
OpenFlow 1.0
Flow Entries
Packet
Packet Packet
Packet Flow
Flow
Matches
Matches Actions
Actions Stats
Stats
TCP/ TCP/
Ingress MAC MAC Eth VLAN VLAN IP IP IP IP
UDP UDP
Port Src Dst Type Id Prior Src Dst Prot ToS
sport dport
2/8/17 68
OpenFlow 1.0
Tables
2/8/17 69
OpenFlow 1.0
Tables (cont.)
TCP / TCP /
Ingress MAC MAC Eth VLAN VLAN IP IP IP IP
Port Src Dst Type Id Prior Src Dst Prot ToS
UDP
sport
UDP
dport Action
3 * * * * * * * * * * * Output: Port 5
2/8/17 71
OpenFlow 1.0
Flow Entry Examples
TCP / TCP /
Ingress MAC MAC Eth VLAN VLAN IP IP IP IP
Port Src Dst Type Id Prior Src Dst Prot ToS
UDP
sport
UDP
dport Action
08:2c:67:81 Modify-field:
* :3f:06 * * * * * * * * * * VLAN Id = 22
Modify-field:
* * * * 85 * * * * * * * VLAN Pri = 7
2/8/17 72
OpenFlow
Ports
Physical ports
Correspond to actual ports on the switch Tunnels
Logical ports
Link
Higher-level abstractions, e.g. LAGs, Tunnels, Aggregation
Switch
Switch
Reserved ports
ALL, CONTROLLER, LOCAL, NORMAL, FLOOD,
Flood
OpenFlow 1.1
Changes from 1.0
Multiple Tables
Each table can have a different purpose, different match fields
Metadata passed from table to table to retain context
Actions added cumulatively to Action Sets
Tables:
Authentication
Authentication QoS
QoS Rate-Limits
Rate-Limits
Actions:
Add: Set VLAN-Id Set VLAN-Id Set VLAN-Id
Set VLAN-Pri
Add: Set VLAN-Pri Set ToS
Add: Set ToS
Add: Set Rate
2/8/17 74
OpenFlow 1.1
Changes from 1.0 (cont.)
Actions Instructions
OF 1.0: Each flow entry is associated with zero or more Actions
OF 1.1: Each flow entry is associated with a set of Instructions:
Changes packet (Apply- or Clear-Action(s))
Changes Action Set (Write-Action)
Changes pipeline processing (Write-Metadata or Goto-Table)
2/8/17 75
OpenFlow 1.1
Changes from 1.0 (cont.)
TCP / TCP /
Ingress MAC MAC Eth VLAN VLAN IP IP IP IP
Port Src Dst Type Id Prior Src Dst Prot ToS
UDP UDP OF 1.0
sport dport
TCP / TCP /
Ingress Meta MAC MAC Eth VLAN VLAN MPLS MPLS IP IP IP IP
Port data Src Dst Type Id Prior label class Src Dst Prot ToS
UDP UDP OF 1.1
sport dport
2/8/17 76
OpenFlow 1.1
Changes from 1.0 (cont.)
PE-VLAN:
PE-VLAN: Provider
Provider Edge
Edge VLAN
VLAN
MAC MAC Eth S-VID:
S-VID: Service
Service VLAN
VLAN ID
ID
Src Dst Type
Payload Untagged packet
C-VID:
C-VID: Customer
Customer VLAN
VLAN ID
ID
MAC
MAC MAC
MAC 802.1Q
802.1Q 802.1Q
802.1Q Eth
Eth 802.1ad Q-in-Q packet
Payload
Payload
Src
Src Dst
Dst Outer
Outer Tag
Tag Inner
Inner Tag
Tag Type
Type
2/8/17 77
OpenFlow 1.1
Changes from 1.0 (cont.)
Group Tables
Flows can point to a Group rather than to a specific Action
Group Type defines the action to take:
All: Execute all action buckets, for broadcast & multicast; packet cloned for
each bucket
Select: Execute one bucket in the group, based on switch-computed
mechanism
Indirect: Execute the one defined bucket in the group
Fast Failover: Execute the first live bucket
2/8/17 78
OpenFlow 1.2
Changes from 1.1
2/8/17 79
OpenFlow 1.2
Changes from 1.1 (cont.)
2/8/17 80
OpenFlow 1.3
Changes from 1.2
802.1Q
802.1Q 802.1Q
802.1Q Eth
Eth
B-SA
B-SA B-DA
B-DA B-VID
B-VID I-SID
I-SID SA
SA DA
DA Payload
Payload
(S-VID)
(S-VID) (C-VID)
(C-VID) Type
Type
2/8/17 81
NETCONF
NETCONF
Comparison to OpenFlow
OpenFlow NETCONF
Hardware: Program device Software: Configure device
hardware software
Low-level: Operates at low-level High-level: Operates at high-
of the network device. level of the network device.
Controller
Controller Controller
Controller
Device
Device Device
Device
Security
Security Policy
Policy ...
... Etc
Etc
Device
Device Software
Software
Openflow
Openflow Tables
Tables
HW
HW HW
HW
2/8/17 83
NETCONF
Basics
RPCs
Agent Server
NETCONF and YANG
YANG:
Data Definition Language
YANG is the data definition language used primarily with NETCONF.
SMI: YANG is to NETCONF as SMI is to SNMP.
Operations: Configuration and Operational data, RPCs, and
Notifications.
Hierarchical: Tree with branches and leaf nodes (SNMP MIB).
Node Types:
Container: Major holder of large amounts of data.
Leaf-List: Array of like items.
List: Structure of multiple types of items.
Leaf: Actual data.
Network Device NETCONF Data
Data
Forwarding Data
Forwarding
Switch
Switch
Firewall
Campus Environments and SDN
Access control solutions today are expensive, error-prone, complicated, and
cumbersome
NFV
End of SDN Overview