YANG 모듈에 Junos 이해
주니퍼 네트웍스 구성 계층, 운영 명령 및 Junos 확장에 YANG 모델을 사용하여 Junos 디바이스의 스키마를 게시합니다. 다음 섹션에서는 네이티브 Junos YANG 모듈에 대해 설명합니다.
Junos YANG 모듈 개요
주니퍼 네트웍스 Junos 디바이스에 대한 YANG 확장 및 유형뿐만 아니라 구성 계층 및 운영 명령을 정의하는 YANG 모듈을 제공합니다. 릴리스 17.2 Junos OS 시작하여 Junos YANG 모듈은 디바이스 패밀리에 따라 다릅니다. 표 1 은 다양한 Junos 디바이스 체계에 대한 식별자를 개략적으로 설명하고 각 체계에 어떤 플랫폼이 포함되어 있는지 나타냅니다.
디바이스 제품군 식별자 |
지원되는 플랫폼 |
---|---|
Junos |
ACX 시리즈, EX 시리즈(특정 플랫폼), MX 시리즈, PTX 시리즈 |
junos-es |
J 시리즈, LN 시리즈, SRX 시리즈 |
junos-ex |
EX 시리즈(특정 플랫폼) |
junos-qfx |
QFX 시리즈 |
동일한 시리즈 내의 다른 플랫폼은 다른 디바이스 체계에 따라 분류될 수 있습니다. 운영 모드 명령 또는 디바이스에서 RPC를 실행하여 특정 디바이스에 show system information
대한 패밀리를 <get-system-information/>
확인할 수 있습니다. 명령 출력에서 Family
필드 값 또는 <os-name>
RPC 응답의 요소는 디바이스 패밀리를 나타냅니다.
Junos OS 릴리스 17.4R1부터 구성 YANG 모듈은 여러 개의 작은 모듈에 의해 강화되는 루트 모듈로 분할되고, 네이티브 Junos YANG 모듈은 모듈 이름, 파일명 및 네임스페이스에 대한 새로운 명명 규칙을 사용합니다. 모듈 이름과 파일 이름은 디바이스 패밀리와 모듈의 스키마가 속한 구성 또는 명령 계층 영역을 포함합니다. 또한 모듈 파일 이름에는 수정 날짜가 포함됩니다. 표 2 는 Junos 디바이스에 네이티브인 YANG 모듈을 요약하고 다른 모듈 이름이 사용되는 릴리스를 식별합니다.
Junos YANG 모듈 |
설명 |
모듈 이름 |
릴리스 |
---|---|---|---|
구성 모듈 |
Junos 구성 계층에 대한 스키마를 정의합니다. 릴리스 17.4R1 Junos OS 시작하여 구성 YANG 모듈은 여러 개의 소형 모듈로 강화된 루트 모듈로 분리됩니다. |
|
14.2 ~ 17.3 |
|
17.4R1 이상 |
||
운영 명령 모듈 |
운영 모드 명령에 대한 원격 프로시저 호출(RPC)을 정의하는 운영 명령 계층 및 모듈의 집합 그룹을 나타냅니다. 명령 계층의 다른 영역에는 별도의 모듈이 있습니다. |
|
16.1~ 17.3 |
|
17.4R1 이상 |
||
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에서 YANG을 사용한 메타데이터 정의 및 사용에서 정의됩니다. |
junos-configuration-metadata |
22.2R1 이상(Junos OS Evolved) |
유형 모듈 |
YANG 유형에 대한 정의 포함 |
|
17.4R1 이상 |
여러 릴리스에서 여러 디바이스 체계에 대한 YANG 모듈을 지원하기 위해 다운로드한 모듈은 디바이스 패밀리별로 구성되며, 각 모듈의 이름, 파일명 및 네임스페이스는 모듈의 스키마가 속한 디바이스 패밀리를 반영합니다. 모듈 획득에 대한 정보는 YANG 모듈 다운로드 및 생성 Junos. 모듈 네임스페이스에 대한 자세한 내용은 Junos YANG 모듈 네임스페이스 및 접두사 이해를 참조하십시오.
YANG 모듈 다운로드 및 Junos 생성
다음을 통해 Junos YANG 모듈을 검색할 수 있습니다.
-
https://www.juniper.net/support/downloads 주니퍼 네트웍스 웹 사이트에서 모듈 다운로드
-
https://github.com/Juniper/yang 의 YANG에 대한 주니퍼 네트웍스 GitHub 리포지토리에서 모듈 다운로드
-
주니퍼 네트웍스 디바이스에서 모듈 생성
릴리스 17.1 이전 Junos OS 주니퍼 네트웍스 웹 사이트와 GitHub에 게시되는 Junos OS 구성 및 명령 계층을 위한 YANG 모듈은 해당 Junos OS 릴리스를 실행하는 모든 디바이스에 대한 스키마를 정의합니다. 반대로 로컬 디바이스에서 생성된 YANG 모듈은 네이티브 모듈과 디바이스에 추가된 표준 또는 사용자 지정 모듈의 노드를 포함하여 해당 디바이스에 특정한 스키마를 정의합니다.
릴리스 17.2 Junos OS 시작하여 Junos YANG 모듈은 디바이스 패밀리에 따라 지정되며 각 모듈의 네임스페이스는 모듈의 스키마가 속한 디바이스 패밀리를 반영합니다. 결과적으로, 주니퍼 네트웍스 웹 사이트에 게시되고 주어진 릴리스에 대한 YANG 모듈을 포함하는 타르 아카이브에는 각 디바이스 패밀리의 모듈에 대한 별도의 디렉터리와 모든 디바이스 체계에 공통된 모듈에 대한 공통 디렉토리가 포함됩니다. 각 제품군별 디렉터리에서는 디바이스 패밀리 식별자를 디렉터리 이름으로 사용하고 해당 패밀리의 플랫폼에서 지원되는 구성 및 운영 명령 모듈을 포함합니다. 디바이스 제품군 식별자는 표 1에 정의되어 있습니다. 릴리스 17.Junos OS 2를 실행하는 로컬 디바이스에서 생성된 YANG 모듈은 여전히 해당 디바이스에 대한 특정 스키마를 정의합니다.
릴리스 17.4R1 Junos OS 시작하여 로컬 디바이스에서 생성된 YANG 모듈은 기본적으로 해당 디바이스 패밀리의 모든 디바이스에서 동일한 제품군별 스키마를 포함합니다. 디바이스별 모듈을 생성하려면 계층 수준에서 구성 문을 [edit system services netconf yang-modules]
구성 device-specific
합니다.
표 3 에는 여러 Junos OS 릴리스에 대한 다운로드 및 생성된 YANG 모듈의 스키마 범위가 요약되어 있습니다.
Junos OS 릴리스 |
다운로드된 모듈의 스키마 범위 |
생성된 모듈의 스키마 범위 |
---|---|---|
17.1 이상 |
모든 디바이스 |
장치 |
17.2 ~ 17.3 |
디바이스 제품군 |
장치 |
17.4R1 이상 |
디바이스 제품군 |
디바이스 제품군 |
Junos OS YANG 모듈을 다운로드하거나 생성하는 방법에 대한 자세한 내용은 주니퍼 네트웍스 YANG 모듈 사용을 참조하십시오.
YANG 모듈 네임스페이스 및 접두사 Junos 이해하기
Junos OS 릴리스 17.1 및 이전 버전에서 Junos YANG 모듈은 고유 식별자를 사용하여 각 모듈의 네임스페이스를 구별합니다.
namespace "http://yang.juniper.net/yang/1.1/module-id;
릴리스 17.2R1 Junos OS 시작하여 Junos YANG 모듈은 디바이스 패밀리에 따라 다릅니다. 주어진 릴리스에서 여러 디바이스 체계에 대해 고유한 YANG 모듈을 지원하기 위해 YANG 모듈은 식별자 외에 모듈 이름, 디바이스 패밀리 및 Junos OS 릴리스 문자열을 포함하는 네임스페이스를 사용합니다. 예를 들어:
namespace "http://yang.juniper.net/yang/1.1/module-id/module-name/device-family/release";
릴리스 17.4R1 Junos OS 시작하여 네임스페이스가 단순화되어 디바이스 패밀리, 모듈 유형 및 각 모듈 고유의 식별자를 포함하며 모듈의 네임스페이스를 다른 모듈과 구별합니다.
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
문에 의해 정의됨)를 간략하게 설명합니다. 릴리스 17.2 Junos OS 시작하여 각 운영 명령 모듈의 접두사에는 해당 모듈에 포함된 RPC의 명령 계층 영역이 반영됩니다. 마찬가지로, 릴리스 17.4R1 Junos OS 시작하여 각 구성 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 |
|
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:command
.