Floodlight Overview
-
Upload
michael-cohen -
Category
Technology
-
view
1.432 -
download
6
description
Transcript of Floodlight Overview
Software-Defined Networking and the Floodlight controller
Mike CohenBig Switch [email protected]
Alex ReimersBig Switch [email protected]
Overview
Architecture
Applications
Demo
Agenda
©2012 – Big Switch Networks Inc.
Overview
Big Switch Networks is a market leader in Software-Defined Networking and a strong proponent of OpenFlow technology
Open Source Projects include: Floodlight Indigo OFTest More to come…
Yes, we’re hiring! Contact me or [email protected]
3
Big Switch Networks
©2012 – Big Switch Networks Inc.
People @ Big Switch
Guido AppenzellerCEO, Big Switch NetworksFormer Consulting Assistant Professor at Stanford University, led the team that developed OpenFlow 1.0
Rob SherwoodMTS, Big Switch NetworksAuthor of FlowVisor and key architect of OpenFlow 1.0
Dan TalaycoMTS, Big Switch NetworksFormer member of the Stanford OpenFlow Team. Led development of the Indigo reference implementation
Others include:Isabelle Guis, Omar Baldonado, Howie Xu, Mansour Karam, Nick Bastin, Saurav Das, and many others…
Floodlight Overview
©2012 – Big Switch Networks Inc.
Developer friendly Apache license
Easy to use, extensible Java development environment
Enterprise grade - Core engine used and supported by Big Switch Networks (running in production today)
Supports a broad range of physical and virtual OpenFlow switches
OF 1.0 compliant today – future OF versions on the way
5
An Apache licensed OpenFlow ControllerFloodlight Overview
©2012 – Big Switch Networks Inc.
Floodlight Users and Contributors
©2012 – Big Switch Networks Inc. 6
Floodlight Adopters: • University research • Networking vendors• Users• Developers / startups
7
A snapshot from Interop Floodlight Switch Compatibility
©2012 – Big Switch Networks Inc.
Downloads of Floodlight since January launchFloodlight Growth
8
16-Ja
n
30-Ja
n
13-F
eb
27-F
eb
12-M
ar
26-M
ar
9-Ap
r
23-A
pr
7-May
21-M
ay4-
Jun
18-Ju
n0
1000
2000
3000
4000
5000
6000
7000• Over 200 mailing list posts / month• Run rate of 1200+ downloads / month
Mailing list posts per month
©2012 – Big Switch Networks Inc.
Fast…and easy…Building Floodlight
9
$ git clone git://github.com/floodlight/floodlight.git
$ sudo apt-get install build-essential default-jdk ant python-dev
$ cd floodlight; ant
$ java –jar target/floodlight.jar
Download from Github
$ wget http://floodlight.openflowhub.org/files/floodlight-vm.zip
(login as “floodlight” user, no password)
Get the VM (including mininet)
©2012 – Big Switch Networks Inc.
Recently launched:
Module system
Ubuntu PPA’s
Quantum / OpenStack
Web UI
Performance improvements
Roadmap:
OpenFlow 1.x support
Command line interface
Persistent storage
Python / Jython support
Firewall, Load balancer apps
Web UI 2.0
Stable northbound APIs
Better Documentation
10
Floodlight Roadmap
©2012 – Big Switch Networks Inc.
Programming Floodlight
©2012 – Big Switch Networks Inc.
12
Floodlight ArchitectureOverview
Floodlight is a collection of modules
Some modules (not all) export services
All modules in Java
Rich, extensible REST API
©2012 – Big Switch Networks Inc.
DeviceManager(IDeviceService)
FloodlightProvider(IFloodlightProviderService)
TopologyManager(ITopologyManagerService)
RestServer(IRestApiService)
StorageSource(IStorageSourceService)
Forwarding
StaticFlowPusher(IStaticFlowPusherService)
LinkDiscovery(ILinkDiscoveryService)
VirtualNetworkFilter(IVirtualNetworkFilterService)
13
Floodlight ArchitectureModule descriptions
DeviceManager(IDeviceService)
FloodlightProvider(IFloodlightProviderService)
TopologyManager(ITopologyManagerService)
RestServer(IRestApiService)
StorageSource(IStorageSourceService)
Forwarding
StaticFlowPusher(IStaticFlowPusherService)
LinkDiscovery(ILinkDiscoveryService)
VirtualNetworkFilter(IVirtualNetworkFilterService)
©2012 – Big Switch Networks Inc.
DB style storage (queries, etc) Modules can access all data and subscribe to changes
13
Computes shortest path using Dijsktra Keeps switch to cluster mappings
Installs flow mods for end-to-end routing Handles island routing
Tracks hosts on the network MAC -> switch,port, MAC->IP, IP->MAC
Implements via Restlets (restlet.org) Modules export RestletRoutable
Supports the insertion and removal of static flows REST-based API
Maintains state of links in network Sends out LLDPs
Create layer 2 domain defined by MAC address Used for OpenStack / Quantum
Translates OF messages to Floodlight events Managing connections to switches via Netty
Floodlight Programming ModelNorthbound APIs
Switch
Switch
vSwitch
Switch
IFloodlight-Module
External Application
REST
IFloodlightModule
Java module that runs as part of Floodlight
Consumes services and events exported by other modules OpenFlow (ie. Packet-in) Switch add / remove Device add /remove / move Link discovery
External Application
Communicates with Floodlight via REST Quantum / Virtual networks Normalized network state Static flows
©2012 – Big Switch Networks Inc.
Floodlight Controller
14
Network State
List Hosts
List Links
List Switches
GetStats (DPID)
GetCounters (OFType…)
15
A moving target…but…REST API Reference
©2012 – Big Switch Networks Inc.
Static Flows
Add Flow
Delete Flow
List Flows
RemoveAll Flows
Virtual Network
Create Network
Delete Network
Add Host
Remove Host
User Extensions
…
Floodlight Controller
Switch
Switch
vSwitchSwitch
Fine-grained ability to push flows over REST
Access to normalized topology and device state
Extensible access to add new APIs
16
Using the REST APIProgramming Floodlight (1)
©2012 – Big Switch Networks Inc.
Handle OpenFlow messages directly (ie. PacketIn)
Expose services to other modules
Add new REST APIs
17
Creating a moduleProgramming Floodlight (2)
©2012 – Big Switch Networks Inc.
Cool Floodlight Applications
©2012 – Big Switch Networks Inc.
18
A simple programmable patch panel built from: Floodlight Pronto 3290 switch running Indigo
Uses Static Flow Pusher API to redirect traffic between two ports
Runs remotely on the iPhone!
Available: http://virtualnow.net/2012/05/03/using-an-openflow-switch-as-a-programmable-patch-panel/
A Floodlight iPhone applicationProgrammable Patch Panel
©2012 – Big Switch Networks Inc. 19
Founded by security veterans from NetScreen
Security device integrated with the Floodlight controller
Showcased the first SDN-capable deep packet inspection working with Floodlight at the Open Networking Summit
Contact: http://www.varmour.com/
20
vArmour: Security for OpenFlow
©2012 – Big Switch Networks Inc.
Switch
Switch
Switch
Switch
Floodlight Controller
App
licatio
n
App
licatio
n
App
licatio
n
Built be Saurabh Sabnis, Georgia Tech
Interface to view switches, hosts, network topology, and statistics
Access to Static Flow Pusher API
Available: Coming soon
21
MobiFlow: Floodlight iPad Interface
©2012 – Big Switch Networks Inc.
OpenStack and Quantum
©2012 – Big Switch Networks Inc.
22
Components:
RestProxy plugin runs inside Quantum module in OpenStack
VirtualNetworkFilter implements layer 2 isolation based on MAC
Highlights:
Supports physical and virtual switches in OpenFlow networks
Caveats: No multicast and broadcast
isolation All DHCP traffic allowed
Virtual Networking SupportFloodlight OpenStack Integration
©2012 – Big Switch Networks Inc.
VirtualNetwork Filter
vSwitchSwitch
Switch
vSwitch
RestProxy Plugin
Quantum
Floodlight Controller
1. Create two quantum networks
2. Launch 2 hosts in one network: [10.5.5.2, 10.5.5.3]
3. Launch 1 host in the other [10.6.6.2]
4. Test pings:
1. 10.5.5.2 -> 10.5.5.3 [OK]
2. 10.6.6.2 -> 10.5.5.2 [NO]
Each network is in an isolated layer 2 domain enforced by Floodlight’s VirtualNetworkFilter.
24
OpenStack-in-a-VMOpenStack / Floodlight Demo
©2012 – Big Switch Networks Inc.
Open vSwitch
VirtualNetwork Filter
Floodlight Controller
RestProxy Plugin
Quantum
10.5.5.0/24 10.6.6.0/24
Host52 Host53 Host62
Core Processes
OpenStack / Quantum Network
OpenFlowHub and Other Open Source Projects
©2012 – Big Switch Networks Inc.
©2012 – Big Switch Networks Inc. – Proprietary and Confidential 26
Join the community!Get Involved with OpenFlowHub
Submit a project
Write a blog post
http://www.openflowhub.org
Contact: [email protected]
1. A community of open source OpenFlow developers
2. An OpenFlow Blog (available for guest authors)
3. Free hosting, tools, and promotion for open source projects
Wiki, forums, bug tracking tools, logos, etc.
What it is: Get involved:
Projects:
A python-based framework and set of tests for OpenFlow switches
Includes over 60 tests exercising various aspects of OpenFlow
Useful for testing new OpenFlow implementations and assessing standards compliance
Available: http://oftest.openflowhub.org/
27
OFTest: Validating OpenFlow Switches
OFTest connects to both the data plane and control plane of the switch to simulate and monitor OpenFlow messages
©2012 – Big Switch Networks Inc.
Challenge: The OF specification lives in openflow.h Tight coupling of wire format and datastructures New version of OpenFlow 1.x == LOTS of code
change Few non 1.0 switches and controllers have
emerged
28
Logical OpenFlow eXtensible InterfaceLOXI
openflow.hV1.0
openflow.hV1.3
openflow.hV1.1
openflow.hV1.2
LOXIFront-end
CBack-end
JavaBack-end
PythonBack-end
libLOXI.aLOXI.jarLOXI.py
InputP
arserC
ode Gen
Output
Solution: LOXI, an interface that hides OpenFlow wire format differences
Write once, run across any OF version Support for multiple languages Example: match MPLS tag XX
OF 1.0 – unsupportedOF 1.1 – fixed length matchOF 1.2+ - OXM-style match
Available: Coming soon…©2012 – Big Switch Networks Inc.
29
An OpenFlow switch reference implementationIndigo
Version 1: Designed for hardware switches and
released under OpenFlow license in 2009 Support for 1G and 10G Broadcom chips
Version 2.0 (coming soon): Based on LOXI – OF 1.x support for free Apache 2.0 license Support for multiple datapaths, both
hardware and software Config abstraction layer for easily
integrating UI’s
Available (1.0): http://indigo.openflowhub.org
©2012 – Big Switch Networks Inc.
Interested in Learning More?
Check out the websitehttp://floodlight.openflowhub.org
Join the mailing list:http://groups.google.com/a/openflowhub.org/group/floo
dlight-dev/topicsOr just email [email protected]
Get the code:http://floodlight.openflowhub.org/download
©2012 – Big Switch Networks Inc. 30
Thanks!Mike Cohen
[email protected] Switch Networks
Alex [email protected]
Big Switch Networks
Floodlight mailing list:[email protected]
©2012 – Big Switch Networks Inc.