ECC 2012 OpenFlow SDN Presentaton

advertisement
Updated Presentation
http://openflow.marist.edu/docs
click on “ECC 2012 OpenFlow SDN Presentation”
Software Defined Networks
Open networking w/ OpenFlow @
Marist College
Robert Cannistra
Ryan Flaherty
Jason Parraga
Ryan Wallner
Software Defined Networks
Who’s Involved ?
This Talk…
 What is SDN and why make the move towards SDN?
 What can SDN provide?
 How does OpenFlow fit into the SDN paradigm?
 What can we do with the OpenFlow protocol?
 Simple OpenFlow examples
 Where can I find more information about OpenFlow and
SDN?
Software Defined Networks
 Buzzword “Network Virtualization”
 Network Abstraction / Reduce Complexity (networks are inherently complex)
 Traditional TCP/IP Layers
 Centralized Network Intelligence (Control)
 Distribution Model is programmers choice not the networks
choice
 State Control
 Control Plane separated from Data Plane
 Packet Forwarding
Software Defined Networks
Device
HW Abstraction
Decoupled Control Logic
Control Application
 SDN
Traditional Control
Logic
(device -> device)
Where does OpenFlow fit in?

OpenFlow “a piece of the SDN puzzle”

An Open Standard

Enables the ‘forwarding abstraction’

Cross-vendor communication solution

Enables Innovative software defined network solutions





Routing Protocols
Network Control
Load Balancing
Security
& More
OpenFlow: “An Interface”
 An Open Standard (as stated before)

Separates the Control and Data path of the switch
 “OpenFlow Controller” takes care of Control Logic
 Devices communicate over OpenFlow Protocol

Defines OF Messages to the Controller

 Creates a Flow Table abstraction

Flows match on packet fields and have actions associated
 Static, Dynamic and Aggregate flow matching
Good place to start: OpenFlow Spec (1.1.0 also currently implemented)
http://www.openflow.org/documents/openflow-spec-v1.0.0.pdf
OpenFlow: Part of SDN
What does OpenFlow do in SDN?
The Value Proposition
 What Value do we get from SDN/OpenFlow?
 Innovation
 Networks will innovate as software does
 Freedom to program the behavior of your local network
 Do not have to abide by traditional protocols
 Customization
Marist, SDN and OpenFlow

Goal: Create an OpenFlow testing
and compliance facility & network

Be part of the research around
SDN

Develop and help the ONF
OpenFlow community grow

Contribute to the community
Marist OpenFlow SDN Environment
Research Plans
 OpenFlow testing and compliance checklist
 Research and Development publications
 Open source OpenFlow controller code to the community
 Explore use cases for OpenFlow and test them i.e.

How can OpenFlow be used in the datacenter?
 If any what type of benefits does OpenFlow have that traditional
networks don't?
 How scalable and robust is OpenFlow, or the controllers?
The List goes on
Demos -Using Floodlight
 ACLs (Firewall Based)
 VLANING the network
 Routing L2 & L3
Information In Hancock Center Hallway
 QoS
 Floodlight Modules

Jason Parraga : “Avior” A Floodlight Control Module
import httplib
import json
class StaticFlowPusher(object):
def __init__(self, server):
self.server = server
def get(self, data):
ret = self.rest_call({}, 'GET')
return json.loads(ret[2])
def set(self, data):
ret = self.rest_call(data, 'POST')
return ret[0] == 200
def remove(self, objtype, data):
ret = self.rest_call(data, 'DELETE')
return ret[0] == 200
def rest_call(self, data, action):
path = '/wm/staticflowentrypusher/json'
headers = {
'Content-type': 'application/json',
'Accept': 'application/json',
}
body = json.dumps(data)
conn = httplib.HTTPConnection(self.server, 8080)
conn.request(action, path, body, headers)
response = conn.getresponse()
ret = (response.status, response.reason,
response.read())
print ret
conn.close()
return ret
Create a StaticFlowPusher Object
This will allow a static programmable interface
to write scripts to support flow tables across
your network using Floodlight’s REST API.
• Supports Flow_Mod
• Get
• Set
• Remove
• Sends HTTP Requests
• GET
• POST
• DELETE
import StaticFlowPusher
#Switches used for tests
#Switch 00:0a:34:40:b5:3c:18:00
#Switch 00:0a:34:40:b5:40:b8:00
#Switch manufacturer: Blade Network Technologies
#Switch manufacturer: Blade Network Technologies
pusher = StaticFlowPusher.StaticFlowPusher(’xxx.xxx.xxx.xxx’)
flow1 = {
'switch':"00:0a:34:40:b5:3c:18:00",
"name":"allow-webaccess",
"ingress-port":"19",
"cookie":"0",
"dst-ip":”x.x.x.223", #webserver
"dst-port":"80",
"ether-type":"2048",
"protocol":"6",
"priority":"32768",
"active":"true",
"actions":"output=all"
}
flow2 = {
"switch":"00:0a:34:40:b5:3c:18:00",
"name":"drop-web-access-all",
"ingress-port":"19",
"cookie":"0",
"dst-port":"80",
"ether-type":“2048",
"protocol":"6",
"active":"true",
"priority":"32768",
"actions":""
}
pusher.set(flow1)
pusher.set(flow2)
import StaticFlowPusher
#Switches used for tests
#Switch 00:0a:34:40:b5:3c:18:00
#Switch 00:0a:34:40:b5:40:b8:00
#Switch 00:0a:34:40:b5:3c:18:00 manufacturer:
Blade Network Technologies
#Switch 00:0a:34:40:b5:40:b8:00 manufacturer:
Blade Network Technologies
pusher = StaticFlowPusher.StaticFlowPusher(’xxx.xxx.xxx.xxx')
flow1 ={
'switch':"00:0a:34:40:b5:3c:18:00",
"name":"flow-mod-2",
"cookie":"0",
"priority":"32768",
"ingress-port":"19",
"ether-type":"2048",
"src-ip":”x.x.x.224",
"active":"true",
"actions":"output=17"
}
flow2 ={
'switch':"00:0a:34:40:b5:3c:18:00",
"name":"flow-mod-3",
"cookie":"0",
"priority":"32768",
"ingress-port":"19",
"ether-type":"2048",
"src-ip":”x.x.x.225",
"active":"true",
"actions":""
}
pusher.set(flow1)
pusher.set(flow2)
Avior – A Floodlight Control Module
Marist/IBM Joint Study
Avior Control Module
 Goal: Address network control using Floodlight
 Reduce Complexity
 Eliminate static flow python scripting
 Provide an abstraction of the network that can be
customizable
 Build network configuration application against that
abstraction
http://openflow.marist.edu/docs
Administrative Concerns
How can I program my network?
What's involved in programming my network?
How can Avior help?
What are the plans for Avior?
http://www.openflowhub.org/blog/blog/2012/05/10/interop2012/#more-281
In the Industry
References
 http://openflow.marist.edu
 http://openflow.marist.edu/liveview
 http://openflow.marist.edu/static/media/files/ECC2012PRES.
pptx
 http://www.openflowhub.org/
 http://opennetworking.org
 http://floodlight.openflowhub.org
Questions?
 Marist OpenFlow/SDN DEMOS IN THE HALLWAY
Robert Cannistra – Robert.Cannistra@marist.edu
Ryan Flaherty – Ryan.Flaherty1@marist.edu
Jason Parraga – Jason.Parraga1@marist.edu
Ryan Wallner – Ryan.Wallner1@marist.edu
Download