ONOS SDN Controller
소스코드 분석 및 SDN 응용개발
Mobile Convergence Lab, Computer Engineering,
Kyung Hee University
Sangyun Han
Email : sangyun0628@khu.ac.kr
SDN/NFV 이론, 실습, 최신동향
[ONOS 소개 및 최신동향]
Mobile Convergence Laboratory 2
목차
A Table of Contents
etc…
ON.LAB
Open Networking Lab 소개 및 관련 프로젝트
ONOS
ONOS(Open Network Operating System) 소개, 아키텍처 분석
최신동향 및 Use-case
기업 관련 UseCase, 방향성
Q&A
질의응답
Mobile Convergence Laboratory 3
Non-profit
Tools/Platforms for SDN community
Mobile Convergence Laboratory 4
• Non-profit, carrier and vendor neutral
• Provide technical shepherding
• Build community
• Many organizations supports
Mobile Convergence Laboratory 5
Mobile Convergence Laboratory 6
Mobile Convergence Laboratory 7
Mobile Convergence Laboratory 8
Supporting members
Mobile Convergence Laboratory 9
Projects
SDN Network Operating System & SDN Control Platform
Mobile Convergence Laboratory 10
• Carrier grade SDN OS for service providers
• SDN OS with scalability, high availability, high performance
and right abstractions
• By
Mobile Convergence Laboratory 11
Mobile Convergence Laboratory 12
Their mission is to enable Service Providers
to build real SDN/NFV solutions.
Mobile Convergence Laboratory 13
ONOS community
Mobile Convergence Laboratory 14
15Mobile Convergence Laboratory
ONOS의 목표는
뭘까?
기존의 수많은
SDN controller
Mobile Convergence Laboratory 16
C++/Python
C/C++
Python
Java
Mobile Convergence Laboratory 17
Mobile Convergence Laboratory 18
commercial
products
Mobile Convergence Laboratory 19
commercial
products
Mobile Convergence Laboratory 20
High Availability
• Multiple Instance Clustering
• Fault tolerance using Distributed Core
• Five Nines availability
Mobile Convergence Laboratory 21
High Availability High Performance
• High Throughput
• ~500K-1M path setups/second
• High Volume
• ~500GB-1TB state data
• Low Latency
• 10~100ms
Mobile Convergence Laboratory 22
High Availability High Performance Scalability
• OSGi based OSS Karaf
è Deploy, Config
• Distributed Clustering
è Sync, Share
• Dynamic Clustering
Mobile Convergence Laboratory 23
High Availability High Performance Scalability White Box (Open)
Reference : ONOS wiki
Mobile Convergence Laboratory 24
High Availability High Performance Scalability White Box (Open)
Mobile Convergence Laboratory 25
Avocet Blackbird Cardinal Drake Emu Falcon Goldeneye H…
1.0.0
1.1.0
1.2.0
1.3.0 1.4.0
1.5.0
1.6.01.2.1
1.0.1 1.5.11.2.2
ONOS Architecture
The changing history of architecture
Overall architecture
Subsystem Structure
Mobile Convergence Laboratory 26
Architectural Tenets
Mobile Convergence Laboratory 27
• High availability, scalability and performance
• Strong abstractions and simplicity
• Protocol and device behavior independence
• Separation of concerns and modularity
Mobile Convergence Laboratory 28
The History of ONOS architecture
Founded - 2012
ONOS prototype 1
2013
(scalability, availability)
ONOS prototype 2
2013
(performance)
First Open
Avocet 1.0.0
2014.12.05
Mobile Convergence Laboratory 29
Prototype-1 (1G core)
Mobile Convergence Laboratory 30
Prototype-2 (2G core)
Mobile Convergence Laboratory 31
Clustering Synchronize Data
Sharing
Avocet(v1.0) & Blackbird(v1.1) (3G core)
Mobile Convergence Laboratory 32
Cardinal(v1.2) (4G core)
• RAFT Consensus Algorithm
• Copycat/Atomix OSS
• ConsistentMap
• CP system
• Gossip protocol based
anti-entropy
• EventuallyConsistentMap
• AP system
ONOS Overall Architecture
Mobile Convergence Laboratory 33
ONOS Core Technology
Mobile Convergence Laboratory 34
Mobile Convergence Laboratory 35
구체적인 서비스를
위한 Application 계층
Mobile Convergence Laboratory 36
Application 계층에
네트워크 정보 전달,
하위 컴포넌트 제어를
위한 인터페이스 제공
Mobile Convergence Laboratory 37
ONOS의 핵심적인 역할
을 하며,
HA와 Scalability를 위한
분산 클러스터링 기능
Mobile Convergence Laboratory 38
네트워크 인프라 제어를
위한 인터페이스 제공
Network Element 추상화
Mobile Convergence Laboratory 39
Network Element 설정
을 위한 프로토콜
OpenFlow : SDN
NetConf : Legacy
Mobile Convergence Laboratory 40
ONOS Core Subsystems
Device Link Host
Topology
Flow Rule
Path
Packet
StatisticsIntent
Application
Leadership
Messaging
Storage Region
Mastership
Driver
Group
Security
Flow Objectiv
e
Event
OpenFlow NetConf OVSDB
Core Cluster
. . .
Proxy ARPMobility L2 Forwarding
REST API GUI CLI
Network Cfg.
SDN IP / BGP Packet / Optical
Tunnel
. . .
OSGi / Apache Karaf
Network Virt
.
Device Cfg.
Config
UI Extension
External Apps
Graph
Discovery Tenant . . .
Mobile Convergence Laboratory 41
ONOS Subsystems Structure
Northbound
Core
Southbound
Mobile Convergence Laboratory 42
ONOS Subsystems Structure
• Provider
• Interface with the network via
protocol-specific library
• Manager
• Receives information from
Providera and serves it to
application and service
• Store
• Synchronizing the information
received by the Manager
• Distrbuted
• Set up as a cluster of instances
• Symmetric
• Each instance runs identical software and configuration
• Fault-tolerant
• Cluster remains operational in the face of node failures
• Location 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 demands
Mobile Convergence Laboratory 43
ONOS Distributed Architecture
Scale-out / HA scenarios
Mobile Convergence Laboratory 44
Mobile Convergence Laboratory 45
Distributed
Core
Instance 1
Scale-out by Distributed Core (1)
Network Graph
Global network view
Mobile Convergence Laboratory 46
Distributed
Core
Instance 1 Instance 2 Instance 3
Scale-out by Distributed Core (2)
Network Graph
Global network view
Mobile Convergence Laboratory 47
Distributed
Core
Instance 1 Instance 2 Instance 3
HA by Distributed Core (1)
Network Graph
Global network view
Mobile Convergence Laboratory 48
Distributed
Core
Instance 1 Instance 2 Instance 3
HA by Distributed Core (2)
Network Graph
Global network view
Mobile Convergence Laboratory 49
Distributed
Core
Instance 1 Instance 2 Instance 3
HA by Distributed Core (3)
Network Graph
Global network view
Mobile Convergence Laboratory 50
E
ONOS Application (1/3)
• Apps are delivered via ONOS App aRchive (.oar) files
• pom.xml / features.xml / bundle 을 포함하여 .oar 파일 형태로 배포
• OAR 파일은 maven으로 빌드할 때, onos-maven-plugin에 의해 생성
• ONOS application 종류
• Bundle application
• Service Interface application
• Service Component application
Mobile Convergence Laboratory 51
ONOS Application (2/3)
• ONOS application 종류
• Bundle application
• API를 제공하지 않고 자체적으로 모든 기능을 수행
• Service Interface application
• 다른 app에서 접근가능한 API를 제공하는 형태 ex>CLI, REST api, GUI
• Service Component application
• Activate/Deactivate 등 메소드를 가진 형태
Mobile Convergence Laboratory 52
ONOS Application (3/3)
• Maven을 이용한 ONOS app 프로젝트 생성 방법
• maven template toolkit에 의해 skeleton code가 제공
• ONOS archetype
• onos-bundle-archetype
• $onos-create-app bundle [groupId] [artifactId]
• onos-cli-archetype
• $onos-create-app cli [groupId] [artifactId]
• onos-ui-archetype
• $onos-create-app ui [groupId] [artifactId]
Mobile Convergence Laboratory 53
API
https://wiki.onosproject.org/display/ONOS/Download+packages+and+tutorial+VMs
http://api.onosproject.org/1.3.0/
Recent Trend of ONOS
Trend
Use case
Mobile Convergence Laboratory 54
Mobile Convergence Laboratory 55
The center of SDN/NFV
Mobile Convergence Laboratory 56
ONOS Framework(ONOSFW)
Mobile Convergence Laboratory 57
ONOS as an SDN
controller within the
VIM
Mobile Convergence Laboratory 58
ONOS with Linux Foundation
Mobile Convergence Laboratory 59http://opencord.org/
Central Office Re-architected as a Datacenter
Mobile Convergence Laboratory 60http://opencord.org/
Mobile Convergence Laboratory 61http://opencord.org/
Mobile Convergence Laboratory 62http://opencord.org/
https://vimeo.com/148210802
Webinar : ONOS CORD
Mobile Convergence Laboratory 63http://opencord.org/
https://vimeo.com/148210802
Webinar : ONOS CORD
Mobile Convergence Laboratory 64http://opencord.org/
https://vimeo.com/148210802
Webinar : ONOS CORD
Mobile Convergence Laboratory 65http://opencord.org/
M-CORD E-CORDR-CORD
Mobile Convergence Laboratory 66 /
OpenFlow
Switch
SDN-IP
Mobile Convergence Laboratory 67 / 22
1
2
3
4
eBGP
eBGP
Receive External router’s
advertisement iBGP
Transform
Routing information
-> intent request
Translate request into OpenFlow entries
Mobile Convergence Laboratory 68
Pi only SDN (1/3)
Raspberry Pi
Mobile Convergence Laboratory 69
Pi only SDN (2/3)
ONOS controller
Pi Stack Switch
(SDN Switch)
Mobile Convergence Laboratory 70
Pi only SDN (3/3)
Raspberry Pi Screen running ONOS
Mobile Convergence Laboratory 71
Use Cases Feature Proposals
Mobile Convergence Laboratory 72

Introduction of ONOS and core technology