본문 바로가기

Software Defined Network/Research_SDN

Yang Model as a Service


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 를 구성할 수 있지 않을까?


앞으로 어떻게 될 지 아무도 알 수 없지만 참 재미난 미래가 열릴 듯 하다.