An Introduction to Software-Defined Networking (SDN)

Slides:



Advertisements
Similar presentations
Logically Centralized Control Class 2. Types of Networks ISP Networks – Entity only owns the switches – Throughput: 100GB-10TB – Heterogeneous devices:
Advertisements

OpenDaylight: An Open Source SDN for Your OpenStack Cloud Stephan Baucke, Ericsson Kyle Mestery, Cisco Anees Shaikh, IBM Chris Wright,
OpenFlow Costin Raiciu Using slides from Brandon Heller and Nick McKeown.
Software-Defined Networking, OpenFlow, and how SPARC applies it to the telecommunications domain Pontus Sköldström - Wolfgang John – Elisa Bellagamba November.
Slide title 70 pt CAPITALS Slide subtitle minimum 30 pt An Introduction to Software-Defined Networking (SDN) Zhang Fu.
SDN and Openflow.
SDN Controller Requirement draft-gu-sdnrg-sdn-controller-requirement-00 Rong Gu (Presenter) Chen Li China Mobile.
NOV 20, 2014 Abi Varghese Tiju John Mahesh Govind
Software-Defined Networks Jennifer Rexford Princeton University.
Objectives: Chapter 5: Network/Internet Layer  How Networks are connected Network/Internet Layer Routed Protocols Routing Protocols Autonomous Systems.
SDN AND OPENFLOW SPECIFICATION SPEAKER: HSUAN-LING WENG DATE: 2014/11/18.
SDN and Openflow. Motivation Since the invention of the Internet, we find many innovative ways to use the Internet – Google, Facebook, Cloud computing,
SDN Management Layer DESIGN REQUIREMENTS AND FUTURE DIRECTION NO OF SLIDES : 26 1.
1 | © 2015 Infinera Open SDN in Metro P-OTS Networks Sten Nordell CTO Metro Business Group
Slide title 70 pt CAPITALS Slide subtitle minimum 30 pt An Introduction to Software-Defined Networking (SDN) Zhang Fu Ericsson Research Feb 2016.
3.6 Software-Defined Networks and OpenFlow
Fabric: A Retrospective on Evolving SDN Presented by: Tarek Elgamal.
Why Fabric? 1 Complicated technology/vendor/device specific provisioning for networks, especially heterogeneous network DC Network – STP, TRILL, SPB, VXLAN,
Software Defined Networking and OpenFlow Geddings Barrineau Ryan Izard.
SDN and Beyond Ghufran Baig Mubashir Adnan Qureshi.
Test and Performance Integration Group.
Atrium Router Project Proposal Subhas Mondal, Manoj Nair, Subhash Singh.
Preliminaries: EE807 Software-defined Networked Computing KyoungSoo Park Department of Electrical Engineering KAIST.
Software Defined Networking BY RAVI NAMBOORI. Overview  Origins of SDN.  What is SDN ?  Original Definition of SDN.  What = Why We need SDN ?  Conclusion.
SDN basics and OpenFlow. Review some related concepts SDN overview OpenFlow.
1 Computer Networks Chapter 5. Network layer The network layer is concerned with getting packets from the source all the way to the destination. Getting.
Luis Gomez, Principal SW Test Engineer, Brocade
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Mininet and Openflow Labs
Developing an Implementation Framework for the Future Internet using the Y-Comm Architecture, SDN and NFV Glenford Mapp Associate Professor Middlesex University,
Konstantin agouros Omkar deshpande
Chapter 4 Network Layer: The Data Plane
Instructor Materials Chapter 7: Network Evolution
SDN challenges Deployment challenges
Chapter 5 Network Layer: The Control Plane
CompTIA Security+ Study Guide (SY0-401)
Chapter 4 Network Layer Computer Networking: A Top Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 CPSC 335 Data Communication.
Some slides have been adapted from:
Multi-layer software defined networking in GÉANT
Software defined networking: Experimental research on QoS
University of Maryland College Park
15-744: Computer Networking
The DPIaaS Controller Prototype
ETHANE: TAKING CONTROL OF THE ENTERPRISE
Revisiting Ethernet: Plug-and-play made scalable and efficient
NOX: Towards an Operating System for Networks
What Are Routers? Routers are an intermediate system at the network layer that is used to connect networks together based on a common network layer protocol.
Chapter 4: Routing Concepts
Overview of SDN Controller Design
SDN Overview for UCAR IT meeting 19-March-2014
Software Defined Networking (SDN)
CompTIA Security+ Study Guide (SY0-401)
Routing.
Chapter 5 Network Layer: The Control Plane
ONOS Drake Release September 2015.
Northbound API Dan Shmidt | January 2017
The Stanford Clean Slate Program
CS 31006: Computer Networks – The Routers
Software Defined Networking (SDN)
Software Defined Networking
Network Core and QoS.
2018/12/10 Energy Efficient SDN Commodity Switch based Practical Flow Forwarding Method Author: Amer AlGhadhban and Basem Shihada Publisher: 2016 IEEE/IFIP.
ECE453 – Introduction to Computer Networks
An Introduction to Software Defined Networking and OpenFlow
Chapter 5 Network Layer: The Control Plane
Routing.
Network Core and QoS.
An Introduction to Software Defined Networking and OpenFlow
Control-Data Plane Separation
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

