Introduction To Software Defined Networking (SDN)
Introduction To Software Defined Networking (SDN)
Software Defined .
Networking (SDN)
SDN=Standard Southbound API
SDN = Centralization of control plane
SDN=OpenFlow
Raj Jain
Washington University in Saint Louis
Saint Louis, MO 63130
[email protected]
These slides and audio/video recordings of this class lecture are at:
http://www.cse.wustl.edu/~jain/cse570-18/
Washington University in St. Louis http://www.cse.wustl.edu/~jain/cse570-18/ ©2018 Raj Jain
16-1
Overview
1. What is SDN?
2. SDN Controllers
3. Alternative APIs: XMPP, PCE, ForCES, ALTO
4. RESTful APIs and OSGi Framework
Policies Controller
Network Policies
Manager
Ref: http://www.networkworld.com/news/2013/110813-onug-sdn-275784.html
Ref: Open Data Center Alliance Usage Model: Software Defined Networking Rev 1.0,”
http://www.opendatacenteralliance.org/docs/Software_Defined_Networking_Master_Usage_Model_Rev1.0.pdf URL Invalid
Washington University in St. Louis http://www.cse.wustl.edu/~jain/cse570-18/ ©2018 Raj Jain
16-7
Software Defined Anything (SDx)
Tsunami of software defined things
Software Defined Networking (SDN)
SDN = Separation of
Control and
Data Planes
Separation of
Control Plane Centralization of
Policies
OpenFlow OpenFlow
OpenFlow OpenFlow
Hypervisor Physical
Hypervisor Physical
Switches Switches
Switches Switches
Ref: S. Azodolmolky, "Software Defined Networking with OpenFlow," Packt Publishing, October 2013, 152 pp.,
ISBN:978-1-84969-872-6 (Safari Book)
Washington University in St. Louis http://www.cse.wustl.edu/~jain/cse570-18/ ©2018 Raj Jain
16-16
Floodlight (Cont)
A number of real-world networking applications
Neutron plug-in for OpenStack cloud management system
Static Flow Pusher: Allows users to manually insert flows
Circuit Pusher: Creates permanent entries on all switches along the
path
Firewall: Enforces access control list (ACL) rules on packets
Big Virtual Switch: Automates network provisioning for a large scale data
centers. Includes provisioning, multi-tenant partitioning
Southbound
Protocol USC LACP CAPWEB CoAP HTTP CAPWAP IoT HTTP/CoAP PCMM/COPS
Plugins
OpenFlow OVSDB NETCONF PCEP LISP OPFLEX SNBI SNMP SXP
Ref: T. Nadeau and K. Gray, “SDN,” O’Reilly, 2013, 384 pp, ISBN:978-1-449-34230-2 (Safari Book)
Washington University in St. Louis http://www.cse.wustl.edu/~jain/cse570-18/ ©2018 Raj Jain
16-21
Path Computation Element (PCE)
MPLS and GMPLS require originating routers
to find paths that satisfy multiple constraints including not
using any backup routers and having a given bandwidth etc.
This may require more computer power or network knowledge
than a router may have.
IETF PCE working group has developed a set of protocols that
allow a Path computation client (PCC), i.e., router to get the
path from path computation element (PCE)
PCE may be centralized or may be distributed in many or every
router.
What is the 1 Gbps route
to New York not going
through Boston?
PCE discovery
Ref: http://datatracker.ietf.org/wg/pce/
Ref: http://en.wikipedia.org/wiki/Path_computation_element
Washington University in St. Louis http://www.cse.wustl.edu/~jain/cse570-18/ ©2018 Raj Jain
16-23
Application Layer Traffic Optimization
(ALTO)
IETF working group to optimize P2P traffic Peers Peers
⇒ Better to get files from nearby peers
Provide guidance in peer selection
ALTO Server: Has knowledge of distributed resources
ALTO Client: Requests information from servers about the
appropriate peers
Ratio Criteria: Topological distance, traffic charges, …
ALTO Server could get information from providers or from
nodes about their characteristics, e.g., flat-rate or volume based
charging
A client may get the list of potential peers and send it to the
server, which can return a ordered list
Also need a protocol for ALTO server discovery
Ref: J. Seedorf and E. Berger, “ALTO Problem Statement,” http://datatracker.ietf.org/doc/rfc5693/?include_text=1
Ref: Y. Lee, et al., “ALTO Extensions for collecting Data Center Resource Information,”
http://datatracker.ietf.org/doc/draft-lee-alto-ext-dc-resource/?include_text=1
Washington University in St. Louis http://www.cse.wustl.edu/~jain/cse570-18/ ©2018 Raj Jain
16-24
ALTO Extension
Now being extended to locate resources in data centers
Need to be able to express
resource (memory, storage, CPU, network) availability
ALTO Client
User
Controller
XMPP
pM VM Server
vSwitch
Hypervisor
pSwitch
Ref: https://github.com/ArchipelProject/Archipel/wiki/Architecture-%26-Concepts
Washington University in St. Louis http://www.cse.wustl.edu/~jain/cse570-18/ ©2018 Raj Jain
16-28
OpenDaylight Tools
1. Applications: Provides Virtual Network Segments (VNS) for
each tenant
1. OpenDaylight Network Virtualization (ONV):
2. OpenDaylight Virtual Tenant Network (VTN)
2. Services:
1. Unified Secure Channel Manager
3. Northbound APIs:
1. REST: Representational State Transfer (like HTTP)
2. RESTCONF: RESTful Configuration
3. NETCONF: Network Configuration
4. Dlux: Northbound API using AngularJS,
an extension of HTML by Google for dynamic views
5. AMQP: Advanced Message Queuing Protocol
Washington University in St. Louis http://www.cse.wustl.edu/~jain/cse570-18/ ©2018 Raj Jain
16-29
OpenDaylight Tools (Cont)
4. Southbound APIs:
1. OpenFlow Plug-in + Protocol Library (V1.0, V1.1,…)
2. Locator ID Separation Protocol (LISP) Mapping Service
3. SNMP4SDN
4. BGP Link State Path Control Element Protocol
5. Overlay:
1. Open Distributed Overlay Virtual Ethernet (DOVE):
Like VxLAN but does not use IP Multicast
6. Configuration:
1. OpenDaylight YANG Tools: NETCONF
2. Open vSwitch Database (OVSDB) Integration
Washington University in St. Louis http://www.cse.wustl.edu/~jain/cse570-18/ ©2018 Raj Jain
16-30
Open Network Linux
Linux distribution for “open hardware” bare metal switches
Part of Open Compute Project
Supports multiple switch fabric APIs:
OF-DPA: OpenFlow Data Plane Abstraction (API) for
Broadcom chips
OpenNSL: Open Network Switch Layer for Broadcom
switches
SAI: Switch Abstraction Interface (vendor independent API
to control forwarding elements)
Compatible with many open-source forwarding agents or
routing protocol suites
DRAM
Serial Ethernet 10 Gb … 10 Gb 10 Gb
Console Management Port Port Port Port
Services
Bundles Security
Life Cycle
Ref: http://www.osgi.org/Technology/WhatIsOSGi
Washington University in St. Louis http://www.cse.wustl.edu/~jain/cse570-18/ ©2018 Raj Jain
16-38
OSGi (Cont)
Bundles can be installed, started, stopped, updated or
uninstalled using a lifecycle API
Modules defines how a bundle can import/export code
Security layer handles security
Execution environment defines what methods and classes are
available in a specific platform
A bundle can get a service or it can listen for a service to
appear or disappear.
Each service has properties that allow others to select among
multiple bundles offering the same service
Services are dynamic. A bundle can decide to withdraw its
service. Other bundles should stop using it
⇒ Bundles can be installed and uninstalled on the fly.
Washington University in St. Louis http://www.cse.wustl.edu/~jain/cse570-18/ ©2018 Raj Jain
16-39
Summary
Raj Jain
http://rajjain.com