Presentation is loading. Please wait.

Presentation is loading. Please wait.

OpenFlow for Campuses A Tutorial at GEC10 March 15, 2011 Srini Seetharaman, DT R&D Lab, USA Masa Kobayashi, NEC Labs/Stanford 1.

Similar presentations


Presentation on theme: "OpenFlow for Campuses A Tutorial at GEC10 March 15, 2011 Srini Seetharaman, DT R&D Lab, USA Masa Kobayashi, NEC Labs/Stanford 1."— Presentation transcript:

1 OpenFlow for Campuses A Tutorial at GEC10 March 15, 2011 Srini Seetharaman, DT R&D Lab, USA Masa Kobayashi, NEC Labs/Stanford 1

2 Introductions 2

3 Agenda TimeDescription 13:00-14:00Introduction: How OpenFlow works, Potential, Limitations, Current vendors, SDN/OPEN 14:00-14:30Show tools, demo mininet and NOX intro for researcher 14:30-15:00Configuring NEC, HP and Pronto switches Break 15:30-16:15Controller demonstrations (SNAC, BigSwitch’s controller and NEC’s PFC) 16:15-16:45Slice using FlowVisor, Expedient, and opt-in manager 16:45-17:00Q&A, Discussions, Community building, Conclusions 3

4 Goals of this Tutorial By the end, everyone should know: – what OpenFlow is – how it’s used and how you can use it – where it’s going – how OpenFlow fits in the Software-Defined Networking (SDN) spectrum – how to slice your network Present a useful mix of lecture-based content and actual operational info Have fun 4

5 Why OpenFlow? 5

6 Million of lines of source code 5400 RFCsBarrier to entry Billions of gates BloatedPower Hungry Many complex functions baked into the infrastructure OSPF, BGP, multicast, differentiated services, Traffic Engineering, NAT, firewalls, MPLS, redundant layers, … An industry with a “mainframe-mentality”, reluctant to change The Ossified Network Specialized Packet Forwarding Hardware Operating System Operating System Feature Routing, management, mobility management, access control, VPNs, … 6

7 Research Stagnation Lots of deployed innovation in other areas – OS: filesystems, schedulers, virtualization – DS: DHTs, CDNs, MapReduce – Compilers: JITs, vectorization Networks are largely the same as years ago – Ethernet, IP, WiFi Rate of change of the network seems slower in comparison – Need better tools and abstractions to demonstrate and deploy 7

8 Closed Systems (Vendor Hardware) Stuck with interfaces (CLI, SNMP, etc) Hard to meaningfully collaborate Vendors starting to open up, but not usefully Need a fully open system – a Linux equivalent 8

9 Open Systems Performance Fidelity ScaleReal User Traffic? ComplexityOpen Simulationmedium nomediumyes Emulationmediumlownomediumyes Software Switches poorlowyesmediumyes NetFPGAhighlowyeshighyes Network Processors highmediumyeshighyes Vendor Switches high yeslowno gap in the tool space none have all the desired attributes! 9

10 Ethane, a precursor to OpenFlow Centralized, reactive, per-flow control Controller Flow Switch Host A Host B Flow Switch See Ethane SIGCOMM 2007 paper for details 10

11 OpenFlow: a pragmatic compromise + Speed, scale, fidelity of vendor hardware + Flexibility and control of software and simulation Vendors don’t need to expose implementation Leverages hardware inside most switches today (ACL tables) 11

12 How does OpenFlow work? 12

13 Ethernet Switch 13

14 Data Path (Hardware) Control Path Control Path (Software) 14

15 Data Path (Hardware) Control Path OpenFlow OpenFlow Controller OpenFlow Protocol (SSL/TCP) 15

16 Controller PC Hardware Layer Software Layer Flow Table MAC src MAC dst IP Src IP Dst TCP sport TCP dport Action OpenFlow Client ** ***port 1 port 4port 3 port 2 port OpenFlow Example 16

17 OpenFlow Basics Flow Table Entries Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot L4 sport L4 dport RuleActionStats 1.Forward packet to zero or more ports 2.Encapsulate and forward to controller 3.Send to normal processing pipeline 4.Modify Fields 5.Any extensions you add! + mask what fields to match Packet + byte counters 17 VLAN pcp IP ToS

18 Examples Switching * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action * 00:1f:.. *******port6 Flow Switching port3 Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action 00:20..00:1f..0800vlan port6 Firewall * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action ********22drop 18

19 Examples Routing * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action ***** ***port6 VLAN Switching * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action ** vlan1 ***** port6, port7, port9 00:1f.. 19

