66
#ONOSProject ONOS Overview Architecture, Northbound, Southbound APIs Performance, Applications, Deployments & Community Andrea Campanella ON.Lab November 30, 2016

Onos overview meetup sdn paris - redux

Embed Size (px)

Citation preview

Page 1: Onos overview  meetup sdn paris - redux

#ONOSProject

ONOS OverviewArchitecture, Northbound, Southbound APIs

Performance, Applications, Deployments & CommunityAndrea Campanella

ON.LabNovember 30, 2016

Page 2: Onos overview  meetup sdn paris - redux

#ONOSProject

What is ONOS?

Open Network Operating System (ONOS) is an open source SDN network operating system. Our mission is to enable Service Providers to build real SDN/NFV Solutions.

2

Page 3: Onos overview  meetup sdn paris - redux

#ONOSProject

Quarterly ReleasesAvocet (1.0.0) released 2014-12

Initial release of clean and modular code-base, protocol independence

Blackbird (1.1.0) released 2015-03Improved performance, scale-out, increased robustness

Cardinal (1.2.0) released 2015-06New use-cases, additional core features, additional SB protocols

Drake (1.3.0) released 2015-09Platform enhancements, security, UI enhancements

Emu (1.4.0) - released 2015-12CORD features, prototype of dynamic cluster scaling

Falcon (1.5.0) - released 2016-03Dynamic cluster scaling, model extensibility, intents on flow

objectivesGoldeneye (1.6.0) - released 2016-06

3

Page 4: Onos overview  meetup sdn paris - redux

#ONOSProject

Service Provider Networks● WAN core backbone

o Multi-Protocol Label Switching (MPLS) with Traffic Engineering (TE)o 200-500 routers, 5-10K ports

● Metro Networkso Metro cores for access networkso 10-50K routers, 2-3M ports

● Cellular Access Networkso LTE for a metro areao 20-100K devices, 100K-100M ports

● Wired access / aggregationo Access network for homes; DSL/Cableo 10-50K devices, 100K-1M ports

4

Page 5: Onos overview  meetup sdn paris - redux

#ONOSProject

Key Performance Requirements

ONOS

AppsApps

Global Network View / StateGlobal Network View / State

high throughput | low latency | consistency | high availability

High Throughput: ~500K-1M paths setups / second ~3-6M network state ops / second

High Volume:~500GB-1TB of network state data

Difficult challenge!

5

Page 6: Onos overview  meetup sdn paris - redux

#ONOSProject

Architectural TenetsHigh-availability, scalability and performance

required to sustain demands of service provider & enterprise networks

Strong abstractions and simplicityrequired for development of apps and solutions

Protocol and device behaviour independenceavoid contouring and deformation due to protocol

specificsSeparation of concerns and modularity

allow tailoring and customization without speciating the code-base

6

Page 7: Onos overview  meetup sdn paris - redux

#ONOSProject

ONOS Distributed Architecture

NB Core API

Distributed Core(state management, notifications, high-availability & scale-out)

SB Core API

Protocols

Providers

Protocols

Providers

Protocols

Providers

Protocols

Providers

AppsApps

Distributed Core(state management, notifications, high-availability & scale-out)

SB Core API

NB Core API

Providers Providers Providers Providers

Protocols Protocols Protocols Protocols

7

Page 8: Onos overview  meetup sdn paris - redux

OSGI / Apache Karaf

ONOS distributed applications platform

ONOS networking core

ONOS applications

GUI REST APICom

mand Line

Page 9: Onos overview  meetup sdn paris - redux

OSGI / Apache Karaf

ONOS distributed applications platform

ONOS networking core

ONOS applications

GUI REST APICom

mand Line

Page 10: Onos overview  meetup sdn paris - redux

OSGI / Apache Karaf

ONOS distributed applications platform

ONOS networking core

ONOS extensions

GUI REST APICom

mand Line

applications

driversprotocols

Page 11: Onos overview  meetup sdn paris - redux

OSGI / Apache Karaf

ONOS distributed applications platform

ONOS networking core

ONOS applications

GUI REST APICom

mand Line

Page 12: Onos overview  meetup sdn paris - redux

#ONOSProject

Distributed Core

12

Page 13: Onos overview  meetup sdn paris - redux

#ONOSProject

Distributed Core

13

Page 14: Onos overview  meetup sdn paris - redux

#ONOSProject

ONOS Distributed ArchitectureDistributed

Set up as a cluster of instancesSymmetric

