Junos YANG 모듈 이해
주니퍼 네트웍스는 구성 및 운영 상태 데이터, 운영 명령 및 Junos 확장을 위해 YANG 모델을 사용하여 Junos 디바이스의 스키마를 게시합니다. 다음 섹션에서는 네이티브 Junos YANG 모듈에 대해 설명합니다.
Junos YANG 모듈 개요
주니퍼 네트웍스는 Junos OS를 실행하는 디바이스와 Junos OS Evolved를 실행하는 디바이스를 위해 구성 계층, 운영 명령 및 상태 데이터뿐만 아니라 YANG 확장 및 유형을 정의하는 YANG 모듈을 제공합니다. Junos OS 릴리스 17.2부터 YANG 모듈은 디바이스 제품군에 특정됩니다. 표 1 은 서로 다른 디바이스 제품군에 대한 식별자를 간략하게 설명하고 각 제품군에 포함된 플랫폼을 나타냅니다. Junos OS Evolved 릴리스 23.4R2부터 모든 Junos OS Evolved 플랫폼은 디바이스 제품군 식별자를 junos
사용합니다.
장치 제품군 식별자 |
Junos OS 플랫폼 |
Junos OS Evolved 플랫폼 |
---|---|---|
Junos |
ACX 시리즈 |
ACX 시리즈 |
Junos-ES |
J 시리즈 |
– |
Junos-Ex |
EX 시리즈(특정 플랫폼) |
– |
주노스-QFX |
QFX 시리즈 |
QFX 시리즈(23.2 이하) |
동일한 시리즈 내의 여러 플랫폼은 서로 다른 장치 제품군으로 분류될 수 있습니다. Junos OS Evolved Release 23.4R1 이하를 실행하는 디바이스와 Junos OS를 실행하는 디바이스에서는 디바이스에서 운영 모드 명령 또는 RPC를 <get-system-information/>
실행하여 show system information
특정 디바이스의 제품군을 확인할 수 있습니다. 명령 출력의 Family
필드 값 또는 <os-name>
RPC 응답의 요소는 디바이스 제품군을 나타냅니다.
Junos OS 릴리스 17.4R1부터 구성 YANG 모듈은 여러 개의 작은 모듈로 보강된 루트 모듈로 분할됩니다. 또한 네이티브 Junos YANG 모듈은 모듈 이름, 파일 이름 및 네임스페이스에 대한 새로운 명명 규칙을 사용합니다. 모듈 이름과 파일 이름에는 디바이스 패밀리와 모듈의 스키마가 속한 구성 또는 명령 계층 영역이 포함됩니다. 모듈 파일 이름에는 개정 날짜도 포함됩니다. 표 2 에는 Junos 디바이스에 네이티브로 제공되는 YANG 모듈이 요약되어 있으며, 다른 모듈 이름이 사용되는 릴리스가 나와 있습니다.
제품군별 스키마가 필요하지 않고 모든 플랫폼에 공통적인 모듈은 모듈의 이름, 파일 이름 및 네임스페이스에 디바이스 패밀리를 사용합니다 junos
.
Junos YANG 모듈 |
묘사 |
모듈 이름 |
릴리스 |
---|---|---|---|
구성 모듈 |
Junos 구성 계층에 대한 스키마를 정의합니다. Junos OS 릴리스 17.4R1부터 구성 YANG 모듈은 여러 개의 작은 모듈로 보강된 루트 모듈(family-conf-root)로 분할됩니다. |
|
14.2에서 17.3까지 |
|
17.4R1 이상 |
||
운영 명령 모듈 |
운영 모드 명령에 대한 원격 프로시저 호출(RPC)을 정의하는 모듈의 집합적 그룹과 운영 명령 계층을 나타냅니다. 명령 계층의 여러 영역에 대한 별도의 모듈이 있습니다. |
|
16.1에서 17.3까지 |
|
17.4R1 이상 |
||
junos-state 상태 모듈 |
운영 상태 데이터를 위해 큐레이팅된 YANG 모듈 세트. | junos-state-area |
22.2R1 이상 |
|
작동 상태에 대한 YANG 데이터 모델을 정의합니다. 모델은 gNMI |
|
24.2R1 이상(Junos OS Evolved) |
DDL 확장 모듈 |
Junos 디바이스용 DDL(Data Definition Language) 문을 포함합니다. 이 모듈에는 특수 키워드를 |
|
15.1에서 17.3까지 |
|
17.4R1 이상 |
||
ODL 확장 모듈 |
Junos 디바이스에서 실행되는 RPC에 대해 형식이 지정된 ASCII 출력을 생성하고 사용자 정의하는 데 사용할 수 있는 ODL(출력 정의 언어) 문을 포함합니다. |
|
16.1에서 17.3까지 |
|
17.4R1 이상 |
||
메타데이터 주석 확장 모듈 |
구성 작업에 대한 메타데이터 주석을 정의합니다. 주석은 RFC 7952, Defining and Using Metadata with YANG에 정의되어 있습니다. |
junos-configuration-metadata |
22.2R1 이상(Junos OS Evolved) |
유형 모듈 |
YANG 유형에 대한 정의를 포함합니다. |
|
17.4R1 이상 |
서로 다른 릴리스의 서로 다른 디바이스 패밀리에 대해 YANG 모듈을 지원하기 위해 다운로드한 모듈은 디바이스 패밀리별로 구성되며, 각 모듈의 이름, 파일 이름 및 네임스페이스는 모듈의 스키마가 속한 디바이스 패밀리를 반영합니다.
모듈 확보에 대한 자세한 내용은 Junos YANG 모듈 다운로드 및 생성을 참조하십시오.
모듈 네임스페이스에 대한 자세한 내용은 Junos YANG 모듈 네임스페이스 및 접두사 이해하기를 참조하십시오.
Junos YANG 모듈 다운로드 및 생성
다음과 같은 방법으로 Junos OS 및 Junos OS Evolved YANG 모듈을 검색할 수 있습니다.
-
주니퍼 네트웍스 웹 사이트에서 모듈 다운로드(https://www.juniper.net/support/downloads)
-
Juniper/yang GitHub 리포지토리에서 모듈 다운로드
-
주니퍼 네트웍스 디바이스에서 모듈 생성
Junos OS Evolved 릴리스 23.4R1부터 주니퍼 네트웍스 다운로드 사이트 및 GitHub에 Junos OS Evolved 네이티브 Yang 모듈을 게시합니다. 이전 릴리스에서는 디바이스에서 모듈을 생성해야 합니다.
Junos OS 릴리스 17.1 및 이전 버전에서는 주니퍼 네트웍스 웹 사이트 및 GitHub에 게시된 Junos OS 구성 및 명령 계층을 위한 YANG 모듈이 해당 Junos OS 릴리스를 실행하는 모든 디바이스에 대한 스키마를 정의합니다. 대조적으로, 로컬 디바이스에서 생성된 YANG 모듈은 해당 디바이스에 특정한 스키마를 정의합니다. 장치별 스키마에는 기본 모듈과 장치에 추가된 표준 또는 사용자 지정 모듈의 노드가 모두 포함됩니다.
Junos OS 릴리스 17.2부터 Junos YANG 모듈은 디바이스 패밀리에 특정되며 각 모듈의 네임스페이스는 모듈의 스키마가 속한 디바이스 패밀리를 반영합니다. 따라서 다운로드 패키지 및 GitHub 리포지토리에는 각 디바이스 패밀리의 모듈에 대한 별도의 디렉터리와 모든 디바이스 패밀리에 공통적인 모듈에 대한 공통 디렉터리가 포함됩니다. 각 제품군별 디렉터리는 디바이스 제품군 식별자를 디렉터리 이름으로 사용하며, 해당 제품군의 플랫폼에서 지원되는 구성 및 운영 명령 모듈을 포함합니다. 디바이스 제품군 식별자는 표 1에 정의되어 있습니다. Junos OS 릴리스 17.2를 실행하는 로컬 디바이스에서 생성된 YANG 모듈은 여전히 해당 디바이스에 특정한 스키마를 정의합니다.
Junos OS 릴리스 17.4R1부터 로컬 디바이스에서 생성된 YANG 모듈에는 기본적으로 제품군별 스키마가 포함되며, 이는 해당 디바이스 제품군의 모든 디바이스에서 동일합니다. 디바이스별 모듈을 생성하려면 계층 수준에서 구성 문을 [edit system services netconf yang-modules]
구성합니다device-specific
.
표 3 에는 다양한 Junos OS 릴리스에 대해 다운로드 및 생성된 YANG 모듈의 스키마 범위가 요약되어 있습니다.
Junos OS 릴리스 |
다운로드한 모듈의 스키마 범위Scope of schema in downloaded modules |
생성된 모듈의 스키마 범위 |
---|---|---|
17.1 이하 |
모든 장치 |
장치 |
17.2에서 17.3까지 |
장치 패밀리 |
장치 |
17.4R1 이상 |
장치 패밀리 |
장치 패밀리 |
Junos OS Evolved 릴리스 23.4R1부터 주니퍼 네트웍스 다운로드 사이트 및 GitHub에 Junos OS Evolved YANG 모듈을 게시합니다. 이전 릴리스에서는 디바이스에서 모듈을 생성해야 합니다.
또한 Junos OS 릴리스 23.4R1 및 Junos OS Evolved 릴리스 23.4R1부터는 단일 다운로드 패키지 및 GitHub 리포지토리 폴더에서 특정 OS 및 릴리스에 대한 모든 YANG 데이터 모델을 제공합니다. package 및 repository 폴더에는 다음이 포함됩니다.
-
기본 구성, 상태 및 RPC 데이터 모델
-
해당 OS에서 지원하는 OpenConfig 구성 및 상태 모델
-
해당 OS에서 지원하는 IETF 모델
Junos OS YANG 모듈을 다운로드하거나 생성하는 방법에 대한 자세한 내용은 주니퍼 네트웍스 YANG 모듈 사용을 참조하십시오.
Junos YANG 모듈 네임스페이스 및 접두사 이해
Junos OS 릴리스 17.1 및 이전 버전에서 Junos YANG 모듈은 고유 식별자를 사용하여 각 모듈의 네임스페이스를 구분합니다.
namespace "http://yang.juniper.net/yang/1.1/module-id;
Junos OS 릴리스 17.2R1부터 Junos YANG 모듈은 디바이스 제품군에 특정됩니다. 주어진 릴리스에서 서로 다른 디바이스 패밀리에 대해 별개의 YANG 모듈을 지원하기 위해 YANG 모듈은 식별자 외에도 모듈 이름, 디바이스 패밀리, Junos OS 릴리스 문자열을 포함하는 네임스페이스를 사용합니다. 예를 들어:
namespace "http://yang.juniper.net/yang/1.1/module-id/module-name/device-family/release";
Junos OS 릴리스 17.4R1부터 네임스페이스가 간소화되어 디바이스 제품군, 모듈 유형, 각 모듈에 고유하고 모듈의 네임스페이스를 다른 모듈의 네임스페이스와 구별하는 식별자를 포함합니다.
namespace "http://yang.juniper.net/device-family/type/identifier";
다음 정의는 해당 변수가 나타나는 네임스페이스의 모든 버전에 적용됩니다.
device-family |
모듈의 스키마가 속한 디바이스 패밀리의 식별자(예: 장치별 스키마가 있는 모듈과 제품군별 스키마가 있는 모듈은 모두 네임스페이스에서 동일한 장치 제품군 식별자를 사용합니다.
메모:
공통 모듈은 네임스페이스의 디바이스 패밀리 식별자를 |
identifier |
모듈의 네임스페이스를 다른 모듈의 네임스페이스와 구분하는 문자열입니다. Junos 구성 및 명령 모듈에는 모듈의 스키마가 속한 구성 또는 명령 계층의 영역을 나타내는 식별자가 포함되어 있습니다. |
module-id |
모듈과 관련된 고유 식별자(예: |
module-name |
해당 파일에 포함된 YANG 모듈의 이름(예: |
release |
해당 모듈의 스키마가 지원되는 Junos OS 또는 Junos OS Evolved 릴리스입니다. |
type |
모듈의 유형입니다. 가능한 값은 다음과 같습니다.
|
표 4 에서는 서로 다른 릴리스에서 각 모듈의 네임스페이스 URI 및 접두사(모듈의 prefix
문에 정의됨)를 간략하게 설명합니다. Junos OS 릴리스 17.2부터 각 운영 명령 모듈의 접두사는 해당 모듈에 포함된 RPC의 명령 계층 영역을 반영합니다. 마찬가지로, Junos OS 릴리스 17.4R1부터 각 구성 YANG 모듈의 접두사는 해당 모듈에 포함된 구성 문 계층을 반영합니다. Junos YANG 확장 및 유형 모듈은 네임스페이스의 junos
디바이스 패밀리 식별자를 사용하지만, 모듈은 모든 디바이스 패밀리에 공통적입니다.
YANG 모듈 |
석방 |
네임스페이스 URI |
접두사 |
---|---|---|---|
구성 모듈 |
17.1 이하 |
http://yang.juniper.net/yang/1.1/jc |
|
17.2에서 17.3까지 |
http://yang.juniper.net/yang/1.1/jc/configuration/device-family/release |
|
|
17.4R1 이상 |
http://yang.juniper.net/device-family/conf/hierarchy |
|
|
운영 명령 모듈 |
17.1 이하 |
http://yang.juniper.net/yang/1.1/jrpc |
|
17.2에서 17.3까지 |
http://yang.juniper.net/yang/1.1/jrpc/module-name/device-family/release |
hierarchy |
|
17.4R1 이상 |
http://yang.juniper.net/device-family/rpc/hierarchy |
hierarchy |
|
junos-state 상태 모듈 |
22.2R1 이상 | http://yang.juniper.net/junos/state/state-area |
js-area |
|
24.2R1 이상 |
|
|
DDL 확장 모듈 |
17.1 이하 |
http://yang.juniper.net/yang/1.1/je/ |
|
17.2 이상 |
http://yang.juniper.net/yang/1.1/je/junos-extension/junos/release |
|
|
17.4R1 이상 |
http://yang.juniper.net/junos/common/ddl-extensions |
|
|
ODL 확장 모듈 |
17.1 이하 |
http://yang.juniper.net/yang/1.1/jodl |
|
17.2에서 17.3까지 |
http://yang.juniper.net/yang/1.1/jodl/junos-extension-odl/junos/release |
|
|
17.4R1 이상 |
http://yang.juniper.net/junos/common/odl-extensions |
|
|
메타데이터 주석 확장 모듈 |
22.2R1 이상 |
http://yang.juniper.net/junos/jcmd |
jcmd |
유형 모듈 |
17.4R1 이상 |
http://yang.juniper.net/junos/common/types |
|
Junos OS 릴리스 17.2부터 계층 수준에서 문을 [edit system services netconf]
구성하고 rfc-compliant
NETCONF 세션에서 구성 데이터를 요청하면 서버는 요소의 기본 네임스페이스 <configuration>
를 해당 YANG 모델과 동일한 네임스페이스로 설정합니다. 예를 들어:
<rpc> <get-config> <source> <running/> </source> </get-config> </rpc> ]]>]]> <nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/17.2R1/junos"> <nc:data> <configuration xmlns="http://yang.juniper.net/yang/1.1/jc/configuration/junos/17.2R1.13" junos:commit-seconds="1493761452" junos:commit-localtime="2017-05-02 14:44:12 PDT" junos:commit-user="user"> ... </configuration> </nc:data> </nc:rpc-reply> ]]>]]>
변경 내역 테이블
기능 지원은 사용 중인 플랫폼 및 릴리스에 따라 결정됩니다. 기능 탐색기 를 사용하여 플랫폼에서 기능이 지원되는지 확인합니다.
junos-qfx
디바이스 패밀리 식별자를
junos
사용합니다.
junos:command
.