introduction to the helium release of opendaylight

20
Introduction to OpenDaylight and its Helium release Srini Seetharaman [email protected] Oct 2014

Upload: sdn-hub

Post on 02-Dec-2014

1.766 views

Category:

Technology


3 download

DESCRIPTION

"Helium" is the second release of OpenDaylight made on Oct 2, 2014. This release has more expanded support for Yang, modeling and autogeneration of REST API, improved performance of MD-SAL datastore using Tree-based Akka storage, better integration with OpenStack Neutron API, support for Group-based Policy and support for Service Function Chaining.

TRANSCRIPT

Page 1: Introduction to the Helium release of OpenDaylight

Introduction to OpenDaylight and its Helium release

Srini [email protected]

Oct 2014

Page 2: Introduction to the Helium release of OpenDaylight

<#>

Problem in Today’s Ossified Network

Million of linesof source code

6000+ RFCs Barrier to entry

Billions of gates Bloated Power HungrySpecialized Packet Forwarding Hardware

OperatingSystem

Feature Feature

Routing, management, mobility management, access control, VPNs, …

Many complex functions baked into the infrastructureOSPF, BGP, multicast, differentiated services,Traffic Engineering, NAT, firewalls, MPLS, redundant layers, …

Page 3: Introduction to the Helium release of OpenDaylight

3

Solution: “Software-defined Network”

Simple Packet Forwarding Hardware

Simple Packet Forwarding Hardware

Simple Packet Forwarding Hardware

Simple Packet Forwarding Hardware Simple Packet

Forwarding Hardware

Network Operating System

OpenFlow or other API

North-boundinterface API

Unchanged mgmt APILB

serviceFW

serviceIP routing

serviceLegacy Router

This is the purist view with clear separation of data and control

Page 4: Introduction to the Helium release of OpenDaylight

Expanded View of SDN in OpenDaylight

Hybrid approaches supported

1. FIB programmable through OpenFlow, irrespective of whether there is an onboard control plane

2. Programmable exclusively through embedded control plane: e.g., Yang modeled NetConf, OpFlex

3. Programming both embedded control plane and FIB: e.g., Open vSwitch

Extnl. Control plane

Mgmt plane Orchestration

Hybrid control plane where the

hardware contains a more open platform for adding logic

Intl. Control plane

Data plane

Page 5: Introduction to the Helium release of OpenDaylight

5

SDN Killer App #1: Network Virtualization

Dynamic, Programmable, AutomatedComputing Infrastructure

SDN-based Virtualized Network Platform

Page 6: Introduction to the Helium release of OpenDaylight

SDN Killer App #2: Service Function Chaining

6

Internet Internet

NFV

Page 7: Introduction to the Helium release of OpenDaylight

7

Business Potential of SDN

Business potential How?Reduced time to revenue Speed up of service provisioning

New revenue Through new business models centered around on-demand usage

Improved policy compliance Ensure that cloud workload is compliant with enterprise policies (e.g., access control)

OpEx saving Automated operations and easier management of resources

Reduced OpEx during upgrades Introduce new functions and service by replacing just software stack

Page 8: Introduction to the Helium release of OpenDaylight

8

Page 9: Introduction to the Helium release of OpenDaylight

OpenDaylight Consortium

► Heavy industry involvement and backing

► Focused on having an open framework for building upon SDN/NFV innovations Not limited to OpenFlow innovations, but in fact decoupled

from it allowing the two to evolve independently

9

Page 10: Introduction to the Helium release of OpenDaylight

10

Hydrogen Release

Base Network Service Functions

Management GUI/CLI

Controller Platform

Southbound Interfaces& Protocol Plugins

OpenDaylight APIs (REST)

DOVE Mgr

Data Plane Elements(Virtual Switches,Physical Device

Interfaces)

Service Abstraction Layer (SAL)(plug-in mgr., capability abstractions, flow programming, inventory, …)

OpenFlow

1.0 1.3LISP

Topology Mgr

Stats Mgr

Switch Mgr

Host Tracker

Shortest Path

Forwarding

VTN Coordinator

Affinity Service

Network Applications Orchestration & ServicesOpenStack

Neutron

VTN Manager

VTN: Virtual Tenant NetworkDOVE: Distributed Overlay Virtual EthernetDDoS: Distributed Denial Of ServiceLISP: Locator/Identifier Separation ProtocolOVSDB: Open vSwitch DataBase ProtocolBGP: Border Gateway ProtocolPCEP: Path Computation Element Communication ProtocolSNMP: Simple Network Management Protocol

LISP Service

NETCONF BGP-LSSNMP

DDoS Protection

OVSDB PCEP

OpenStack Service

NetworkConfig

Main difference from other OpenFlow-centric controller platforms

OpenFlow Enabled Devices

Devices with Proprietary control plane

OVSDB enabled devices

Page 11: Introduction to the Helium release of OpenDaylight

11

Helium Release

Base Network Service Functions

Dlux UI

Controller Platform

Southbound Interfaces

& Protocol Plugins

OpenDaylight APIs (REST)

Data Plane Elements(Virtual Switches,Physical Device

Interfaces)

Service Abstraction Layer (SAL)(plug-in mgr., capability abstractions, flow programming, inventory, …)

OpenFlow

1.0 1.3LISP

Topology Mgr

Stats Mgr

Switch Mgr

Host Tracker Flow Rules

Mgr

VTN Coordinator

AAA

Network Applications Orchestration &

