Sponsored by the National Science Foundation Tutorial: An Introduction to OpenFlow using POX GENI Engineering Conference 19 March 2014.

Slides:



Advertisements
Similar presentations
Software Version: DSS ver up01
Advertisements

OSPF 1.
1 Building a Fast, Virtualized Data Plane with Programmable Hardware Bilal Anwer Nick Feamster.
Communicating over the Network
Chapter 1: Introduction to Scaling Networks
What is access control list (ACL)?
OpenFlow Global Configuration
Sponsored by the National Science Foundation Tutorial: OpenFlow-Based Vertical Handoff over WiFi and WiMAX in the Orbit Testbed Ryan Izard and KC Wang.
1 Network Address Translation (NAT) Relates to Lab 7. Module about private networks and NAT.
Towards Software Defined Cellular Networks
ICmyNet.Flow Network Traffic Analysis System If You Want to See Your Net
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 EN0129 PC AND NETWORK TECHNOLOGY I IP ADDRESSING AND SUBNETS Derived From CCNA Network Fundamentals.
© 2012 National Heart Foundation of Australia. Slide 2.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.1 Module 10 Routing Fundamentals and Subnets.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA TCP/IP Protocol Suite and IP Addressing Halmstad University Olga Torstensson
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.1 Module 9 TCP/IP Protocol Suite and IP Addressing.
TCP/IP Protocol Suite 1 Chapter 18 Upon completion you will be able to: Remote Login: Telnet Understand how TELNET works Understand the role of NVT in.
Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project.
Copyright 2014 Kenneth M. Chipps Ph.D. Software Defined Networking Lab Using Mininet and the POX Controller Last Update
An Overview of Software-Defined Network Presenter: Xitao Wen.
OpenFlow Costin Raiciu Using slides from Brandon Heller and Nick McKeown.
Sponsored by the National Science Foundation Lab Zero: A First Experiment.
Sponsored by the National Science Foundation 1 Lab Zero – November 6, 2014 Are you ready for the tutorial? 1.Grab a Worksheet and instructions 2.Did you.
Software-Defined Networking, OpenFlow, and how SPARC applies it to the telecommunications domain Pontus Sköldström - Wolfgang John – Elisa Bellagamba November.
OpenFlow : Enabling Innovation in Campus Networks SIGCOMM 2008 Nick McKeown, Tom Anderson, et el. Stanford University California, USA Presented.
Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI.
Flowspace revisited 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 Rule Action.
An Overview of Software-Defined Network
Using the jFed tool to experiment from zero to hero Brecht Vermeulen FGRE, July 7 th, 2015.
An Overview of Software-Defined Network Presenter: Xitao Wen.
OpenFlow: Enabling Technology Transfer to Networking Industry Nikhil Handigol Nikhil Handigol Cisco Nerd.
Introduction to SDN & OpenFlow Based on Tutorials from: Srini Seetharaman, Deutsche Telekom Innovation Center FloodLight Open Flow Controller, floodlight.openflowhub.org.
National Science Foundation Arlington, Virginia January 7-8, 2013 Tom Lehman University of Maryland Mid-Atlantic Crossroads.
Brent Salisbury CCIE#11972 Network Architect University of Kentucky 9/22/ OpenStack & OpenFlow Demo.
Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI GENI Project Office.
OpenFlow: Enabling Innovation in Campus Networks
CS : Software Defined Networks 3rd Lecture 28/3/2013
Sponsored by the National Science Foundation Tutorial: An Introduction to OpenFlow using POX GENI Engineering Conference 20 June 2014.
Sponsored by the National Science Foundation Programmable Networks and GENI Marshall Brinn, GPO GEC October 25, 2012.
Sponsored by the National Science Foundation 1 September 15, 2015 Are you ready for the tutorial? 1.Grab a Worksheet and instructions 2.Did you do the.
Sponsored by the National Science Foundation Behind the Scenes of GENI Experimentation An Introduction to GENI Tools Sarah Edwards, GENI Project Office.
Sponsored by the National Science Foundation GENI Exploring Networks of the Future
Sponsored by the National Science Foundation GENI Terminology: How All the Pieces Fit Together Sarah Edwards GENI Project Office.
Sponsored by the National Science Foundation 1 GREESC15– May 25, 2015 Are you ready for the tutorial? 1.Grab a Worksheet and instructions 2.Did you do.
Sponsored by the National Science Foundation Lab Zero: A First Experiment using GENI Sarah Edwards, GENI Project Office.
Sponsored by the National Science Foundation LabWiki Tutorial (OMF/OML) Divya Bhat, Mike Zink, Pieter Becue, Brecht Vermeulen GEC20 July 8 th 2014, Ghent,
Sponsored by the National Science Foundation 1 Last updated April 1, 2013 Are you ready for the tutorial? 1.Sign In 2.Grab a Worksheet 3.Did you do the.
Sponsored by the National Science Foundation Tutorial: Introduction to Omni Niky Riga GENI Project Office GREESC13 $ omni.py createsliver aliceslice myRSpec.xml.
Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat Shufeng Huang Niky Riga GENI Project.
Sponsored by the National Science Foundation Using OpenFlow and Orbit to Achieve Mobility in a Heterogeneous Wireless Network Ryan Izard
Sponsored by the National Science Foundation 1 ICDCS13: July 8, 2013 Are you ready for the tutorial? 1.Grab a Worksheet and instructions 2.Did you do the.
Sponsored by the National Science Foundation Lab Zero: A First Experiment using GENI.
Sponsored by the National Science Foundation 1 GEC16, March 21, 2013 Are you ready for the tutorial? 1.Did you do the pre-work? A.Are you able to login.
Sponsored by the National Science Foundation 1 GREE SC: June 24, 2013 Are you ready for the tutorial? 1.Grab a Worksheet and instructions 2.Did you do.
Sponsored by the National Science Foundation Behind the Scenes of GENI Experimentation An Introduction to GENI Tools Sarah Edwards, GENI Project Office.
Introduction to Mininet, Open vSwitch, and POX
Sponsored by the National Science Foundation 1 Lab Zero – March 14, 2014 Are you ready for the tutorial? 1.Grab a Worksheet and instructions 2.Did you.
3.6 Software-Defined Networks and OpenFlow
Sponsored by the National Science Foundation Click Software Routers Sarah Edwards GENI Project Office.
SDN and Beyond Ghufran Baig Mubashir Adnan Qureshi.
Sponsored by the National Science Foundation 1 GEC16: March 19, 2013 Are you ready for the tutorial? 1.Sign In 2.Grab a Worksheet 3.Did you do the pre-work?
Mininet and Openflow Labs
Intrusion Detection Systems
Using the jFed tool to experiment from zero to hero
SDN Overview for UCAR IT meeting 19-March-2014
The Stanford Clean Slate Program
An Introduction to Software Defined Networking and OpenFlow
GENI Exploring Networks of the Future
An Introduction to Software Defined Networking and OpenFlow
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