An Introduction to Software-Defined Networking (SDN) 2016-02-21 An Introduction to Software-Defined Networking (SDN) Zhang Fu Ericsson Research

Roadmap Reviewing traditional networking Examples for motivating SDN 2016-02-21 Roadmap Reviewing traditional networking Examples for motivating SDN Enabling networking as developing softwares SDN architecture Use cases Challenges and research problems Little touch on Openflow

Reviewing traditional networking 2016-02-21 Reviewing traditional networking Network layers Application layer transport layer network layer Data-link layer physical layer Application layer transport layer network layer Data-link layer physical layer source destination switch router Why layers? Good abstraction, transparency…

Reviewing traditional networking 2016-02-21 Reviewing traditional networking Design principles of Internet Simple Intelligent end-points Distributed control Resulting in huge complex network and hard to manage Billions of computers Tens of thousands of ASes Great business for selling routers

Reviewing traditional networking 2016-02-21 Reviewing traditional networking Complex routers Hardware Router Software Million of lines of source code Hard to extend Tens of billions of transistors 10Gbytes RAM Power Hungry Vertically integration with many complex functions: OSPF, BGP, multicast, QoS, Traffic Engineering, NAT, firewalls, MPLS…

Roadmap Reviewing traditional networking Examples for motivating SDN 2016-02-21 Roadmap Reviewing traditional networking Examples for motivating SDN Enabling networking as developing softwares SDN architecture Use cases Challenges and research problems Little bite of Openflow

Example: oscillation problem 2016-02-21 Example: oscillation problem Link cost equals the amount of carried traffic A D C B 1 1+e e initially given these costs, find new routing…. resulting in new costs 2+e How to achieve optimal routing dynamically?

Traffic engineering: difficult 2 1 3 5 v w u z y x Q: what if network operator wants to split u-to-z traffic along uvwz and uxyz (load balancing)? A: can’t do it (or need a new routing algorithm) Note: implicit assumption here: destination based forwarding Network Layer: Control Plane

Traffic engineering: difficult 5 v 3 w v w 5 2 u z 2 z 1 3 1 x x y 2 y 1 Q: what if w wants to route yellow and red traffic differently? A: can’t do it (with destination based forwarding, and LS, DV routing) Note: implicit assumption here: destination based forwarding Network Layer: Control Plane

Roadmap Reviewing traditional networking Examples for motivating SDN 2016-02-21 Roadmap Reviewing traditional networking Examples for motivating SDN Enabling networking as developing softwares SDN architecture Use cases Challenges and research problems Little touch on Openflow

Software development VS Network diagnosing 2016-02-21 Software development VS Network diagnosing Various tools for code analysis, verification, debugging Software Specification Testing Coding Diagnosing tools? Ping, traceroute, SNMP Networking Specification Testing ? Coding ? The life cycle for network protocols is much longer than that for software Timely research does not find its way into practice

2016-02-21 Network substrate We want to mimic the success in software industry Has simple common substrate Building OS on top the hardware, which enables easy deployment of networking applications SDN A network in which the control plane is physically separate from the data plane. A single control plane controls several forwarding devices.

Network substrate Router Example 2016-02-21 Network substrate Router Example Basic job of the router: receiving packets, checking the routing table, forwarding the packets out In order to build the routing table, the router has to understand BGP, OSPF, RIP, etc. What about getting the routing table from somewhere else?

Separate data and control plane 2016-02-21 Separate data and control plane hardware software hardware software hardware software hardware software

Separate data and control plane 2016-02-21 Separate data and control plane Control plane software hardware hardware hardware hardware

Separate data and control plane 2016-02-21 Separate data and control plane Control plane hardware hardware hardware hardware

