Composition of SDN applications: Options/challenges for real - - PowerPoint PPT Presentation
Composition of SDN applications: Options/challenges for real - - PowerPoint PPT Presentation
Composition of SDN applications: Options/challenges for real implementations Arne Schwabe Pedro A. Aranda Gutirrez Holger Karl Computer Networks Group Universitt Paderborn Modernizing the setup Simple standard network setup
Modernizing the setup
- Simple standard network setup
- Replace boxes with SDN
- Combine SDN switches?
ANRW 2016 Composition of SDN applications 2
Firewall Loadbalancer Server Server Server Server Server Internet SDN Switch Firewall SDN App SDN Switch Loadbalancer SDN App
Virtualization
Overview
- Motivation
- Composing SDN apps in general
- OpenFlow specific composition
- Conclusion
ANRW 2016 Composition of SDN applications 3
What does an SDN app do?
See modules as stateful function: M: event → network command
ANRW 2016 Composition of SDN applications 4
SDN Switch SDN module
- 1. Packet
- 5. New switch
State
- 2. Network event
(packet_in)
- 4. Network
commands
- 3. Processing
Modernized setup in detail
ANRW 2016 Composition of SDN applications 5
Firewall Loadbalancer Server Server Server Server Server Internet SDN Switch Firewall SDN App SDN Switch Loadbalancer SDN App Packet IN Packet IN Forward Packet Forward Port 7 Drop
Idea: Parallel composition
- Reuse existing SDN Apps
- Combine results of the Apps: Parallel
ANRW 2016 Composition of SDN applications 6
Firewall SDN App Loadbalancer SDN App Packet forward to Server 7 forward forward to Server 7 drop drop
Idea: Serial composition
- Explicitly let the firewall have the final
decision
- Combine results of the Apps: Serial
ANRW 2016 Composition of SDN applications 7
Firewall SDN App Loadbalancer SDN App Packet forward to Server 7 forward to Server 7 drop
Two more or more SDN apps
- SDN controller scenario
ANRW 2016 Composition of SDN applications 8
SDN Switch Module A New switch State Network event Module B Network commands Network commands 2
Challenges
- Order of network commands not predictable
- Transitional states
- Network commands might conflict
- Introduce harmonizing function
- Network hypervisor/SDN frameworks
- Example: Partition network by modules
ANRW 2016 Composition of SDN applications 9
Harmonizing output
h: network commands → network commands
ANRW 2016 Composition of SDN applications 10
SDN Switch Module A Network event Module B Network commands Harmonizing Function h New network State Network commands’
Serial composition
Signature of Module B changes: M: event × command → command
ANRW 2016 Composition of SDN applications 11
SDN Switch Module A New network State Network event: ev ev network commands Module B network commands
Approximate Serial composition
Not everything representable in ev’: Example: input port
ANRW 2016 Composition of SDN applications 12
SDN Switch Module A New network State ev Module B network commands network commands’ Approximation function ev'
Approximate event for B: α: command → event
Approximate serial example
ANRW 2016 Composition of SDN applications 13
- Emulate topology to generate new packet In
- Output port a becomes input port of B
Physical Switch Emulated virtual topology
1 2 3 4 5 6
1 2 3 4 5 6 1 2 3 4 5 6
1,2,3,4,5,6
Module A Module B
Overview
- Motivation
- Composing SDN apps in general
- OpenFlow specific composition
- Conclusion
ANRW 2016 Composition of SDN applications 14
OpenFlow
- De facto standard
- Desire to reuse for composition
- Question: Does it work?
- Network Event: Packet in
- Network commands
- Flow mod
- Packet Out
ANRW 2016 Composition of SDN applications 15
Harmonizing output (OpenFlow Version)
Again with h: command → command
ANRW 2016 Composition of SDN applications 16
OF Switch Module A Packet in Module B FMs B Harmonizing Function h FMs A 2 FMs A’ New network State FMs B’
Parallel composition
- No relation between Packet in and network
commands
- No ”take all inputs, combine”
- Makes harmonizing more difficult/less useful
- Transient state even with harmonizing
- Not always a problem (Partitioning)
- Network commands without event
ANRW 2016 Composition of SDN applications 17
Serial composition (OpenFlow)
- Packet_IN has only in_port and packet
- Workaround: Apply actions (e.g. port, IP) to
packet contents
- Other properties lost: E.g. flowmods
ANRW 2016 Composition of SDN applications 18
Making OpenFlow work (NetIDE)
- Add custom header
- Assign transaction id to network event
- application signal end of transaction
- Restrict allowed behavior
- Concentrate on parallel composition
ANRW 2016 Composition of SDN applications 19
Implementation/Approaches
- Composition friendly frameworks
- Pyretic
- Network Hypervisors
- OpenVirtex
- FlowVisor
- CoVisor: Full composition
- Paper does not discuss problems mentioned
here
ANRW 2016 Composition of SDN applications 20
Conclusion
- Composition can work in real world
- API behavior is important
- OpenFlow works poorly
- Modifying OpenFlow for composition:
- Custom protocol
- Still much left to desire
ANRW 2016 Composition of SDN applications 21