20 Centralized vs Distributed Control Both models are possible with OpenFlow Centralized Control OpenFlow Switch OpenFlow Switch OpenFlow Switch Controller Distributed Control OpenFlow Switch OpenFlow Switch OpenFlow Switch Controller 20

21 Flow Routing vs. Aggregation Both models are possible with OpenFlow Flow-Based Every flow is individually set up by controller Exact-match flow entries Flow table contains one entry per flow Good for fine grain control, e.g. campus networks Aggregated One flow entry covers large groups of flows Wildcard flow entries Flow table contains one entry per category of flows Good for large number of flows, e.g. backbone 21

22 Reactive vs. Proactive (pre-populated) Both models are possible with OpenFlow Reactive First packet of flow triggers controller to insert flow entries Efficient use of flow table Every flow incurs small additional flow setup time If control connection lost, switch has limited utility Proactive Controller pre-populates flow table in switch Zero additional flow setup time Loss of control connection does not disrupt traffic Essentially requires aggregated (wildcard) rules 22

23 Usage examples Alice’s code: – Simple learning switch – Per Flow switching – Network access control/firewall – Static “VLANs” – Her own new routing protocol: unicast, multicast, multipath – Home network manager – Packet processor (in controller) – IPvAlice – VM migration – Server Load balancing – Mobility manager – Power management – Network monitoring and visualization – Network debugging – Network slicing … and much more you can create!

24 Quiz Time How do I provide control connectivity? Is it really clean slate? Why aren’t users complaining about time to setup flows over OpenFlow? (Hint: What is the predominant traffic today?) Considering switch CPU is the major limit, how can one take down an OpenFlow network? How to perform topology discovery over OpenFlow-enabled switches? What happens when you have a non-OpenFlow switch inbetween? What if there are two islands connected to same controller? How scalable is OpenFlow? How does one scale deployments? 24

25 What can you not do with OpenFlow ver1.0 Non-flow-based (per-packet) networking – ex. Per-packet next-hop selection (in wireless mesh) – yes, this is a fundamental limitation – BUT OpenFlow can provide the plumbing to connect these systems Use all tables on switch chips – yes, a major limitation (cross-product issue) – BUT an upcoming OF version will expose these 25

26 What can you not do with OpenFlow ver1.0 New forwarding primitives – BUT provides a nice way to integrate them through extensions New packet formats/field definitions – BUT a generalized OpenFlow (2.0) is on the horizon Optical Circuits – BUT efforts underway to apply OpenFlow model to circuits Low-setup-time individual flows – BUT can push down flows proactively to avoid delays

27 Where it’s going OF v1.1: Extensions for WAN, spring 2011 – multiple tables: leverage additional tables – tags and tunnels – multipath forwarding OF v2+ – generalized matching and actions: an “instruction set” for networking 27

28 OpenFlow Implementations (Switch and Controller) 28

29 OpenFlow building blocks Controller NOX Slicing Software FlowVisor Console 29 Applications LAVI ENVI (GUI) Expedient n-Casting NetFPGA Software Ref. Switch Software Ref. Switch Broadcom Ref. Switch Broadcom Ref. Switch OpenWRT PCEngine WiFi AP Commercial Switches Stanford Provided OpenFlow Switches SNAC Stanford Provided Monitoring/ debugging tools oflops oftrace openseer OpenVSwitch HP, NEC, Pronto, Juniper.. and many more Beacon Helios Maestro

30 Ciena Coredirector NEC IP8800 UNIVERGE PF5240 Current SDN hardware More coming soon... Juniper MX-series HP Procurve 5400 Pronto 3240/3290 WiMax (NEC) PC Engines Netgear

31 Commercial Switch Vendors ModelVirtualizeNotes HP Procurve 5400zl or OF instance per VLAN -LACP, VLAN and STP processing before OpenFlow -Wildcard rules or non-IP pkts processed in s/w -Header rewriting in s/w -CPU protects mgmt during loop NEC IP8800 Series and UNIVERGE PF OF instance per VLAN -OpenFlow takes precedence -Most actions processed in hardware -MAC header rewriting in h/w -More than 100K flows (PF5240) Pronto 3240 or 3290 with Pica8 or Indigo firmware 1 OF instance per switch -No legacy protocols (like VLAN and STP) -Most actions processed in hardware -MAC header rewriting in h/w 31

