YANG

오픈 소스 구현을 이용한 NETCONF Hands-On

오픈 소스 구현을 이용한 NETCONF Hands-On

오픈소스를 이용하여 NETCONF 의 간단한 동작을 확인 해보자.

사용할 오픈소스 구현은 다음과 같다.

  • libyang: YANG 데이터 모델링 언어의 파서와 툴킷을 제공한다. sysrepo, libnetconf2, netopeer2에서 사용된다.
  • sysrepo: YANG 으로 모델링된 데이터의 데이터 스토어를 제공한다.
  • libnetconf2: NETCONF 서버와 클라이언트에서 사용되는 라이브리를 제공한다.
  • netopeer2: NETCONF 서버와 테스트용 클라이언트를 제공한다.

설치 하기

설치에 시간이 걸리기 때문에 빠른 테스트를 위해 도커 이미지를 만들어 놓았다.

시스템에 도커가 설치되어 있다면 별도의 설치 없이 테스트가 가능하다.

YANG - Data Modeling Language

YANG: Data Modeling Language

개요

IETF NETCONF Working Group 에서 네트워크 관리 프로토콜인 NECONF의 데이터 모델링을 위해 개발한 데이터 모델링 언어다. NETCONF 프로토콜(RFC 6241은 표준에서 정의한 4 계층 중 Operation, Message, Transport 계층에 대해 정의 하였지만 최상위 계층인 Content 계층의 내용에 대해서는 정의하지 않았다.

SNMP에서 MIB를 정의 하기 위해 SMI를 정의 하였듯이 NETCONF에서 관리 데이터를 정의 하기 위해 데이터 모델링을 위한 언어인 YANG을 정의 하였다.

YANG은 매우 확장성 있는 데이터 모델링 언어로 당초 목적인 네트워크의 설정 데이터와 운용 데이터의 모델링 뿐 아니라 다른 분야 에서도 사용되고 있다.

NETCONF - Network Configuration Protocol

개요

IETF NETCONF Working Group에서 발표한 네트워크 관리 프로토콜이다.

기존에 사용되던 SNMP를 대체 하기 위해 개발 되었으며 네트워크 오퍼레이터의 요구 사항을 반영하여 개발되었다. 최신 개정판은 RFC 6241 이다.

출연 배경

이전에 정의된 SNMP가 있었다. SNMP는 버전 3 까지 정의 되었다. SNMPv1 은 SNMP의 첫 번째 표준이다. 사실 IETF에서는 체계적인 관리 체계를 개발 하기 원했고 SNMPv1 은 더 나은 관리 프로토콜을 개발할기 까지 과도적으로 사용되는 임시 프로토콜로서 개발 되었다. 하지만 SNMPv1은 구현의 간편함으로 인해 널리 사용되었고 IETF에서는 새로운 프로토콜을 구현하는 대신 대신 SNMP를 발전 시키려고 하였다. 버전 1 에서 문제가 되었던 인증 관련 기능등의 추가 기능이 정의된 SNMPv2를 발표 하였으나 SNMPv1이 널리 사용되게 되었던 원인인 구현의 간편함이 없어졌기 때문에 사용자의 외면을 받았다. 이에 IETF에서는 SNMPv2에서 문제가 되었던 복잡한 인증 관련 기능을 제거한 SNMPV2c 를 발표 하였다. 이후 구현된 SNMPv3에서는 이전 버전에서 문제가 되었던 보안성이 강화되어 데이터의 기밀성, 무결성, 인증관련 기능들이 추가 되었다.