260 likes | 409 Views
http://openflow.marist.edu. Updated Presentation http:// openflow.marist.edu /docs click on “ECC 2012 OpenFlow SDN Presentation”. Software Defined Networks. http://openflow.marist.edu. Open networking w/ OpenFlow @ Marist College. Robert Cannistra Ryan Flaherty
E N D
http://openflow.marist.edu Updated Presentationhttp://openflow.marist.edu/docsclick on “ECC 2012 OpenFlow SDN Presentation” Software Defined Networks
http://openflow.marist.edu Open networking w/ OpenFlow @ Marist College Robert Cannistra Ryan Flaherty Jason ParragaRyan Wallner Software Defined Networks
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 SDN Device HW Abstraction Decoupled Control Logic Control Application
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 communicateover 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
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 OpenFlowtesting and compliance facility & network • Be part of the research around SDN • Develop and help the ONF OpenFlow community grow • Contribute to the community
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 themi.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 • QoS • Floodlight Modules • Jason Parraga : “Avior” A Floodlight Control Module Information In Hancock Center Hallway
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
AviorControl 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
Administrative Concerns How can I program my network? What's involved in programming my network? How can Aviorhelp? What are the plans for Avior?
In the Industry http://www.openflowhub.org/blog/blog/2012/05/10/interop2012/#more-281
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.eduJason Parraga – Jason.Parraga1@marist.edu Ryan Wallner – Ryan.Wallner1@marist.edu