Software Defined Networking By Widhi Yahya Introduction 1
Software Defined Networking By: Widhi Yahya
Introduction
1 Mininet § Mininet is a simulation tool that can create a virtual network, running real kernels, switches and application code, on a single machine. § Mininet provides a ready way to get the SDN network behaviors and performance for different experimental network topologies. § Mininet also enable us to use client server programs such as ping, iperf, netperf, wget, and other packet generator programs.
2 Nowdays Complexity that leads to stasis Inconsistent policies Inability to scale Vendor dependence enormous installed equipment and protocols barrier to entry for new ideas
Software Defined Networking (SDN) 3 App Specialized Features Specialized Control Plane Specialized Hardware Vertically integrated Closed, proprietary Slow innovation Open Interface Control Plane or Open Interface Merchant Switching Chips Horizontal Open interfaces Rapid innovation Nick Mc. Keown, “How SDN will shape networking”, Standford Univ. Control Plane
Software Defined Networking (SDN) Control Program 2. At least one Network OS probably many. Open- and closed-source Global Network View Network OS 1. Open interface to packet forwarding Packet Forwarding 4 Packet Forwarding Nick Mc. Keown, “How SDN will shape networking”, Standford Univ.
Software Defined Networking (SDN) Open Network Foundation, “Open. Flow Switch Specification”, 2013. 5
Software Defined Networking (SDN) [ONF 12]-Software-Defined Networking-newnorm 6
Software Defined Networking (SDN) Open Network Foundation, “Open. Flow Switch Specification”, 2013. 7
Software Defined Networking (SDN) 8 2: match(dstip=A)[fwd(2)] 1: match(* )[fwd(1)] 2: match(dstip=B)[fwd(3)] Open. Flow Priority Program Counters for each rule Route: IP/fwd - #bytes, #packets 1 dstip!=A dstip!=B Pattern Action dstip=A A 2 3 dstip=B B Open Network Foundation, “Open. Flow Switch Specification”, 2013; Chris Monsanto*, Joshua Reich*, Nate Foster^, Jen Rexford*, David Walker*, “Composing Software-
9 Benefit SDN § Centralized control of multi-vendor environments. § Reduced complexity through automation. § Higher rate of innovation § Increased network reliability and security § More granular network control § Better user experience
10 SDN Review § Software Defined Networking (SDN) is a concept to decouple the control plane and data plane of network devices. § The emergence of the SDN technology brings many new network applications realized by programming the SDN controller.
11 Problems Naive Algorithm (Round Robin)
12 Problems example Naive Algorithm (Randomized)
13 Global Topology
14 SDN Program install_flowmod(5, srcip=X & dstip=P, [mod(dstip=A), fwd(2)]) install_flowmod(4, srcip=0* & dstip=P, [mod(dstip=A), fwd(2)]) install_flowmod(4, srcip=1* & dstip=P, [mod(dstip=B), fwd(3)]) install_flowmod(4, srcip=X & dstip=A , [fwd(2)]) install_flowmod(4, srcip=X & dstip=B, [fwd(3)]) install_flowmod(3, dstip=A, [fwd(2)]) install_flowmod(3, dstip=B, [fwd(3)]) install_flowmod(2, srcip=X , [fwd(1)]) install_flowmod(1, *, [fwd(3)])
15 Frenetic N. Foster, R. Harrison, M. J. Freedman, C. Monsanto, J. Rexford, A. Story, and D. Walker. Foster, “Frenetic: A Network Programming Language”, ACM, 2013.
Pyretic Basic Policies 16 Policy Syntac Semantics Examples match(f=v) Returns set containing packet if match(dstmac=Eth. Addr('00: 00 packet's field f matches value v, : 00: 01')) empty set otherwise drop Returns empy set drop modify(f=v) Returns set containing copy of modify(srcmac=Eth. Addr('00: 00 packet where field f is set to value v : 00: 01')) forward fwd(a) Returns set containing copy of fwd(1) packet where outport field is set to a parallel A+B composition sequential composition Returns the union of A's output and fwd(1) + fwd(2) B's output A >> B Returns B's output where A's modify(dstip=IPAddr('10. 0. 0. 2'))> output is B's input >fwd(2) flood() Pyretic Website, http: //frenetic-lang. org/pyretic/ match(switch=1) >>
Query Policies Pyretic Syntax packets( 17 Summary limit=n, callback on every packet received for up to n group_by=[f 1, f 2, . . . ]) packets identical on fields f 1, f 2, . . . count_packets( count every packet received callback every t interval=t, group_by=[f 1, f 2, . . . ] seconds providing count for each group count_bytes( interval=t, group_by=[f 1, f 2, . . . ]) count every byte received callback every t seconds providing count for each group Pyretic Website, http: //frenetic-lang. org/pyretic/
Q&A Thank you
- Slides: 20