Upload
seung-hoon-baek
View
661
Download
9
Embed Size (px)
Citation preview
© PIOLINK, Inc. SDN No.1
목차
OpenDaylight?
OpenDaylight Project list
OpenDaylight Architecture
OpenDaylight Controller Platform
OpenDaylight SAL(Model Driven)
© PIOLINK, Inc. SDN No.1
OpenDaylight
ODL(OpenDaylight) -Linux foundation의 SDN/NFV를 위한 open source software platform
-많은 관련 IT 회사들이 커뮤니티를 중심으로 SDN/NFV 발전의 가속화와
품질 향상을 위해 project에 참여 중
(참여 회사 : Cisco, Brocade, Dell, HP, Juniper, VMware, etc…)
-ODL은 표준화된 모델을 사용함으로써 platform간 이식성이 높음
-SDN Controller가 ODL의 핵심
-다양한 네트워크 장비 제어 protocol을 플러그인 형태로 지원
Ex) OpenFlow, OpFlex, etc...
-ODL project는 제한 없이 누구나 참여가능
© PIOLINK, Inc. SDN No.1
ODL Project list
Project name Overview
AAA Authentication, Authorization, Accounting
DLUX (openDayLight User eXperience)
ODL Web GUI
OpenFlow Java OpenFlow protocol library
OpenFlow Plugin OpenFlow plugin
OVSDB Open vSwitch 관리
YANG Tools NETCONF와 YANG을 위한 라이브러리 및 개발 tool 지원
L2 Switch Layer 2 Switch spec 지원
© PIOLINK, Inc. SDN No.1
ODL Architecture
© PIOLINK, Inc. SDN No.1
ODL Architecture
1. Network Applications Orchestrations & Services
- 네트워크 관리 & Orchestrations를 위한 계층 (Orchestrations : 자원 및 서비스를 통합 관리하여 자동화된 프로비저닝을
제공하고 가상화된 자원과 물리 자원의 상호 연동이 가능하게 해줌)
- REST API로 application과 controller간 interface 제공
2. Controller Platform*
- Java 프로그램 언어 기반의 OSGi framework
- Data plane 제어 protocol plugin 관리
- SAL(Service Abstraction Layer) *
3. Southbound Interfaces & Protocol Plugins
- Data plane 제어 protocol 제공(Southbound interface)
ex) OpenFlow, OVSDB, NETCONF, etc…
4. Data Plane Elements
- Physical 또는 Virtual 네트워크 장비들
© PIOLINK, Inc. SDN No.1
Controller Platform
ODL Controller Platform
- ODL의 core역할로 application layer를 위한 공통 REST API(NBI)와 data plane을 제어하기 위한 다양한
protocol(SBI)을 제공하는 SDN 추상화 계층
- 기존 OpenFlow 중심적인 controller들과 다르게 SAL(Service Abstraction Layer)이 네트워크 장비와
controller 사이 protocol을 결정해줌으로써 다양한 protocol을 지원 가능
- ODL의 모듈화와 확장성을 위해 OSGi framework를 사용
- Java로 작성되어 Java가 지원되는 OS 그리고 hardware라면 어디든 사용 가능
OSGi(Open Services Gateway initiative)
- 재부팅 없이 동적으로 bundle 추가/삭제가 가능한 Java기반의 framework
- Bundle = Application 또는 Component
- ODL의 backend framework
- Helium(두 번째 버전) 부터는 Bundle로드 방법이 경량화된 Karaf 사용
0
Bundle Bundle SAL
OSGI framework
Karaf
Communication connection
© PIOLINK, Inc. SDN No.1
SAL
SAL(Service Abstraction Layer) -네트워크 장비와 controller 사이 protocol 결정
-Protocol plugin 과 네트워크 어플리케이션 연결
종류 -AD-SAL(API Driven-SAL, 과거)
: 라우팅 경로가 compile 또는 build 시 결정
-MD-SAL(Model Driven-SAL, 현재)
: 라우팅 경로가 plugin 추가 또는 삭제 시 결정
AD-SAL에서 MD-SAL 변화한 이유
-AD-SAL은 개발자가 직접 plugin이 사용하는 SAL API를 정의하기 때문에
확장성이 떨어졌지만 MD-SAL은 표준화된 model을 만들고 model로부터
생성되는 code/API를 사용하기 때문에 확장성이 높고 다양한 플랫폼에
적용이 용이해짐
© PIOLINK, Inc. SDN No.1
MD-SAL
특징 -Flexibility : 다양한 application 사용에 용이
-개발 과정 계층화 : 서로 독립적 개발
-Run-time 확장성 : 상황 변화에 적응이 용이
-Performance & scale : 성능과 확장성 동시 갖음
Model 기반의 라우팅 경로 결정
YANG으로 모델화됨
(YANG = data modeling 언어)
© PIOLINK, Inc. SDN No.1
MD-SAL
구조
Binding-Independent Consumers
Binding-Aware Consumers
Binding-Aware Providers
Binding-Independent providers
Binding-Aware Broker Binding Independent
Broker
BI Data Repository
Binding Generator
Schema Repository
Consumer
Controller SAL
Provider
© PIOLINK, Inc. SDN No.1
MD-SAL
Components
요소 설명
Binding YANG schema로 부터 생성된 Java interface, class, contract
Provider Application에 기능들을 제공
Consumer Provider에게 받은 기능들(API, model)을 사용
BA(Binding-Aware) Data와 API를 위해 생성된 Binding을 사용
BI(Binding-Independent) 생성된 Binding을 사용하지 않고 data와 API call을 위해 DOM(Document Object Model)을 사용
BA Broker Consumer이 Provider가 제공하는 data와 service에 접근하는 것을 도움
BI Broker Provider와 Consumer사이 RPC, notification, data를 전달
Binding Generator BI 형식으로 data mappers와 binding interface를 생성
Schema Repository YANG-Java의 연관 관계를 저장하고 BA API와 BI API call를 연결 시켜줌
BI Data Repository 임시 data와 설정 값을 저장하는 BI infrastructure의 구성 요소
© PIOLINK, Inc. SDN No.1
MD-SAL
BA Broker 동작(Notification Hub)
Application
BA Provider BI Provider
Application
Controller SAL
Provider
onNotification(example)
onNotification(example) Notify(example)
Binding-Aware Broker Binding-Independent
Broker
Notify(example)
© PIOLINK, Inc. SDN No.1
MD-SAL
BA Broker 동작(RPC Routing)
Application
BA Provider BI Provider
Application
Controller SAL
Provider
Module.example()
RPC(example) return
Binding-Aware Broker Binding-Independent
Broker
RPC(example)
Module.example()
return
return
return
미리 생성된 Binding을 호출
BA -> BA BA -> BI
© PIOLINK, Inc. SDN No.1
MD-SAL
BI Broker 동작(Notification Hub)
Notification Consumer
Notification Producer Notification Consumer
Binding-Independent Broker
Application
Controller SAL
Provider
onNotification(example)
onNotification(example) Notify(example)
© PIOLINK, Inc. SDN No.1
MD-SAL
BI Broker 동작(RPC Routing)
Application
Provider with RPC(example) Provider without
functionality
Binding-Independent Broker
Application
Controller SAL
Provider
RPC(example)
RPC(example)
return
return
© PIOLINK, Inc. SDN No.1
MD-SAL
Example(OpenFlow : add flow)
RESTCONF
OpenFlow Plugin
Application
Controller SAL
Provider
Binding-Aware Broker Binding-Independent
Broker
OpenFlow Switch
add_flow()
RPC(add_flow)
RPC(add_flow)
return
return
return
OpenFlow Library
Data Plane
Forwarding Rules Manager
return GET : add_flow
*임의로 정한
Flow를 추가
하는 API
© PIOLINK, Inc. SDN No.1
참조
http://www.opendaylight.org
https://wiki.opendaylight.org/
https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-
SAL:MD-SAL_Document_Review:Architecture#Background
rfc6020(YANG)
감사합니다. ㈜파이오링크
서울시 금천구 가산디지털2로 98
(가산동 550-1) IT캐슬 1동 401호
TEL: 02-2025-6900
FAX: 02-2025-6901
www.PIOLINK.com