Services

OpenStackNeutron

OpenFlow Enabled Devices

VTN: Virtual Tenant NetworkDDoS: Distributed Denial Of ServiceLISP: Locator/Identifier Separation ProtocolOVSDB: Open vSwitch DataBase ProtocolBGP: Border Gateway ProtocolPCEP: Path Computation Element Communication ProtocolPCMM: Packet Cable MultiMediaSNMP: Simple Network Management Protocol

LISP Service

NETCONF BGP-LS

Devices with Proprietary control plane

SNMP

DDoS Protection

OVSDB enabled devices

OVSDB PCEP

Main difference from other OpenFlow-centric controller platforms

SDNi Wrapper

GBP Service

SFC

TTPSNBIPCMM/

COPSOPEN

CONTRAIL

GBPrenderer

OVSDB Neutron

VTN Mgr

OpenStack Service

OpenContrail

L2switch

SNBIservic

e

DOCSIS

SDNI aggreg

AAA – AuthN filter

Page 12: Introduction to the Helium release of OpenDaylight

12

Java, Interface, Maven, OSGi, Karaf

► Java chosen as an enterprise-grade,cross-platform compatible language

► Java Interfaces are used for event listening, specifications and forming patterns

► Maven – build system for Java► OSGi:

Allows dynamically loading bundles Allows registering dependencies and

services exported For exchanging information across bundles

► Karaf: Light-weight Runtime for loading modules/bundles OSGi based. Primary distribution mechanism for Helium

OSGi Framework (Equinox)

FeatureA SAL

FeatureB …

Karaf

Page 13: Introduction to the Helium release of OpenDaylight

Active projects based on phone calls

► OVSDB – Southbound plugin and OpenStack Neutron integration► SNBI – Secure Network Bootstrapping Infrastructure► GBP – Group Based Policy► SFC – Service Function Chaining (NSH)► Dlux – OpenDaylight UI

OpenFlowPlugin

MD-SAL

LISP Flow Mapping

OVSDB

Documentation

SNBI

Integration, SFCSecurity analysis

AAA, Dlux

GBP

OpFlex

PacketCable

Full project list here: https://wiki.opendaylight.org/view/Main_Page#Projects

Page 14: Introduction to the Helium release of OpenDaylight

Helium: Full List of Projects

opflex OpFlex protocol

ovsdb OVSDB protocol and OpenStack integration

packetcable PacketCable PCMM/COPS

plugin2oc Southbound plugin to the OpenContrail platform

reservation Dynamic Resource Reservation project

sdninterfaceapp SDNi Cross-controller interface

sfc Service Function Chaining

snbi Secure Network Bootstrap Infrastructure

snmp4sdn SNMP4SDN Plugin

tcpmd5 TCP-MD5 Support library

toolkit Quickstart Toolkit

ttp TTP Project

vtn VTN (Virtual Tenant Network)

yangtools YANG Tools

Project keyword Description

aaa AAA Project

bgpcep BGP/PCEP protocol library

controller OpenDaylight Controller

defense4all Radware Defense4All

discovery Discovery Service

dlux OpenDaylight UI

docs Documentation Project

groupbasedpolicy Group Based Policy Plugin

integration Integration Framework

l2switch Separate Layer 2 switching

lispflowmapping LISP Mapping Service

openflowjava OpenFlow Protocol Library

openflowplugin OpenFlow Plugin

Page 15: Introduction to the Helium release of OpenDaylight

Helium: Feature Dependency Chart

Page 16: Introduction to the Helium release of OpenDaylight

Helium: Running Karaf distribution$ wget http://

nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.0-Helium/distribution-karaf-0.2.0-Helium.zip

$ unzip distribution-karaf-0.2.0-Helium.zip$ cd distribution-karaf-0.2.0-Helium$ ./bin/karafopendaylight-user@root> feature:list (get all apps available)opendaylight-user@root> feature:install odl-dlux-coreopendaylight-user@root> feature:install odl-openflowplugin-allopendaylight-user@root> feature:install odl-l2switch-allopendaylight-user@root> bundle:list | grep Active

Now your controller is ready to connect to switches and handle incoming flows.

Page 17: Introduction to the Helium release of OpenDaylight

Helium: REST APIs

► Using REST APIs are much easier with Helium

► Restconf allows for checking config and operational state feature:install odl-restconf http://localhost:8181/restconf/....

► List of exposed Northbound APIs are autogenerated using swagger. feature:install odl-mdsal-apidocs http://localhost:8181/apidoc/explorer

Page 18: Introduction to the Helium release of OpenDaylight

OpenDaylight Hands-on Exploration► Tutorial at: http://sdnhub.org/tutorials/opendaylight► Dependency chart:

18Legend: Blue = Feature, Green = Bundle

Page 19: Introduction to the Helium release of OpenDaylight

Sample project: OVSDB1) OVSDB southbound-plugin2) OpenStack integration for net-virt

Page 20: Introduction to the Helium release of OpenDaylight

20

Orchestration

North-bound API

Application

Controller

South-bound API

Dataplane elements

OpenStack Network Mgmt

Typical workflow1. Create a network2. Associate a subnet

with the network3. Boot a VM and

attach it to the network

4. Delete the VM5. Delete any ports6. Delete the network

Network Virtualization App

SDN Controller

pSwitch

pSwitch

vSwitch

vSwitch

OVSDBOpenFlow

Neutron API

ODL Mech driver

ML2 Plugin