Roadmap Reviewing traditional networking Examples for motivating SDN 2016-02-21 Roadmap Reviewing traditional networking Examples for motivating SDN Enabling networking as developing softwares SDN architecture Use cases Challenges and research problems Little touch on Openflow

2016-02-21 SDN architecture

2016-02-21 SDN architecture The data plane consists of network elements, which expose their capabilities to the control plane via southbound interface The SDN applications are in the application plane and communicate their network requirements toward the control plane via northbound interface The control plane sits in the middle translate the applications’ requirements and exerts low-level control over the network elements Provide network information to the applications Orchestrate different applications

Data-plane Data sources and sinks Traffic forwarding/processing engine 2016-02-21 Data-plane Data sources and sinks Traffic forwarding/processing engine May have the ability to handle some types of protocol, e.g. ARP, LLDP. Provide interfaces communicating to the control plane Programmatic control of all functions offered by the network element Capability advertisement Event notification

SDN perspective: data plane switches fast, simple, commodity switches implementing generalized data-plane forwarding in hardware switch flow table computed, installed by controller API for table-based switch control (e.g., OpenFlow) defines what is controllable and what is not protocol for communicating with controller (e.g., OpenFlow) data plane control SDN Controller (network operating system) … routing access load balance southbound API northbound API SDN-controlled switches network-control applications Network Layer: Control Plane

Control-plane Logically centralized Core functionality 2016-02-21 Control-plane Logically centralized Core functionality Topology and network state information Device discovery Path computation Security mechanism Coordination among different controllers Interfaces to the application plane

Components of SDN controller routing access control load balance Interface layer to network control apps: abstractions API Interface, abstractions for network control apps … network graph RESTful API intent Network-wide state management layer: state of networks links, switches, services: a distributed database … statistics flow tables SDN controller Network-wide distributed, robust state management … Link-state info host info switch info … communication layer: communicate between SDN controller and controlled switches OpenFlow SNMP Communication to/from controlled devices Network Layer: Control Plane

2016-02-21 Application-plane Applications specify the resources and behaviors required from the network, with the context of business and policy agreement It may need to orchestrate multiple-controllers to achieve the objectives, (Cloudify, Unify) Programming languages help developing applications.

SDN perspective: control applications network-control apps: “brains” of control: implement control functions using lower-level services, API provided by SND controller unbundled: can be provided by 3rd party: distinct from routing vendor, or SDN controller network-control applications … routing access control load balance control plane northbound API SDN Controller (network operating system) southbound API data plane SDN-controlled switches Network Layer: Control Plane

Roadmap Reviewing traditional networking Examples for motivating SDN 2016-02-21 Roadmap Reviewing traditional networking Examples for motivating SDN Enabling networking as developing softwares SDN architecture Use cases Challenges and research problems Little touch on Openflow

Use cases Traffic engineering Mobility and wireless Security 2016-02-21 Use cases Traffic engineering Avoid congestion Adaptive to different policies, QoS Mobility and wireless Seamless mobility SDN based Core network Security Packets going through a set checking boxes Data center networking Enhancing link utilization Saving energy

Example: mitigating attacks 2016-02-21 Example: mitigating attacks Checking the validity of packets by middle boxes Internet How to route the packets through a series of middle boxes?

Example: service chaining DPI FW NAT Internet Proxy IDS Cache Operator network DPI NAT FW Internet SFF SFF Proxy Cache IDS Operator network

Roadmap Reviewing traditional networking Examples for motivating SDN 2016-02-21 Roadmap Reviewing traditional networking Examples for motivating SDN Enabling networking as developing softwares SDN architecture Use cases Challenges and research problems Little touch on Openflow

Challenges and research problems 2016-02-21 Challenges and research problems Switch design Find common abstraction Flow table capacity Throughput Controller platform Distributed vs centralized Flexibility Dependability and security Attack to data plane Attack to control plane Trust, privacy issues

Roadmap Reviewing traditional networking Examples for motivating SDN 2016-02-21 Roadmap Reviewing traditional networking Examples for motivating SDN Enabling networking as developing softwares SDN architecture Use cases Challenges and research problems Little touch on Openflow

Openflow An southbound standard: 2016-02-21 Openflow An southbound standard: Provide specification to implement Openflow-enabled forwarding devices Communication channel between data and control plane TCP used to exchange messages New versions are keeping released

