[칼럼] NETCONF-YANG의 이유있는 탄생!


시스코 이재미 관리 솔루션 스페셜 리스트


네트워크 서비스 초반의 장비 중심, 모니터링 중심의 네트워크 관리가 다양한 네트워크 기반 서비스 시대를 맞아 새로운 서비스를 얼마나 빨리, 효과적으로, 정확하게 적용하느냐로 이동하고 있습니다. 오늘은 기존의 SNMP (Simple Network Management Protocol)의 한계를 뛰어넘어 네트워크 프로비져닝을 위해 설계된 NETCONF 프로토콜과 YANG 데이터 모델로 서비스기반의 네트워크에 대한 이야기를 들려드리겠습니다. 


‘Network as Platform’ 이라는 이야기. 들어보신 적 있으신가요? 


초기 인트라넷/인터넷 서비스가 시작되었을 때, 네트워크는 말 그대로 서비스와 서비스를 연결해주는 망이었습니다. 그래서 얼마나 안정적으로 서버들을 연결하고 사용자를 연결하느냐하는 “연결”에 중심을 두고 있는 서비스였지요. 그런데 점차 IPT, 클라우드, 빅데이터에서 최근 화제가 되고 있는 만물인터넷까지 다양한 기술들이 발달하면서 이젠 네트워크가 단순히 연결을 위한 도구가 아니라 새로운 기술의 기반이 되는 플랫폼으로 그 중요성이 점차 커지고 있는게 현실이랍니다. 


그러다 보니 기존의 네트워크를 운영, 관리하는 조직은 이전과 다른 새로운 고민을 하게 됩니다. 이전에는 연결을 보장하는 장비의 상태 정보가 핵심 관리 대상이었는데 이제는 상태는 기본이고 시시각각 변화하는 기술을 효과적으로 장비에 적용하는 설정, 컨피그레이션에 대한 관리 중심으로 운영의 고민이 이동하고 있는 것입니다. 


그래서 일반적으로 아래와 같은 두 가지 방법으로 여러 장비에 설정을 적용함으로써 서비스 자동화를 구현하는 사례들을 쉽게 접해볼 수 있답니다. 


  • Simple Network Management Protocol(이하 SNMP)을 활용한 장비 모니터링 및 설정 적용 
  • CLI Script : 장비 설정을 위한 접근 방법인 Telnet/SSH를 활용하여 장비에 명령어를 직접 실행하는 프로그램을 구현하여 필요한 설정을 적용 


그런데, 설정 대상 장비가 많고, 설정이 필요한 서비스가 다양하게 변화하면서 전통적인 위의 두 가지 방법은 운영에 큰 문제점을 발생시킵니다. 


첫번째는 설정에 적합하지 않은 데이터 구조입니다. 

SNMP는 모니터링을 목적으로 설계된 프로토콜입니다. Management Information Base (MIB)라는 트리 구조의 데이터 모델을 제공하지만 다양한 벤더의 장비 타입을 위한 정보를 효과적으로 담기에는 부족하다는 것이 전문가들의 의견입니다.


두번째는 안정성입니다. 

UDP 기반으로 제공되는 SNMP는 사업자의 매출과 연결되는 서비스를 위한 프로토콜로는 안정성에 문제가 있다는 것이지요.


세번째는 바로 성능입니다. 

SNMP는 물론, CLI 기반의 스크립트 역시 가장 큰 이슈는 대형 네트워크에서 여러 대의 장비에 효과적으로 빠르고, 안정적으로 새로운 설정을 적용할 수 있냐?라는 질문에는 후한 점수를 받지 못하고 있습니다.


그래서 표준을 연구하는 IETF에서는 오로지 네트워크 장비의 설정, 컨피그레이션에만 중점을 둔 프로토콜과 함께 효과적인 데이터 모델을 설계하기로 마음을 먹게 됩니다. 그 결실로 지난 2006년 네트워크 컨피그레이션 프로토콜이라 불리는 NETCONF가 표준화 되었고, 2010년 NETCONF 기반의 멀티벤더 장비 설정을 위한 효과적인 데이터 모델링 언어로 YANG이 표준화되었습니다.


그렇다면, NETCONF와 YANG은 어떤 모습으로 서비스를 제공하기에 이전의 문제점들을 말끔하게 해결해 주는 새로운 설정 관리 프로토콜과 모델링 언어로 관심을 모으고 있을까요? 왜! 이들은 최근들어 네트워크 자동화가 핵심인 NFV(네트워크 기능 가상화) 기술에 빠지지 않고 감초처럼 등장하는 것일까요? 


주요 특징들 위주로 다음과 같이 정리해 보았습니다. 



[그림1] SNMP vs NETCONF-YANG



NETCONF-YANG


[그림2] NETCONF-YANG 기반 서비스


첫번째, NETCONF의 핵심은 설정 관리만을 고민한 프로토콜이라는 것입니다. 

프로토콜의 핵심을 이루는 오퍼레이션이 <edit-config>, <get-config>,<copy-config> 등으로 이루어져 있어서 근본이 설정 관리 맞춤형 프로토콜인 것이지요. 


두번째, NETCONF의 핵심은 기존 CLI 방식에서 할 수 없었던 데이터 모델을 사용하는 것입니다. 