Each instance runs identical software and configurationFault-tolerant

Cluster remains operational in the face of node failuresLocation Transparent

A client can interact with any instance. The cluster presents the abstraction of a single logical instance

Dynamic The cluster can be scaled up/down to meet usage

demands14

Page 15: Onos overview  meetup sdn paris - redux

#ONOSProject

ONOS 1 ONOS 2 ONOS 3

ONOS Cluster

15

Page 16: Onos overview  meetup sdn paris - redux

#ONOSProject

ONOS 1 ONOS 2 ONOS 3

Master Standby

ONOS Cluster

16

Page 17: Onos overview  meetup sdn paris - redux

#ONOSProject

ONOS 1 ONOS 2 ONOS 3

ONOS Cluster

17

Page 18: Onos overview  meetup sdn paris - redux

#ONOSProject

ONOS 1 ONOS 2 ONOS 3

ONOS Cluster

18

Page 19: Onos overview  meetup sdn paris - redux

#ONOSProject

ONOS Distributed Architecture

NB Core API

Distributed Core(state management, notifications, high-availability & scale-out)

SB Core API

Protocols

Providers

Protocols

Providers

Protocols

Providers

Protocols

Providers

AppsApps

19

Page 20: Onos overview  meetup sdn paris - redux

#ONOSProject

ONOS Distributed PrimitivesEventuallyConsistentMap<K, V>

Map abstraction with eventual consistency guaranteeConsistentMap<K, V>

Map abstraction with strong linearizable consistencyLeadershipService

Distributed Locking primitiveDistributedQueue<E>

Distributed FIFO queue with long poll supportDistributedSet<E>

Distributed collection of unique elementsAtomicCounter

Distributed version of Java AtomicLongAtomicValue<V>

Distributed version of Java AtomicReference

20

Page 21: Onos overview  meetup sdn paris - redux

#ONOSProject

Northbound

21

Page 22: Onos overview  meetup sdn paris - redux

#ONOSProject

Key Northbound AbstractionsNetwork Graph

Directed, cyclic graph comprising of infrastructure devices, infrastructure links and end-station hosts

Flow ObjectiveDevice-centric abstraction for programming data-plane

flows in table pipeline-independent mannerIntent

Network-centric abstraction for programming data-plane in topology-independent manner

22

Page 23: Onos overview  meetup sdn paris - redux

#ONOSProject

Building Network ApplicationsEach application has complex path computation and rule

installationInconsistent behavior in the face of failures

Failures may be handled in different ways (or not at all)Bugs need to fixed in multiple places (applications)Expensive to upgrade/refactor behavior across all applications;

e.g.Improve performanceSupport new types of devicesImplement better algorithms

Difficult or impossible to resolve conflicts with other applications23

Page 24: Onos overview  meetup sdn paris - redux

#ONOSProject

Intent Framework• Provides high-level, network-centric interface that

focuses on what should be done rather than how it is specifically programmed

• Abstracts unnecessary network complexity from applications

• Maintains requested semantics as network changes

• High availability, scalability and high performance

24

Page 25: Onos overview  meetup sdn paris - redux

#ONOSProject

Intent ExampleHost to Host Intent

25

Page 26: Onos overview  meetup sdn paris - redux

#ONOSProject

COMPILATION

Path IntentPath Intent

Host to Host Intent

26

Intent Example

Page 27: Onos overview  meetup sdn paris - redux

#ONOSProject

COMPILATION

INSTALLATION

Flow Rule Batch Flow Rule Batch

Flow Rule BatchFlow Rule Batch

Path IntentPath Intent

Host to Host Intent

27

Intent Example

Page 28: Onos overview  meetup sdn paris - redux

#ONOSProject

Intent Framework SummaryIntents are a network-centric programming

abstraction that reduce application complexity.

Intents provide device-agnostic behavior with persistency and high performance across network failures.

Intent framework has moved from prototype to production deployments.

28

Page 29: Onos overview  meetup sdn paris - redux

#ONOSProject

Network Programming

OF 1.0 OF 1.3 Netconf TL1

Flow Rule

OFDPA Pipeline

Single Table Pipeline

SpringOpen Pipeline

Flow Objective

DC Clos Fabric

Packet/Optical WAN

Enterprise Campus

Intent

29

Abstract to

concrete

Page 30: Onos overview  meetup sdn paris - redux

#ONOSProject

Multiple Layers of Abstraction

