Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos OS를 실행하는 디바이스의 YANG 이해

YANG은 네트워크 디바이스의 구성 및 운영 상태 데이터, 원격 프로시저 호출(RPC) 및 서버 이벤트 알림을 모델링하는 데 사용되는 표준 기반의 확장 가능한 데이터 모델링 언어입니다. IETF의 NETMOD 워킹 그룹은 원래 네트워크 관리 데이터를 모델링하고 NETCONF(Network Configuration Protocol) 모델의 콘텐츠 계층에 대한 표준을 제공하기 위해 YANG을 설계했습니다. 그러나 YANG은 프로토콜에 독립적이며, YANG 데이터 모델은 전송 또는 RPC 프로토콜과 독립적으로 사용할 수 있으며 네트워크 구성 프로토콜에서 지원하는 모든 인코딩 형식으로 변환될 수 있습니다.

주니퍼 네트웍스는 Junos 디바이스에 대한 구성 계층, 운영 명령, 운영 상태 데이터 및 YANG 확장을 정의하는 YANG 모듈을 게시합니다. 주니퍼 네트웍스 웹사이트 또는 YANG용 주니퍼 네트웍스 GitHub 리포지토리에서 YANG 모듈을 다운로드하거나 Junos 디바이스에서 모듈을 생성할 수 있습니다.

YANG은 데이터의 계층적 조직인 C와 유사한 구문을 사용하며, 기본 제공 형식 집합과 파생 형식을 정의하는 기능을 제공합니다. YANG은 가독성을 강조하며, 모듈과 서브 모듈, 재사용 가능한 유형과 노드 그룹을 사용하여 모듈성과 유연성을 제공합니다.

YANG 모듈은 단일 데이터 모델을 정의하고 해당 데이터에 대한 인코딩을 결정합니다. YANG 모듈은 데이터와 해당 데이터의 계층적 구성 및 제약 조건을 통해 데이터 모델을 정의합니다. 모듈은 완전한 독립 실행형 엔터티일 수도 있고, 다른 모듈 및 하위 모듈의 정의를 참조할 수도 있고 추가 노드로 다른 데이터 모델을 보강할 수도 있습니다.

YANG 모듈은 데이터의 구문뿐만 아니라 의미도 정의합니다. 데이터에 대한 제약 조건과 데이터 간의 관계를 명시적으로 정의합니다. 이를 통해 제약 조건 요구 사항을 충족하는 구문적으로 올바른 구성 데이터를 생성할 수 있으며, 데이터를 업로드하고 디바이스에 커밋하기 전에 모델에 대해 데이터를 검증할 수 있습니다.

YANG은 관리 정보 구조(SMI)가 관리 정보 구조(MIB)를 사용하여 SNMP 작업을 위한 데이터를 모델링하는 방식과 유사한 방식으로 모듈을 사용하여 네트워크 운영을 위한 구성 및 상태 데이터, 알림 및 RPC를 정의합니다. 그러나 YANG은 운영 데이터와 구성 데이터를 구분할 수 있다는 이점이 있습니다. YANG은 SNMP의 SMI 버전 2(SMIv2)와의 호환성을 유지하며, libsmi를 사용하여 SMIv2 관리 정보 베이스(MIB) 모듈을 YANG 모듈로 또는 그 반대로 변환할 수 있습니다. 또한 YANG 구문 분석기를 사용할 수 없는 경우 YANG 모듈을 XML 구문 분석기 및 XSLT 스크립트에서 읽을 수 있는 동등한 XML 구문인 YIN(YANG Independent Notation)으로 변환할 수 있습니다.

기존 YANG 기반 도구를 사용하거나 맞춤형 네트워크 관리 애플리케이션을 개발하여 YANG 모듈을 활용하여 보다 빠르고 정확한 네트워크 프로그래밍 기능을 구현할 수 있습니다. 예를 들어, 클라이언트 애플리케이션은 YANG 모듈을 활용하여 다양한 디바이스에 대한 벤더별 구성 데이터를 생성하고 디바이스에 업로드하기 전에 해당 데이터를 검증할 수 있습니다. 애플리케이션은 예기치 않은 RPC 응답 및 오류를 처리하고 문제를 해결할 수도 있습니다.

YANG에 대한 자세한 내용은 RFC 6020, YANG - NETCONF(Network Configuration Protocol)를 위한 데이터 모델링 언어 및 관련 RFC를 참조하십시오.