32 Controller Vendors VendorNotes Nicira’s NOX Open-source GPL C++ and Python Researcher friendly Nicira’s ONIX Closed-source Datacenter networks SNAC Open-source GPL Code based on NOX0.4 Enterprise network C++, Python and Javascript Currently used by campuses VendorNotes Stanford’s Beacon Open-source Researcher friendly Java-based BigSwitch controller Closed source Based on Beacon Enterprise network Maestro (from Rice Univ) Open-source Based on Java NEC’s Helios Open-source Written in C and Ruby NEC UNIVERGE PFC Closed source Based on Helios 32

33 Growing Community Vendors and start-upsProviders and business-unit More Note: Level of interest varies

34 Software-Defined Networking (SDN) 34

35 Specialized Packet Forwarding Hardware Ap p Specialized Packet Forwarding Hardware Ap p Specialized Packet Forwarding Hardware Ap p Specialized Packet Forwarding Hardware Ap p Specialized Packet Forwarding Hardware Operating System Operating System Operating System Operating System Operating System Operating System Operating System Operating System Operating System Operating System Ap p 35 Current Internet Closed to Innovations in the Infrastructure Closed

36 Specialized Packet Forwarding Hardware Ap p Specialized Packet Forwarding Hardware Ap p Specialized Packet Forwarding Hardware Ap p Specialized Packet Forwarding Hardware Ap p Specialized Packet Forwarding Hardware Operating System Operating System Operating System Operating System Operating System Operating System Operating System Operating System Operating System Operating System Ap p Network Operating System App “Software Defined Networking” approach to open it 36

37 App Simple Packet Forwarding Hardware App Simple Packet Forwarding Hardware Network Operating System 1. Open interface to hardware 3. Well-defined open API 2. At least one good operating system Extensible, possibly open-source The “Software-defined Network” 37

38 Mininet Setup Controller port6633 Controller port6633 c0 OpenFlow Switch s1 dpctl (user space process) dpctl (user space process) h h h h h h virtual hosts OpenFlow Tutorial 3hosts-1switch topology loopback ( :6633) loopback ( :6634) s1-eth0 s1-eth1s1-eth2 h1-eth0h3-eth0h4-eth0 38

39 Switch Configuration Setup A15 A Of-demo-6 [eth1] :1b:21:5d:4e:c5 Of-demo-5 [eth1] :1b:21:5d:4c:3d A Pronto hpsw2 necsw5 Disabled Backup Controller GUI

40 Virtualizing OpenFlow 40

41 Windows (OS) Windows (OS) Windows (OS) Windows (OS) Linux Mac OS Mac OS x86 (Computer) x86 (Computer) Windows (OS) Windows (OS) App Linux Mac OS Mac OS Mac OS Mac OS Virtualization layer App Controller 1 App Controller 2 Controller 2 Virtualization or “Slicing” App OpenFlow Controller 1 NOX (Network OS) NOX (Network OS) Controller 2 Controller 2 Network OS Trend Computer IndustryNetwork Industry

42 Simple Packet Forwarding Hardware Network Operating System 1 Open interface to hardware Virtualization or “Slicing” Layer Network Operating System 2 Network Operating System 3 Network Operating System 4 App Many operating systems, or Many versions Open interface to hardware Isolated “slices” Simple Packet Forwarding Hardware 42

43 Switch Based Virtualization Exists for NEC, HP switches but not flexible enough Normal L2/L3 Processing Flow Table Production VLANs Research VLAN 1 Controller Research VLAN 2 Flow Table Controller 43

44 FlowVisor-based Virtualization OpenFlow Switch OpenFlow Protocol OpenFlow Protocol OpenFlow FlowVisor & Policy Control Craig’s Controller Heidi’s Controller Aaron’s Controller OpenFlow Protocol OpenFlow Protocol OpenFlow Switch OpenFlow Switch 44 Topology discovery is per slice

45 OpenFlow Protocol OpenFlow FlowVisor & Policy Control Broadcast Multicast OpenFlow Protocol http Load-balancer FlowVisor-based Virtualization OpenFlow Switch OpenFlow Switch OpenFlow Switch 45 Separation not only by VLANs, but any L1-L4 pattern dl_dst=FFFFFFFFFFFF tp_src=80, or tp_dst=80

46 FlowSpace: Maps Packets to Slices

47 FlowVisor Message Handling OpenFlow Firmware Data Path Alice Controller Bob Controller Cathy Controller FlowVisor OpenFlow Packet Exception Policy Check: Is this rule allowed? Policy Check: Who controls this packet? Full Line Rate Forwarding Rule Packet