현재 많이 사용하고 있는 CLI Script 방식은 장비마다 사용하는 명령어를 스크립트에 적용하여 실행합니다. 한마디로 “제 각각”이니 복잡해지고, 다양해지는 상황에는 아주 취약한 것이지요. 이 문제를 깔끔하게 해결하기 위해 표준화된 데이터 모델을 사용하게되고, 이 모델이 바로 YANG이라는 모델링 언어를 통해 설계되는 것입니다. 


세번째, NETCONF의 핵심은 바로 에러 정보에 대한 관리입니다. 

이전 설정 관리의 최대 고민은 바로 설정 적용이 원활하지 못했을때, 설정 중도에 문제가 발생했을 때 이 부분을 확인하고, 해결할 수 있는 방법이 전무했다는 것입니다. 문제점을 보완한 솔루션답게 설정을 적용하는 단계에 신중을 기하는 기능과 에러를 전달하고 복구하는 기능을 데이터 모델에 포함했다는 것은 기존과는 차별화된 기능입니다. 


그럼, 이러한 이전과는 다른 NETCONF 프로토콜을 완성해주는 데이터 모델링을 제공해주는 YANG은 과연 무엇일까요? 


먼저, 어떤 데이터를 관리하고, 사용할 것인지 정의한다는 면에서는 기존의 SNMP MIB과 동일한 기능을 합니다. 그래서 마치 서로 다른 업체의 장비들이 관리 기능을 확장하기 위해 자신들의 MIB 파일을 제공하는 것 처럼, YANG 파일을 통해 각 장비들의 관리 정보를 어떻게 관리하고 표현할 수 있는지 정의하게됩니다. 하지만, 데이터를 정의하는 방식에서 SNMP MIB과 다른 차이를 가지고 있는 것이 YANG의 특징이라고 할 수 있습니다.


첫번째 특징은 바로 쉬운 스크립트 언어처럼 기본 문법을 이해하게된다면 누구나 쉽게 읽고, 쉽게 작성할 수 있는 표현 방식을 제공하는 것입니다. 

그래서 장비 각각이 자신의 설정 정보를 담고 있는 모델링 정보를 사용자에게 제공되는 서비스 정보로 쉽게 확장하여 서비스 기반의 모델링을 제공할 수 있습니다. 


두번째 특징은 잘 설계된 모델링은 바로 XML로 쉽게 전환되어 NETCONF를 통해 전달되는 것입니다. 

다양한 데이터의 전환이 쉽게 이루어지니 서로 다른 제조사의 장비 모델들이 하나의 서비스 모델로 변환하는데 SNMP대비 3배의 성능을 제공해 줄 수 있는 것입니다. 더불어, 이 효과적인 전환의 특징은 데이터 모델을 쉽게 웹 UI로 옮길 수 있어서 새롭게 설계한 서비스 모델링을 바로 GUI 기반으로 노출하여, 운영자가 쉽게 GUI로 서비스를 적용할 수 있도록 도와줍니다. 다시 운영자를 위한 웹 UI작업을 해야하는 번거로움을 획기적으로 줄일 수 있는 것이지요. 


세번째 특징은 기존의 SNMP로 표현할 수 없는 데이터에 대한 제약 사항을 완화하고 데이터 검증을 위한 강력한 기능을 제공하는 것입니다.


실제로 많은 수의 네트워크 장비를 기반으로 성능 시험을 한 자료를 보면 기존 방식의 설정 변경과 NETCONF-YANG 기반의 설정 변경은 평균 2배의 성능 차이를 보였고, 그 효과는 장비 수가 많을 수록 더 커지는 것으로 확인되었습니다. 


이제는 네트워크 관리의 핵심이 네트워크 자동화로 옮겨가고 있는 시대입니다. 


특히, 클라우드 기반 네트워킹 솔루션이나 NFV 솔루션의 경우 NETCONF-YANG의 지원은 필수적인 것으로 업계내에서 이야기되고 있습니다. 시스코는 이러한 시장의 변화를 적극적으로 수용하여 NETCONF-YANG의 개척자인 Tail-F 솔루션을 인수하여 NFV 아키텍쳐 핵심 오케스트레이터로 적용함은 물론, 기존 네트워크 장비에서 NETCONF-YANG을 쉽게 활성화할 수 있는 ConfD Agent를 무상으로 제공하여 NETCONF-YANG 기술 활성화에 큰 역할을 수행하고 있습니다. 


고객과 실제 운영자들의 요구를 담아 설계된 NETCONF-YANG, 이제는 더 이상 낯선 용어가 아닌 시점입니다. 



    • 나그네님! 시스코 코리아 블로그 방문 진심으로 감사 드립니다. 시스코는 다양한 분야의 전문가들이 정기적으로 칼럼을 발행하고 있습니다. 저희 소식을 받고싶으시다면 블로그 구독을 권장 드립니다. (http://feeds.feedburner.com/CiscoKorea) 다시 한 번 방문 감사합니다! :) 앞으로도 자주 들러주세요~

  • voiceCCIE 2016.10.24 14:25

    안녕하십니까...

    저는 약 15년간에 현장지원(설치, 장애발생 처리)하는 Enginner로 일하고 있습니다. 글 잘 읽었습니다.
    조금 궁금한 점이 있는데요,
    저와 같이 "장비설치", "장애처리"하는 Enginner 입장에서는 현장 일 할때, 콘솔연 결하고, 또는 SSH 연결해서 CLI 스크립트로 장비 Configuation 하고 있습니다.
    향후 SDN(opendayligt) 도입시. Configuation관리하기 위해서는 XML 언어 공부해야 하는지요? 아님 YANG 공부해야하느지요?