Sponsored by the National Science Foundation Tutorial: An Introduction to OpenFlow using POX GENI Engineering Conference 19 March 2014

Sponsored by the National Science Foundation 2 GEC19 March 2014 Switch Architecture

Sponsored by the National Science Foundation 3 GEC19 March 2014 Moving Control out of the Switch

Sponsored by the National Science Foundation 4 GEC19 March 2014 OpenFlow is an API Modified slide from : Control how packets are forwarded Implementable on COTS hardware Make deployed networks programmable –not just configurable Makes innovation easier

Sponsored by the National Science Foundation 5 GEC19 March 2014 OpenFlow Switch Data Path (Hardware) Control Path OpenFlow Any Host OpenFlow Controller OpenFlow Protocol (SSL/TCP) Modified slide from : The controller is responsible for populating forwarding table of the switch In a table miss the switch asks the controller

Sponsored by the National Science Foundation 6 GEC19 March 2014 OpenFlow in action Switch Data Path (Hardware) Control Path OpenFlow Any Host OpenFlow Controller OpenFlow Protocol (SSL/TCP) Modified slide from : Host1 sends a packet If there are no rules about handling this packet –Forward packet to the controller –Controller installs a flow Subsequent packets do not go through the controller host1 host2

Sponsored by the National Science Foundation 7 GEC19 March 2014 OpenFlow Basics Flow Table Entries Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP ToS TCP sport TCP dport RuleActionStats 1.Forward packet to port(s) 2.Encapsulate and forward to controller 3.Drop packet 4.Send to normal processing pipeline 5.Modify Fields + mask what fields to match Packet + byte counters slide from : IP Prot VLAN PCP