Device Link HostDevice Link HostDevice Link HostDevice Link Host

Topology

Virtual Network SliceVirtual Network SliceVirtual Network Network Slice

30

Page 31: Onos overview  meetup sdn paris - redux

#ONOSProject

Network Configuration (netcfg)Provides mechanism for any service to register and receive

configurationDynamic Configuration (in progress)

Enables YANG-based service models to be introduced at runtime

Allow applications to implement dynamic services

Configuration

31

Page 32: Onos overview  meetup sdn paris - redux

Extension ApplicationIntegrations

OpenstackXoSVTN

New protocolsRPC: RabbitMQEvent streaming: KafkaMetrics: Ganglia, Graphite, InfluxDB

Page 33: Onos overview  meetup sdn paris - redux

#ONOSProject

Southbound

33

Page 34: Onos overview  meetup sdn paris - redux

#ONOSProject

Southbound protocols in 1.7.1:OpenFlow until 1.3 → 1.5 is in the works.OVSDBNETCONF + YANG → Yang tools and Yang management

systemSNMPP4 → thrift api for bmv2 softswitch from barefoot networks.BGP, ISIS, OSPF → interoperability with legacy network. PCEP → Path computation element protocol (IETF)REST and RESTCONFLISP

Southbound overview

34

Page 35: Onos overview  meetup sdn paris - redux

#ONOSProject

ONOS drivers•Device specific driver

• collection of behaviors• on-demand activation

•Abstraction via behaviors• define specific capabilities

offered by the device• encapsulate specific logic and

code• ports,controller,flowrule,power…•Encapsulate single

interaction• protocol• information

Driver

Protocol

App

ONOS Driver

Protocol

<driver name="default "manufacturer="ON.Lab"

hwVersion="0.0.1" swVersion="0.0.1">

<behaviour api=InterfacePath

impl=ImpementationPath />

</driver>

35

Page 36: Onos overview  meetup sdn paris - redux

#ONOSProject

Southbound Architecture

•Southbound abstractions, modularity• customization without changing the core

•Protocol and device model independency• avoid specifics and dependencies in the core• hidden complexity to upper layers• testability, extensibility and performance

ONOS Distributed Core

SB Core API

NB Core API

Apps

Protocols and Drivers

36

Page 37: Onos overview  meetup sdn paris - redux

#ONOSProject

Applications

37

Page 38: Onos overview  meetup sdn paris - redux

#ONOSProject

Developing ONOS applicationsONOS applications:

Interact with the northbound Java or REST interface

Device and protocol agnosticAugment ONOS though modularityProvide GUI,REST,CLI and distributed stores.Shape the network.Easy to start with auto generated basic code via

maven archetypes.38

Page 39: Onos overview  meetup sdn paris - redux

#ONOSProject39

●ONOS Applications○ OSGi bundles, Karaf features, ONOS apps & OAR files○ application lifecycle - install, activate, deactivate, uninstall○ ONOS CLI & GUI

●Developing ONOS apps○ use mvn archetype:generate and onos-create-app○ archetype overlays for CLI and UI - generated & pre-

canned○ iterative and demonstrating use of onos-app tool or GUI

Outline

Page 40: Onos overview  meetup sdn paris - redux

#ONOSProject

Example ApplicationsSDN-IP Peering

Connect internal BGP software daemon to external BGP routersInstall learned routes to forward IP traffic to appropriate egress

pointMulti-level (IP / Optical) Provisioning

Provision optical paths/tunnels with constraintsContent Acquisition / Video Streaming (DirecTV)

Establish multicast forwarding from a sender to set of receiversVirtual Network Gateway (vBNG)

Provide connectivity between a private host and the InternetBandwidth Calendaring

Establish tunnels with bandwidth guarantees between two points at a given time

40

Page 41: Onos overview  meetup sdn paris - redux

#ONOSProject

Deployments

41

Page 42: Onos overview  meetup sdn paris - redux

#ONOSProject42

Motivation and GoalsR&E Network Operators and Users

Create a global SDN network

Provide L0, L2 and L3 connectivity without “legacy” equipment in the network core

Enable network and services innovation

ONOS community

Demonstrate ONOS in real networks

Test High performance, HA and scalability in real networks

Learn and improve

Requirements/Learning/Bug Fixes

ONOS and Use Cases

Agilecollaboration

modelR&E Network

Operators ONOS Community

Page 43: Onos overview  meetup sdn paris - redux

#ONOSProject43