OpenFlow example Example: datagrams from hosts h5 and h6 should be sent to h3 or h4, via s1 and from there to s2 IP Src = 10.3.*.* IP Dst = 10.2.*.* forward(3) match action Host h6 10.3.0.6 controller 1 s3 2 4 3 Host h5 10.3.0.5 s1 1 s2 1 2 Host h4 10.2.0.4 4 2 4 ingress port = 2 IP Dst = 10.2.0.3 IP Dst = 10.2.0.4 forward(3) match action forward(4) ingress port = 1 IP Src = 10.3.*.* IP Dst = 10.2.*.* forward(4) match action Host h1 10.1.0.1 3 3 Host h2 10.1.0.2 Host h3 10.2.0.3

OpenFlow: controller-to-switch messages Key controller-to-switch messages features: controller queries switch features, switch replies configure: controller queries/sets switch configuration parameters modify-state: add, delete, modify flow entries in the OpenFlow tables packet-out: controller can send this packet out of specific switch port OpenFlow Controller Network Layer: Control Plane

OpenFlow: switch-to-controller messages Key switch-to-controller messages packet-in: transfer packet (and its control) to controller. See packet-out message from controller flow-removed: flow table entry deleted at switch port status: inform controller of a change on a port. OpenFlow Controller Network Layer: Control Plane

In-band VS out-band Control How to setup the communication channels between the SWs and the controller? Out-band control: building a separate network connecting management ports of SDN switches with the controller. This network is out of the control by the SDN switches. It has to implement traditional L2/L3 routing protocols. In-band control: the control network has overlap with the data network, in other words, the control traffic may share same network with the data traffic controller controller Control network Data network Data network out-band control in-band control

Setup the communication channels between the SWs and the controller Out-band control, the SWs just initiate the TCP connection through the dedicated port connecting to the control network. The address of the controller is preconfigured in a file or can be retrieved through e.g. DHCP [2] In-band control If the data network is a complete SDN network, then some rules have to be preinstalled into the switch for bootstrapping. For instance, allowing ARP traffic for the MAC of the controller or gateway, allowing for DHCP packets and TCP traffic from/to the controller. These rules have highest priority then the rules from the controller If the data network is a hybrid SDN network, then initially the connection can be setup like the out-band scenario. Later, the controller may setup rules for the control traffic in order to make the connection more reliable. Some examples of out-band control: google B4; in-band control: OVS

Topology discovery How does the controller discover the network topology? In the literature, LLDP was proposed to discover the links among switches, however that cannot help with host discovery For the host discovery, SDN relies on that the hosts send packets, then the switches forward the first packet to the controller, therefore, the controller knows which switch connects which host via which port. To get the information of which host connects to which SW, we may let the hosts to send some packets (e.g. LLDP, ICMP) to the switch, then the switch can report this to the controller.

Dijkstra’s link-state SDN: control/data plane interaction example S1, experiencing link failure using OpenFlow port status message to notify controller 1 Dijkstra’s link-state Routing 4 … 5 network graph RESTful API intent SDN controller receives OpenFlow message, updates link status info 2 3 … statistics flow tables … Dijkstra’s routing algorithm application has previously registered to be called when ever link status changes. It is called. 3 Link-state info host info switch info 2 … OpenFlow SNMP Dijkstra’s routing algorithm access network graph info, link state info in controller, computes new routes 4 6 1 s2 s1 s4 s3 Network Layer: Control Plane

Dijkstra’s link-state SDN: control/data plane interaction example Dijkstra’s link-state Routing 4 … 5 network graph RESTful API intent link state routing app interacts with flow-table-computation component in SDN controller, which computes new flow tables needed 5 3 … statistics flow tables … Link-state info host info switch info 2 Controller uses OpenFlow to install new tables in switches that need updating 6 … OpenFlow SNMP 6 1 s2 s1 s4 s3 Network Layer: Control Plane

OpenDaylight (ODL) controller Traffic Engineering … ODL Lithium controller network apps may be contained within, or be external to SDN controller Service Abstraction Layer: interconnects internal, external applications and services REST API Network service apps Basic Network Service Functions topology manager switch manager stats manager Access Control forwarding manager host manager Service Abstraction Layer (SAL) … OpenFlow 1.0 SNMP OVSDB Network Layer: Control Plane

ONOS controller … control apps separate from controller Network control apps control apps separate from controller intent framework: high-level specification of service: what rather than how considerable emphasis on distributed core: service reliability, replication performance scaling northbound abstractions, protocols REST API Intent hosts paths flow rules topology ONOS distributed core devices links statistics device link host flow packet southbound abstractions, protocols OpenFlow Netconf OVSDB Network Layer: Control Plane