48 Use Case: New CDN - Turbo Coral ++ Basic Idea: Build a CDN where you control the entire network – All traffic to or from Coral IP space controlled by Experimenter – All other traffic controlled by default routing – Topology is entire network – End hosts are automatically added (no opt-in) Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport ***** * **** ****** *** ********** 48

49 Use Case: Aaron’s IP A new layer 3 protocol Replaces IP Defined by a new Ether Type Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport ***AaIP* * **** ***!AaIP****** 49

50 OpenFlow/GENI Deployments 50

51 OpenFlow Deployment at Stanford 51 Switches (23) APs (50) WiMax (1)

52 Live Stanford Deployment Statistics 52

53 How did we get there? Staged Deployment of OpenFlow 1.Add experimental VLAN 2.Enable OpenFlow for Exptl VLAN 3.Configure Controller for new network 4.Add new Production subnetwork 5.Gradually add/move users to new subnet 6.Enable OpenFlow for new subnet 7.Slice the network Verify correctness and performance Verify reachability

54 Kansas State GENI OpenFlow deployment (2010) 10 institutions and 2 National Research Backbones 54

55 National Lambda Rail GENI Network Evolution

56 FlowVisor API GENI Integration FlowVisor – Slicing control Expedient – Experimenter’s portal for slice management Opt-in Manager – Network admins’ portal to approve/ deny expt requests for traffic FlowVisor1 FlowVisor2 Substrate 1 Substrate 2 OpenFlow Opt-in Mgr1 Opt-in Mgr2 Expedient1Expedient2 API X Expedient3 GENI API API X

57 Mistakes we made OpenFlow over Q-in-Q – OpenFlow routing is unaware and sends traffic with same MAC address in both direction, causing perpetual learning and CPU inflation Moving uplinks for 1 switch, while being pointed to the same controller (causing two islands) – Causes controller learning to oscillate between the 2 uplinks Bad interaction with legacy protocols – LLDP and STP are treated differently with different switches Loop in OpenFlow network being exposed to non-OF side – Miscommunication between the aggregate operator and the experimenter during testing phase Loop across backbones – Same campus connected over NLR and Internet2

58 Next steps for GENI Remove duct-tape – Fix any issues that we learned about during demos Be better prepared – Higher stability and better isolation – Test bandwidth slicing Grow topology – Add more switches and hosts Wean off – Each campus takes charge of control framework

59 Tutorial Setup so far Controller port6633 Controller port6633 c0 OpenFlow Switch s1 dpctl (user space process) dpctl (user space process) h h h h h h virtual hosts OpenFlow Tutorial 3hosts-1switch topology loopback ( :6633) loopback ( :6634) s1-eth0 s1-eth1s1-eth2 h1-eth0h3-eth0h4-eth0 59

60 Virtualized Network Setup Controller port 7000 Controller port 7000 c0 OpenFlow Switch s1 dpctl (user space process) dpctl (user space process) h h h h h h virtual hosts OpenFlow Tutorial 3hosts-1switch topology loopback ( :7000) loopback ( :6634) s1-eth0 s1-eth1s1-eth2 h1-eth0h3-eth0h4-eth0 FlowVisor port 6633 FlowVisor port 6633 loopback ( :6634) 60

61 FlowVisor Usage man./doc/flowvisor.8 /script/fvctl.sh listDevices – list of all OpenFlow switches’ datapath ID getLinks – list of all links (port # and datapath ID of both end switches) createSlice – creating slice (specifying controller’s URL and slice name) listSlices addFlowSpace – add flow space to slices listFlowSpace – show current flow space 61

62 Concluding Remarks 62

63 Highlights of Deployments Stanford deployment – McKeown group for 1.5 years: production and experiments – To scale later this year to entire building (~500 users) Nation-wide trials and deployments – 7 other universities and BBN deploying now – GEC9 in Nov, 2010 showcased nation-wide OF – Internet 2 and NLR starting to serve as the GENI Backbone Global trials – Over 60 organizations experimenting 2011 likely to be a big year for OpenFlow 63

64 Current Trials 68 trials/deployments spanning 13 countries 64

65 Get involved! Ask and answer questions on mailing lists: – openflow-discuss – openflow-spec Share and update wiki content Submit bug-reports and/or patches to OF reference implementation Release open-source applications Write a controller! 65

66 Are you innovating in your network? 66

67 SDN Team at Stanford


Download ppt "OpenFlow for Campuses A Tutorial at GEC10 March 15, 2011 Srini Seetharaman, DT R&D Lab, USA Masa Kobayashi, NEC Labs/Stanford 1."

Similar presentations


Ads by Google