Mais conteúdo relacionado Semelhante a Floodlight - Overview (20) Floodlight - Overview1. Software-Defined Networking and
the Floodlight controller
Mike Cohen
Big Switch Networks
Mike.cohen@bigswitch.com
Alex Reimers
Big Switch Networks
Alex.reimers@bigswitch.com
2. Agenda
Overview
Architecture
Applications
Demo
©2012 – Big Switch Networks Inc.
3. Big Switch Networks
Overview People @ Big Switch
Big Switch Networks is a market leader in
Guido Appenzeller
Software-Defined Networking and a strong CEO, Big Switch Networks
proponent of OpenFlow technology Former Consulting Assistant Professor
at Stanford University, led the team that
developed OpenFlow 1.0
Open Source Projects include:
Floodlight Rob Sherwood
MTS, Big Switch Networks
Indigo Author of FlowVisor and key architect
OFTest of OpenFlow 1.0
More to come…
Dan Talayco
MTS, Big Switch Networks
Former member of the Stanford
OpenFlow Team. Led development of
Yes, we’re hiring! the Indigo reference implementation
Contact me or careers@bigswitch.com Others include:
Isabelle Guis, Omar Baldonado, Howie Xu, Mansour
Karam, Nick Bastin, Saurav Das, and many others…
©2012 – Big Switch Networks Inc. 3
5. Floodlight Overview
An Apache licensed OpenFlow Controller
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
©2012 – Big Switch Networks Inc. 5
6. Floodlight Users and Contributors
Floodlight Adopters:
• University research
• Networking vendors
• Users
• Developers / startups
©2012 – Big Switch Networks Inc. 6
8. Floodlight Growth
Downloads of Floodlight since January launch
7000
• Over 200 mailing list posts / month
6000 • Run rate of 1200+ downloads / month
5000
4000
3000
Mailing list
2000 posts per
month
1000
0
©2012 – Big Switch Networks Inc. 8
9. Building Floodlight
Fast…and easy…
Download from Github
$ 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
Get the VM (including mininet)
$ wget http://floodlight.openflowhub.org/files/floodlight-vm.zip
(login as “floodlight” user, no password)
©2012 – Big Switch Networks Inc. 9
10. Floodlight Roadmap
Recently launched: Roadmap:
OpenFlow 1.x support
Module system
Command line interface
Ubuntu PPA’s
Persistent storage
Quantum / OpenStack Python / Jython support
Web UI Firewall, Load balancer
apps
Performance improvements
Web UI 2.0
Stable northbound APIs
Better Documentation
©2012 – Big Switch Networks Inc. 10
12. Floodlight Architecture
Overview
FloodlightProvider
(IFloodlightProviderService) Floodlight is a collection of modules
TopologyManager
(ITopologyManagerService)
LinkDiscovery Some modules (not all) export
(ILinkDiscoveryService)
services
Forwarding
DeviceManager All modules in Java
(IDeviceService)
StorageSource
(IStorageSourceService) Rich, extensible REST API
RestServer
(IRestApiService)
StaticFlowPusher
(IStaticFlowPusherService)
VirtualNetworkFilter
(IVirtualNetworkFilterService)
©2012 – Big Switch Networks Inc. 12
13. Floodlight Architecture
Module descriptions
FloodlightProvider Translates OF messages to Floodlight events
(IFloodlightProviderService) Managing connections to switches via Netty
TopologyManager Computes shortest path using Dijsktra
(ITopologyManagerService) Keeps switch to cluster mappings
LinkDiscovery Maintains state of links in network
(ILinkDiscoveryService) Sends out LLDPs
Installs flow mods for end-to-end routing
Forwarding
Handles island routing
DeviceManager Tracks hosts on the network
(IDeviceService) MAC -> switch,port, MAC->IP, IP->MAC
StorageSource DB style storage (queries, etc)
(IStorageSourceService) Modules can access all data and subscribe to changes
RestServer Implements via Restlets (restlet.org)
(IRestApiService) Modules export RestletRoutable
StaticFlowPusher Supports the insertion and removal of static flows
(IStaticFlowPusherService) REST-based API
VirtualNetworkFilter Create layer 2 domain defined by MAC address
(IVirtualNetworkFilterService) Used for OpenStack / Quantum
©2012 – Big Switch Networks Inc. 13
14. Floodlight Programming Model
Northbound APIs
IFloodlightModule
Java module that runs as part of Floodlight
External
Consumes services and events exported by Application
other modules
OpenFlow (ie. Packet-in)
Switch add / remove REST
IFloodlight-
Device add /remove / move Module
Link discovery
Floodlight Controller
External Application
Communicates with Floodlight via REST Switch
Quantum / Virtual networks Switch
Normalized network state
vSwitch
Static flows Switch
©2012 – Big Switch Networks Inc. 14
15. REST API Reference
A moving target…but…
Network State Static Flows Virtual Network User Extensions
List Hosts Add Flow Create Network …
List Links Delete Flow Delete Network
List Switches List Flows Add Host
GetStats (DPID) RemoveAll Flows Remove Host
GetCounters
(OFType…)
Floodlight Controller
Switch
Switch
Switch
vSwitch
©2012 – Big Switch Networks Inc. 15
16. Programming Floodlight (1)
Using the REST API
Fine-grained ability to
push flows over REST
Access to normalized
topology and device state
Extensible access to add
new APIs
©2012 – Big Switch Networks Inc. 16
17. Programming Floodlight (2)
Creating a module
Handle OpenFlow
messages directly (ie.
PacketIn)
Expose services to other
modules
Add new REST APIs
©2012 – Big Switch Networks Inc. 17
19. Programmable Patch Panel
A Floodlight iPhone application
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/
©2012 – Big Switch Networks Inc. 19
20. vArmour: Security for OpenFlow
Founded by security veterans
from NetScreen
Security device integrated with
Application
Application
Application
the Floodlight controller
Showcased the first SDN-capable Floodlight Controller
deep packet inspection working Switch
with Floodlight at the Open Switch
Networking Summit Switch
Switch
Contact: http://www.varmour.com/
©2012 – Big Switch Networks Inc. 20
21. MobiFlow: Floodlight iPad Interface
Built be Saurabh
Sabnis, Georgia Tech
Interface to view
switches, hosts, netwo
rk topology, and
statistics
Access to Static Flow
Pusher API
Available: Coming
soon
©2012 – Big Switch Networks Inc. 21
23. Floodlight OpenStack Integration
Virtual Networking Support
Components:
RestProxy plugin runs inside Quantum Quantum
module in OpenStack
RestProxy
VirtualNetworkFilter implements layer 2 Plugin
isolation based on MAC
Highlights:
Supports physical and virtual switches in VirtualNetwork
OpenFlow networks Filter
Caveats:
Floodlight Controller
No multicast and broadcast isolation
All DHCP traffic allowed
Switch
vSwitch
Switch vSwitch
©2012 – Big Switch Networks Inc.
24. OpenStack / Floodlight Demo
OpenStack-in-a-VM
1. Create two quantum networks Core Processes
VirtualNetwork Filter
Quantum
2. Launch 2 hosts in one
network: [10.5.5.2, 10.5.5.3] RestProxy Floodlight
Plugin Controller
3. Launch 1 host in the other
[10.6.6.2]
OpenStack / Quantum Network
4. Test pings:
Open vSwitch
1. 10.5.5.2 -> 10.5.5.3 [OK]
2. 10.6.6.2 -> 10.5.5.2 [NO]
Host52 Host53
Each network is in an isolated layer Host62
2 domain enforced by Floodlight’s
VirtualNetworkFilter. 10.5.5.0/24 10.6.6.0/24
©2012 – Big Switch Networks Inc. 24
26. Get Involved with OpenFlowHub
Join the community!
What it is: Get involved:
1. A community of open source Submit a project
OpenFlow developers
Write a blog post
2. An OpenFlow Blog (available for
guest authors) http://www.openflowhub.org
3. Free hosting, tools, and promotion Contact:
for open source projects mike.cohen@openflowhub.org
Wiki, forums, bug tracking
tools, logos, etc.
Projects:
©2012 – Big Switch Networks Inc. – Proprietary and Confidential 26
27. OFTest: Validating OpenFlow Switches
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
OFTest connects to both
the data plane and control
plane of the switch to
Available: http://oftest.openflowhub.org/ simulate and monitor
OpenFlow messages
©2012 – Big Switch Networks Inc. 27
28. LOXI
Logical OpenFlow eXtensible Interface
Challenge: The OF specification lives in openflow.h
openflow.h openflow.h
Tight coupling of wire format and datastructures V1.2 V1.1
Input
New version of OpenFlow 1.x == LOTS of code
openflow.h openflow.h
change V1.3 V1.0
Few non 1.0 switches and controllers have
emerged LOXI
Parser
Front-
Solution: LOXI, an interface that hides OpenFlow wire end
format differences
Write once, run across any OF version
Code Gen
Python Java C
Support for multiple languages Back-end Back-end Back-end
Example: match MPLS tag XX
OF 1.0 – unsupported
OF 1.1 – fixed length match
Output
LOXI.py LOXI.jar libLOXI.a
OF 1.2+ - OXM-style match
Available: Coming soon…
©2012 – Big Switch Networks Inc. 28
29. Indigo
An OpenFlow switch reference implementation
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. 29
30. Interested in Learning More?
Check out the website
http://floodlight.openflowhub.org
Join the mailing list:
http://groups.google.com/a/openflowhub.org/group/floo
dlight-dev/topics
Or just email floodlight-dev@openflowhub.org
Get the code:
http://floodlight.openflowhub.org/download
©2012 – Big Switch Networks Inc. 30
31. Thanks!
Mike Cohen
Mike.cohen@bigswitch.com
Big Switch Networks
Alex Reimers
Alex.reimers@bigswitch.com
Big Switch Networks
Floodlight mailing list:
floodlight-dev@openflowhub.org
©2012 – Big Switch Networks Inc.
Notas do Editor Our topology, device manager know about host attachment points and make it possible to deal with integrating openflow and non openflow networks. Our topology, device manager know about host attachment points and make it possible to deal with integrating openflow and non openflow networks.