OpenFlow

OpenFlow

OF

Q3 2015ONOS Deployment in Australia

OpenFlow

Q3 2015Korea announces the firstONOS deployment

Q4 2015ONOS deployed in Korea

Q4 2015First ONOS

production deploymentin South America

Q1-Q2 2015First ONOS DeploymentsSouth America, US, EU

Q4 2015 – New connectionsSidney – Seattle - MiamiSao Paolo – Amsterdam

Q1 2016NCTU / Taiwandeploys ONOS

Q1 2016 – New connectionsMiami - KoreaMiami - TaiwanKorea - Taiwan

Global SDN Deployment Powered by ONOS

Page 44: Onos overview  meetup sdn paris - redux

#ONOSProject44

Castor• Provides L2/L3 connectivity for SDXs• Developed and deployed in AARNET

SDN-IP• Transforms a SDN into a transit IP network• SDN AS uses BGP to communicate with neighbors• L3 connectivity without legacy routers• Deployed by AmLight, Internet2 (upgrading), KREONET, NCTU

SDX L2/L3• Provides L2/L3 connectivity for SDXs• Developed and deployed by GEANT

VPLS• L2 broadcast overlay networks on demand• Ready to be deployed at AmLight

Enabling network innovation with new apps

Page 45: Onos overview  meetup sdn paris - redux

#ONOSProject

Use Case: CORD

45

Page 46: Onos overview  meetup sdn paris - redux

46

What is CORD? Central Office Re-architected as a Datacenter

SDN + NFV + Cloud

Open Source Software

Commodity Hardware(Servers, White-Box Switches, I/O Blades)

Large number of COs

Evolved over 40-50 years

300+ Types of equipmentHuge source of CAPEX/OPEX

Page 47: Onos overview  meetup sdn paris - redux

47

What is Trellis?

Datacenter Leaf-Spine Fabric Underlay

Virtual Network Overlay

Unified SDN ControlOf Underlay & Overlay

ONOS Controller Cluster &

Apps

Trellis is the enabling Network Infrastructure for CORD

Trellis Provides Common control over underlay & overlay networks, including•Service Composition for Tenant Networks•Distributed Virtual Routing •Optimized Delivery of Multicast Traffic Streams

Page 48: Onos overview  meetup sdn paris - redux

CORD Architecture

R,E,M-Access

Metro

Router

ONOS Controller Cluster

vRouterControl

Other App

OverlayControl

Underlay Control

Other App

XOS (Orchestrator)

vSG

vSG

vSG

VNF

VNF

VNFVNF

VNF VNFVNF

VNF VNF VNFVNF

VNF

OVS OVS OVS OVS OVS

White Box White Box

White Box

White Box

White Box White Box White Box White Box

White Box White Box White Box

White Box

White Box

White Box

Open SourceSDN-basedBare-metal

White Box

White Box

48

Residential Mobile Enterprise

Underlay

Overlay

Control

Page 49: Onos overview  meetup sdn paris - redux

▪Underlay Fabric• L2/L3 spine-leaf fabric – bare-metal hardware + open source software• SDN control plane – no distributed protocols• Modern ASIC data plane – 1.28 Tbps switching bandwitdth for each switch

▪Virtual Network Overlay• Designed for NFV – chained VNFs using with best principles of cloud • Overlay Control – XOS and VTN implement service graph• OVS + VxLAN Data Plane

▪Unified SDN Control• Common Control – opportunity for optimized service delivery

49

ONOS for CORD

Page 50: Onos overview  meetup sdn paris - redux

E-CORD in Metro

CORD

CORD

CORD

CORD

Central OfficeE-Line

E-LAN

Metro CORDPacket optical

ROADM ROADM

ROADM

ROADM

Firewall

WANAccelerator

WANAccelerator

IDS

50

Page 51: Onos overview  meetup sdn paris - redux

PONOLT MACs

Leaf-Spine Fabric

DSLG.Fast

transponder

muxponder

WSS To metro

1. Programmable backplane between ROADM and transponders

2. Optical bypass within CO

To spine switches

To metroTo access

Cross connect

• 20x20 ROADM, 1U• 8x2 transponder, 1U• 320x320 fiber switch,

7U

ONOSOpenFlow,

SNMP,NETCONF, REST

Power Manageme

ntAlarm

HandlingBandwidth

On DemandOptical

Restoration

WSSX

Multiple partner

s

Open-ROADM project

51

Page 52: Onos overview  meetup sdn paris - redux

