Composition of SDN applications: Options/challenges for real implementations Arne Schwabe Pedro A. Aranda Gutiérrez Holger Karl Computer Networks Group Universität Paderborn
Modernizing the setup • Simple standard network setup • Replace boxes with SDN Virtualization Firewall Loadbalancer SDN App SDN App Server Server Server Internet Loadbalancer SDN Switch SDN Switch Firewall Server Server • Combine SDN switches? ANRW 2016 Composition of SDN applications 2
Overview • Motivation • Composing SDN apps in general • OpenFlow specific composition • Conclusion ANRW 2016 Composition of SDN applications 3
What does an SDN app do? 3. Processing SDN module 2. Network event 4. Network (packet_in) commands 1. Packet SDN Switch 5. New switch State See modules as stateful function: M: event → network command ANRW 2016 Composition of SDN applications 4
Modernized setup in detail Firewall Loadbalancer SDN App SDN App Server Forward Forward Packet IN Server Drop Packet IN Port 7 Packet Server Internet Loadbalancer SDN Switch SDN Switch Firewall Server Server ANRW 2016 Composition of SDN applications 5
Idea: Parallel composition • Reuse existing SDN Apps • Combine results of the Apps: Parallel Firewall drop forward SDN App forward to drop Server 7 Packet Loadbalancer forward to SDN App Server 7 ANRW 2016 Composition of SDN applications 6
Idea: Serial composition • Explicitly let the firewall have the final decision • Combine results of the Apps: Serial Loadbalancer forward to Packet SDN App Server 7 Firewall forward to drop SDN App Server 7 ANRW 2016 Composition of SDN applications 7
Two more or more SDN apps • SDN controller scenario Module A Module B Network commands Network event Network commands SDN Switch New switch State 2 ANRW 2016 Composition of SDN applications 8
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 Module A Module B Network commands Harmonizing Network event Function h Network commands’ SDN Switch New network State ANRW 2016 Composition of SDN applications 10
Serial composition ev network commands Module A Module B network commands Network event: ev New network State SDN Switch Signature of Module B changes: M: event × command → command ANRW 2016 Composition of SDN applications 11
Approximate Serial composition Approximate event for B: α: command → event ev' network commands Approximation Module A Module B function ev network commands’ New network State SDN Switch Not everything representable in ev’: Example: input port ANRW 2016 Composition of SDN applications 12
Approximate serial example • Emulate topology to generate new packet In 1 Physical Switch 6 2 5 3 4 1,2,3,4,5,6 Module A Module B 1 1 6 6 2 2 3 5 4 5 3 4 Emulated virtual topology • Output port a becomes input port of B ANRW 2016 Composition of SDN applications 13
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 Module A Module B FMs B FMs A Harmonizing Packet in Function h FMs A’ FMs B’ OF Switch New network State 2 ANRW 2016 Composition of SDN applications 16
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
Recommend
More recommend