Sponsored by the National Science Foundation 8 GEC19 March 2014 Use Flow Mods Going through the controller on every packet is inefficient Installing Flows either proactively or reactively is the right thing to do: A Flow Mod consists off : –A match on any of the 12 supported fields –A rule about what to do matched packets –Timeouts about the rules: Hard timeouts Idle timeouts –The packet id in reactive controllers

Sponsored by the National Science Foundation 9 GEC19 March 2014 OpenFlow common Pitfalls Controller is responsible for all traffic, not just your application! –ARPs –DHCP –LLDP Reactive controllers –UDP Performance in hardware switches –Not all actions are supported in hardware No STP –Broadcast storms

Sponsored by the National Science Foundation 10 GEC19 March 2014 FlowVisor Only one controller per switch FlowVisor is a proxy controller that can support multiple controllers FlowSpace describes packet flows : –Layer 1: Incoming port on switch –Layer 2: Ethernet src/dst addr, type, vlanid, vlanpcp –Layer 3: IP src/dst addr, protocol, ToS –Layer 4: TCP/UDP src/dst port Switch Data Path (Hardware) Control Path OpenFlow Any Host FlowVisor OpenFlow Protocol (SSL/TCP) Any Host OpenFlow Controller Any Host OpenFlow Controller OpenFlow Protocol (SSL/TCP)

Sponsored by the National Science Foundation 11 GEC19 March 2014 GENI Programmable Network Key GENI concept: slices & deep programmability –Internet: open innovation in application programs –GENI: open innovation deep into the network Good old Internet Slice 0 Slice 1 Slice 2 Slice 3 Slice 4 Slice 1 OpenFlow switches one of the ways GENI is providing deep programmability

Sponsored by the National Science Foundation 12 GEC19 March 2014 Racks and Campuses GENI Rack projects are expanding available GENI infrastructure in the US. Racks provide reservable, sliceable compute and network resources using Aggregate Managers. GENI AM API compliance

Sponsored by the National Science Foundation 13 GEC19 March 2014 GENI Rack Campuses 43 racks planned this year Each rack has an OpenFlow-enabled switch

Sponsored by the National Science Foundation 14 GEC19 March 2014 Core Networks Internet2 adding 10GbE paths to Advanced Layer 2 Services (AL2S) at 4 of 5 OpenFlow meso-scale/ProtoGENI Pops GENI Aggregate Manager in Internet2 AL2S and dynamic stitching with GENI coming in Spiral 5 Internet2 SDN networks

Sponsored by the National Science Foundation 15 GEC19 March 2014 FOAM An OpenFlow Aggregate Manager Its a GENI compliant reservation service –Helps experimenters reserve flowspace in the FlowVisor Speaks AM API v1 and AM API v2 RSpecs GENI v3, OpenFlow v3 extension

Sponsored by the National Science Foundation 16 GEC19 March 2014 OpenFlow Experiments Debugging OpenFlow experiments is hard: –Network configuration debugging requires coordination –Many networking elements in play –No console access to the switch Before deploying your OpenFlow experiment test your controller.

Sponsored by the National Science Foundation 17 GEC19 March 2014 Run an OpenFlow experiment 1 Xen VM as OVS switch 3 OpenVZ VMs connected to OVS Host1 Host2 Host3 OVS Setup OVS Write simple controllers –e.g. divert traffic to a different server –Use Python controller PoX

Sponsored by the National Science Foundation 18 GEC19 March 2014 To Save Time… Slices have been created for you: –Slice name: oftutnn Resources have been added to your slice: –1 Xen VM running OVS –3 OpenVZ VMs that act as traffic sources & sinks –Resources are from various InstaGENI racks Get shared SSH key installed on the resources: $ wget $ mv gec18.key ~/.ssh/gec18.key $ chmod 0600 ~/.ssh/gec18.key Add the key to your ssh-agent: $ ssh-add ~/.ssh/gec18.key (password: gec!8) Example login: (DONT DO THIS NOW) $ ssh -p We will add your account to the slice!

Sponsored by the National Science Foundation 19 GEC19 March 2014 Part I: Design/Setup –Obtain Resources Part II: Execute –Configure and Initialize Services –Execute Experiment Part III: Finish –Teardown Experiment

