YANG Model is everything?
/////////////////////////////////////////////////////////////////////////////////////////
// 이번 포스팅은 SDN Controller에 대한 개인적인 생각임을 먼저 밝힙니다. //
/////////////////////////////////////////////////////////////////////////////////////////
최근 SDN Controller 를 놓고보면 거의 3파전 양상이다.
바로 OpenDaylight / ONOS / RYU 가 3파전을 이루는 SDN Controller로 정의할 수 있을 듯 하다.
이 중에서 RYU Controller는 아무래도 PoC 레벨로 많이 사용되고 있기 때문에 살짝 제외하면 결과적으로 SDN Controller는 2파전으로 볼 수 있다.
남은 SDN Controller는 OpenDaylight(이하 ODL)와 ONOS 인데 사실 이 두 컨소시움 사이에 진흙탕 싸움이 진행되고 있다.
두가지 모두 Linux Foundation 에 속해있기 때문에 더욱 날 선 공방이 계속되지 않을까 싶다.
사용자 입장에서는 무엇을 쓸지 고민이 많이 되는 부분이다.
ODL / ONOS 모두 그 특징이 있기 때문인데 사실 두가지를 모두 사용할 수 있다면 이보다 좋을 수 없을 것으로 생각된다.
어떻게 하면 두가지를 모두 사용할 수 있을까?
어떻게 하면 나에게 필요한 SDN Controller를 선택할 수 있을까?
이런 의문을 가졌는데...
지금부터 이야기 하고자 하는 내용이 그 Key 가 되지 않을까 조심스럽게 생각한다.
YANG Model
YANG Model 이라는 제목을 처음 보았을때 웬 중국의 아키택처가 내어놓은 멋진 개념으로 보았다.
YANG 은 "Yet Another Next Generation"의 약자로 NetConf 네트워크 프로토콜 구성을 위한 데이터 모델링 언어이다.
(https://en.wikipedia.org/wiki/YANG)
네트워크 구성요소의 상태 및 설정 데이터를 모델링하는 언어로써 NetConf 프로토콜을 통해 네트워크 구성요소를 호출하고 네트워크 요소 구성을 위해 호출되는 이벤트의 포멧을 결정할 수 있다.
YANG은 XML과 같은 트리 형식의 데이터 구조를 나타내는 모듈 언어인데 그 중심에는 내장된 데이터 타입의 번호 또는 추가 어플리케이션에 대한 특정 데이터 타입 정보가 포함된다.
또한 복잡하게 구성된 데이터 구조를 위한 그룹을 제공한다.
아래는 YANG Model에 대한 예제이다.
위 예제에 대하여 아래와 같이 XML로 제공될 수 있으며
아래와 같이 JSON으로 제공될 수 있다.
YANG into SDN Controller
위와 같이 변화 무쌍한 YANG Model을 SDN Controller에 적용하면 어떻게 될까?
1. ODL
ODL에서는 이미 MD-SAL(Model Driven Service Abstraction Layer) 라는 개념이 적용되었다.
(https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL)
개념적으로 상위의 Applications 들이 모델링을 지원하는 SAL(API Driven SAL, Model Driven SAL)을 통하여 필요한 플러그인을 호출하고 플러그인은 네트워크 요소(OpenFlow, NetConf 등)를 설정하는 개념이다.
주요한 내용은 SAL 의 핵심이 바로 YANG Model 이라는 점이다.
2. ONOS
ONOS 역시 Data Model 에 대한 개념이 적용되고 있다.
(https://wiki.onosproject.org/display/ONOS/YANG+Models+in+ONOS)
개념적으로 Apps 들이 YANG Forge 및 YNAG Shell을 통하여 네트워크 요소(NetConf)를 설정하는 개념이다.
ONOS 역시 Data Model 의 핵심이 YANG Model 이다.
결과적으로
어떤 SDN Controller 를 사용할 고민이 필요할까?
모두 YANG Model 을 지원한다면...
그렇다면... 정말 잘 만든 YANG Model 을 기반으로 좀 더 인텔리전스한 SDN Controller 환경을 구축할 수 있지 않을까?
사용자는 Application 을 만들기만 하고 YANG Model 을 표기만 해주면
SDN Controller 팜에서는 YANG Model에 따라 최적의 Controller 를 선택하고
선택된 Controller 는 최적의 plugins 를 사용하여 Network Elements 를 구성할 수 있지 않을까?
앞으로 어떻게 될 지 아무도 알 수 없지만 참 재미난 미래가 열릴 듯 하다.
'Software Defined Network > Research_SDN' 카테고리의 다른 글
openvSwitch에서 OpenFlow 룰을 확인하고 싶을때 (1) | 2016.04.14 |
---|---|
ONOS Controller와 OpenStack 연결 (0) | 2015.10.08 |
Buffalo AP - OpenFlow SW 설정 (7) | 2015.10.05 |
ONOS prolog (0) | 2015.07.20 |