Mobile-CORD – Internal View

Mobile Subscribers

Operator Specification (TOSCA, Yang)

Service GraphResource PolicyScaling PolicyCustomer Policy

Everything-as-a-Service (XaaS) / Micro-Services Architecture

RRH

vMME

vBBU vSGW vPGW

OpenStack Monitoring vCDNONOS

Controller

Controller Controller Controller

ControllerControllerControllerController

Controller

52

Page 53: Onos overview  meetup sdn paris - redux

#ONOSProject 53

and

Page 54: Onos overview  meetup sdn paris - redux

#ONOSProject

Further readingONOS website:http://onosproject.orgTutorials, documentation and general reading at:https://wiki.onosproject.org/ONOS is on Github at: https://github.com/opennetworkinglab/onosSetup Tutorialhttps://wiki.onosproject.org/display/ONOS/Installing+and+Running+ONOSScreencasts:https://wiki.onosproject.org/display/ONOS/Screencasts

54

Page 55: Onos overview  meetup sdn paris - redux

#ONOSProject 55

Application tutorial

•Creating and deploying and ONOS App•Creating and deploying and ONOS App (video)•Template application tutorial

Page 56: Onos overview  meetup sdn paris - redux

#ONOSProject

Contact us!

56

Community: William [email protected]

Technical: Andrea Campanella [email protected]

Page 57: Onos overview  meetup sdn paris - redux

#ONOSProject Join the journey @ onosproject.org

Software Defined Transformation of Service Provider Networks

57

Page 58: Onos overview  meetup sdn paris - redux

#ONOSProject

Features and modules to communicate with devices

Expose the standard set of APIs and enabled operations. I.e:

OpenFlow: FlowMods, GroupMods, etcRest: implements CRUD operations (GET,

POST, DELETE, etc...)Netconf: Open/close session,

setConfiguration, getConfigurationUsually leverage 3rd party communication

libraries → openflowj, snmp4j, thrift

ONOS Protocols

58

Provider Component

Provider Component

Protocols

Provider

Page 59: Onos overview  meetup sdn paris - redux

#ONOSProject

ONOS ProvidersProviders are used by the core to (re)act on the network:

- Up/down of device, links - DeviceProvider, LinkProvider

- Provisioning of rules, paths, tunnels- FlowRuleProvider, TunnelProvider

- Receive notifications/alarms- AlarmProvider

→ Translate to and from Core abstractions into device specific commands.

Provider Component

Provider Component

Protocols

This is where the magic happens

Page 60: Onos overview  meetup sdn paris - redux

#ONOSProject

Performance

60

Page 61: Onos overview  meetup sdn paris - redux

#ONOSProject

Performance MetricsDevice & link sensing latency

measure how fast can controller react to environment changes, such as switch or port down to rebuild the network graph and notify apps

Flow rule operations throughputmeasure how many flow rule operations can be issued against the

controller and characterize relationship of throughput with cluster size

Intent operations throughputmeasure how many intent operations can be issued against

controller cluster and characterize relationship of throughput with cluster size

Intent operations latencymeasure how fast can the controller react to environment changes

and reprovision intents on the data-plane and characterize scalability

61

Page 62: Onos overview  meetup sdn paris - redux

#ONOSProject

Link Up/Down Latency

● Since we use LLDP & BDDP to discover links, it takes longer to discover a link coming up than going down

● Port down event trigger immediate teardown of the link.

62

Page 63: Onos overview  meetup sdn paris - redux

#ONOSProject

Flow Throughput results

● Single instance can install over 500K flows per second

● ONOS can handle 3M local and 2M non local flow installations

● With 1-3 ONOS instances, the flow setup rate remains constant no matter how many neighbours are involved

● With more than 3 instances injecting load the flow performance drops off due to extra coordination required.

63

Page 64: Onos overview  meetup sdn paris - redux

#ONOSProject

Intent Throughput ResultsProcessing clearly scales as cluster size increases

64

Page 65: Onos overview  meetup sdn paris - redux

#ONOSProject

Intent Latency ResultsLess than 100ms to install or withdraw a batch of intentsLess than 50ms to process and react to network events

Slightly faster because intent objects are already replicated

65

Page 66: Onos overview  meetup sdn paris - redux

#ONOSProject66

OpenFlow

OpenFlow

OF

OpenFlow

How the testbed works?

eBGP

AS #20080 AS

#65111

over L2 dedicated circuits