Sponsored by the National Science Foundation 20 GEC19 March 2014 Obtain Resources Use your favorite tool to reserve your resources Use the aggregate in your worksheet RSpec at openflowovs-xen-vz.rspec openflowovs-xen-vz.rspec Custom image With OVS and POX installed

Sponsored by the National Science Foundation 21 GEC19 March 2014 Configure OVS OVS is a virtual switch running on a Xen VM node. The interfaces of the Xen node are the ports of the switch –Configure an Ethernet bridge –Add all dataplane ports to the switch Can be an OpenFlow switch –Point OVS switch to the controller address and port (for convenience on the same host but it can be anywhere) Userspace OVS for this exercise

Sponsored by the National Science Foundation 22 GEC19 March 2014 Configure and Initialize OVS Log in to OVS host and configure software switch: $ ifconfig $ sudo ifconfig eth1 0 $ sudo ifconfig eth2 0 $ sudo ifconfig eth3 0 $ sudo ovs-vsctl add-port br0 eth1 $ sudo ovs-vsctl add-port br0 eth2 $ sudo ovs-vsctl add-port br0 eth3 $ sudo ovs-vsctl list-ports br0 $ sudo ovs-vsctl set-controller br0 tcp: :6633 $ sudo ovs-vsctl set-fail-mode br0 secure $ sudo ovs-vsctl show Host1 Host2 Host3 OVS eth1 eth3 eth2 Turn off IP Add data ports to switch Point switch to controller

Sponsored by the National Science Foundation 23 GEC19 March 2014 Part I: Design/Setup –Obtain Resources –What is OpenFlow, what can I do with Openflow? –Demo: Using OpenFlow in GENI Part II: Execute –Configure and Initialize Services –Execute Experiment Part III: Finish –Teardown Experiment

Sponsored by the National Science Foundation 24 GEC19 March 2014 Experiments (1/4) 1.Use a Learning Switch Controller: 1.See the traffic flow changes between hosts as the controller is started or stopped. 1.Soft versus hard timeouts for traffic flows.

Sponsored by the National Science Foundation 25 GEC19 March 2014 Experiments (1/4) Login host1 and start ping host2 $ ping 10. Start learning switch controller: $ cd /local/pox $./pox.py --verbose forwarding.l2_learning Look at ping… now works. Kill controller (ctl c) Look at ping… still running,

Sponsored by the National Science Foundation 26 GEC19 March 2014 Experiments (2/4) 2.Write and run a Traffic Duplication Controller: 1.Controller will duplicate traffic to a different port on the OVS switch. 1.Use tcpdump to see the packet duplication.

Sponsored by the National Science Foundation 27 GEC19 March 2014 Experiments (2/4) Open 2 windows on OVS host Start tcpdump for on OVS:if0 and OVS:if1 Run duplication controller on OVS:if1 $ cd /local/pox $./pox.py --verbose myDuplicateTraffic -- duplicate_port= Look at ping from host1 to host2. Kill controller (ctl c)

Sponsored by the National Science Foundation 28 GEC19 March 2014 Experiments (3/4) 3.Write and run a port forwarding controller: 1.Controller will do port forwarding on your OVS Switch to port specified. 1.Use two netcat servers on host2 to see traffic delivery.

Sponsored by the National Science Foundation 29 GEC19 March 2014 Experiments (3/4) On host 3: $ nc –l 7000 Run proxy controller: $ cd /local/pox $./pox.py --verbose myProxy On host1: $ nc Look at host3 windows, should now be getting nc traffic.

Sponsored by the National Science Foundation 30 GEC19 March 2014 Experiments (4/4) 4. Write and run a server proxy controller 1.To redirect packets to a proxy: What fields do you need to overwrite? Which packets needs special handling? 2.Use netcat to see the deflection

Sponsored by the National Science Foundation 31 GEC19 March 2014 Experiments (4/4) Two windows on host2 run the following: $ nc -l 5000 $ nc –l 6000 Start learning switch controller: On host1: $ nc See what happens to traffic Kill controller (ctl c) Retry with port forwarding controller and see what happens to traffic, and kill when done.

Sponsored by the National Science Foundation 32 GEC19 March 2014 Part III: Finish Experiment When your experiment is done, you should always release your resources. –Normally this is when you would archive your data –Delete your slivers at each aggregate slice project aggregate RSpec user resource sliver AM API sliver credentials certificate