Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
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 – [email protected]
Ryan Flaherty – [email protected]
Jason Parraga – [email protected]
Ryan Wallner – [email protected]