Mininet Provide tools to create virtualized network with OVS 2016-02-21 Mininet Provide tools to create virtualized network with OVS CLI for manipulating network dynamically Virtualized hosts Controllers: POX, Ryu, Opendaylight, etc. CONTROLLER Virtual Switch h Openflow traffic App

mininet$ sudo mn. Creating network. Adding controller mininet$ sudo mn *** Creating network *** Adding controller *** Adding hosts: h1 h2  *** Adding switches: s1  *** Adding links: (h1, s1) (h2, s1)  *** Configuring hosts h1 h2  *** Starting controller c0  *** Starting 1 switches s1 ... *** Starting CLI: mininet> pingall *** Ping: testing ping reachability h1 -> h2  h2 -> h1  *** Results: 0% dropped (2/2 received) mininet> dpctl dump-flows *** s1 ------------------------------------------------------------------------ NXST_FLOW reply (xid=0x4):  cookie=0x0, duration=38.192s, table=0, n_packets=1, n_bytes=98, idle_timeout=60, idle_age=38, priority=65535,icmp,in_port=2,vlan_tci=0x0000,dl_src=d6:13:79:41:63:43,dl_dst=7e:6c:76:0d:89:c9,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,icmp_type=0,icmp_code=0 actions=output:1  cookie=0x0, duration=38.190s, table=0, n_packets=1, n_bytes=98, idle_timeout=60, idle_age=38, priority=65535,icmp,in_port=2,vlan_tci=0x0000,dl_src=d6:13:79:41:63:43,dl_dst=7e:6c:76:0d:89:c9,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,icmp_type=8,icmp_code=0 actions=output:1  cookie=0x0, duration=38.189s, table=0, n_packets=1, n_bytes=98, idle_timeout=60, idle_age=38, priority=65535,icmp,in_port=1,vlan_tci=0x0000,dl_src=7e:6c:76:0d:89:c9,dl_dst=d6:13:79:41:63:43,nw_src=10.0.0.1,nw_dst=10.0.0.2,nw_tos=0,icmp_type=0,icmp_code=0 actions=output:2  cookie=0x0, duration=38.192s, table=0, n_packets=1, n_bytes=98, idle_timeout=60, idle_age=38, priority=65535,icmp,in_port=1,vlan_tci=0x0000,dl_src=7e:6c:76:0d:89:c9,dl_dst=d6:13:79:41:63:43,nw_src=10.0.0.1,nw_dst=10.0.0.2,nw_tos=0,icmp_type=8,icmp_code=0 actions=output:2  cookie=0x0, duration=33.190s, table=0, n_packets=1, n_bytes=42, idle_timeout=60, idle_age=33, priority=65535,arp,in_port=1,vlan_tci=0x0000,dl_src=7e:6c:76:0d:89:c9,dl_dst=d6:13:79:41:63:43,arp_spa=10.0.0.1,arp_tpa=10.0.0.2,arp_op=2 actions=output:2  cookie=0x0, duration=38.193s, table=0, n_packets=1, n_bytes=42, idle_timeout=60, idle_age=38, priority=65535,arp,in_port=2,vlan_tci=0x0000,dl_src=d6:13:79:41:63:43,dl_dst=7e:6c:76:0d:89:c9,arp_spa=10.0.0.2,arp_tpa=10.0.0.1,arp_op=2 actions=output:1  cookie=0x0, duration=33.191s, table=0, n_packets=1, n_bytes=42, idle_timeout=60, idle_age=33, priority=65535,arp,in_port=2,vlan_tci=0x0000,dl_src=d6:13:79:41:63:43,dl_dst=7e:6c:76:0d:89:c9,arp_spa=10.0.0.2,arp_tpa=10.0.0.1,arp_op=1 actions=output:1 2016-02-21

2016-02-21 References  "The road to SDN" http://queue.acm.org/detail.cfm?ref=rss&id=2560327  Kreutz, D., Ramos, F. M., Verissimo, P. E., Rothenberg, C. E., Azodolmolky, S., & Uhlig, S. (2015). Software-defined networking: A comprehensive survey.proceedings of the IEEE, 103(1), 14-76.  “SDN Architecture 1.0 - Open Networking Foundation”, https://www.opennetworking.org/images/stories/downloads/sdn-resources/technical-reports/TR_SDN_ARCH_1.0_06062014.pdf Openflow specification v1.0, https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.0.0.pdf Mininet, mininet.org POX controller, http://www.noxrepo.org/

2016-02-21