Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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 デバイスファミリーの識別子が使用されます。

表 1: Junos デバイス ファミリ

デバイスファミリー識別子

Junos OSプラットフォーム

Junos OS Evolvedプラットフォーム

Junos

ACXシリーズ
EXシリーズ(一部のプラットフォーム)
MX シリーズ
PTXシリーズ

ACXシリーズ
PTXシリーズ
QFX シリーズ(23.4R2 以降)

junos-es

Jシリーズ
LNシリーズ
SRXシリーズ

junos-ex

EXシリーズ(一部のプラットフォーム)

junos-qfx

QFX シリーズ

QFX シリーズ(23.2 以前)

手記:

同じシリーズ内の異なるプラットフォームは、異なるデバイスファミリに分類される場合があります。Junos OS Evolvedリリース23.4R1以前を実行しているデバイスやJunos OSを実行しているデバイスでは、デバイスで show system information 動作モードコマンドまたは <get-system-information/> RPCを実行することで、特定のデバイスのファミリーを検証できます。コマンド出力の Family フィールドの値または RPC 応答の <os-name> 要素は、デバイス ファミリを示します。

Junos OS リリース 17.4R1 以降、設定 YANG モジュールはルート モジュールに分割され、ルート モジュールには複数の小さなモジュールが追加されます。さらに、ネイティブのJunos YANGモジュールでは、モジュール名、ファイル名、ネームスペースに新しい命名規則が使用されます。モジュール名とファイル名には、デバイスファミリーと、モジュール内のスキーマが属する設定またはコマンド階層の領域が含まれます。モジュール ファイル名には、改訂日も含まれます。 表 2 は、Junos デバイスにネイティブな YANG モジュールの概要と、異なるモジュール名が使用されているリリースを示しています。

手記:

ファミリ固有のスキーマを必要とせず、すべてのプラットフォームに共通のモジュールは、モジュールの名前、ファイル名、および名前空間に junos デバイス ファミリを使用します。

表2:ジュニパーネットワークスネイティブYANGモジュール

Junos YANG モジュール

形容

モジュール名

リリース

構成モジュール

Junos構成階層のスキーマを定義します。

Junos OSリリース17.4R1以降、設定YANGモジュールはルートモジュール(family-conf-root)に分割され、複数の小さなモジュールで拡張されます。

configuration

14.2 から 17.3

family-conf-hierarchy

17.4R1 以降

操作コマンドモジュール

は、運用コマンド階層と、運用モードコマンドのリモートプロシージャコール(RPC)を定義するモジュールの集合グループを表します。コマンド階層の異なる領域に対して個別のモジュールがあります。

juniper-command

16.1 から 17.3

family-rpc-hierarchy

17.4R1 以降

junos-state 状態モジュール 運用状態データ用に厳選された YANG モジュールのセット。 junos-state-area 22.2R1 以降

genstate 状態モジュール

運用状態のYANGデータモデルを定義します。モデルは、gNMI subscribe RPC を通じて show コマンド データのサブセットを公開します。 genstate モジュールは、各運用状態領域のモジュールによって拡張された最上位のルートモジュールで構成されています。

junos-genstate-root-tag

24.2R1以降(Junos OS Evolved)

DDL 拡張モジュール

Junos デバイス用のデータ定義言語(DDL)ステートメントが含まれます。

このモジュールには、特別なキーワードを使用する構成階層の制約を識別する must および must-message キーワードが含まれています。このモジュールには、カスタム RPC に必要なステートメントも含まれています。

junos-extension

15.1 から 17.3

junos-common-ddl-extensions

17.4R1 以降

ODL 拡張モジュール

Junosデバイスで実行されるRPC用にフォーマットされたASCII出力を作成およびカスタマイズするために使用できる出力定義言語(ODL)ステートメントが含まれます。

junos-extension-odl

16.1 から 17.3

junos-common-odl-extensions

17.4R1 以降

メタデータ注釈拡張モジュール

構成操作のメタデータ注釈を定義します。

注釈は、RFC 7952 Defined and Use Metadata with YANG で定義されています。

junos-configuration-metadata

22.2R1以降(Junos OS Evolved)

型モジュール

YANG 型の定義が含まれています。

junos-common-types

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以降、Junos OS EvolvedネイティブYangモジュールをジュニパーネットワークスのダウンロードサイトとGitHubで公開しています。以前のリリースでは、デバイス上でモジュールを生成する必要があります。

Junos OS リリース 17.1 以前では、ジュニパーネットワークスの Web サイトおよび 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 モジュールのスキーマの範囲をまとめたものです。

表 3: Junos OS YANG スキーマの適用範囲

Junos OSリリース

ダウンロードされたモジュールのスキーマの範囲

生成されたモジュール内のスキーマのスコープ

17.1 およびそれ以前

すべてのデバイス

デバイス

17.2 から 17.3

デバイスファミリー

デバイス

17.4R1 以降

デバイスファミリー

デバイスファミリー

Junos OS Evolvedリリース23.4R1以降、Junos OS Evolved YANGモジュールはジュニパーネットワークスのダウンロードサイトとGitHubで公開されています。以前のリリースでは、デバイス上でモジュールを生成する必要があります。

さらに、Junos OSリリース23.4R1およびJunos OS Evolvedリリース23.4R1以降、特定のOSとリリースのすべてのYANGデータモデルを、単一のダウンロードパッケージとGitHubリポジトリフォルダで提供します。パッケージとリポジトリフォルダには、次のものが含まれます。

  • ネイティブ構成、状態、および RPC データ モデル

  • そのOSでサポートされているOpenConfigの構成と状態モデル

  • そのOSでサポートされているIETFモデル

Junos OS YANGモジュールをダウンロードまたは生成する方法の詳細については、次を参照してください :ジュニパーネットワークスのYANGモジュールを使用する

Junos YANG モジュールの名前空間とプレフィックスについて

Junos OS リリース 17.1 以前では、Junos YANG モジュールは、各モジュールの名前空間を区別するために一意の識別子を使用します。

Junos OS リリース 17.2R1 以降、Junos YANG モジュールはデバイス ファミリーに固有です。特定のリリースの異なるデバイスファミリーに対して個別のYANGモジュールをサポートするために、YANGモジュールは、識別子に加えて、モジュール名、デバイスファミリー、Junos OSリリース文字列を含む名前空間を使用します。例えば:

Junos OS リリース 17.4R1 以降、名前空間は簡素化され、デバイス ファミリ、モジュール タイプ、および各モジュールに固有の識別子、モジュールの名前空間を他のモジュールの名前空間と区別する識別子が含まれるようになりました。

次の定義は、その変数が表示される名前空間のすべてのバージョンに適用されます。

device-family

モジュール内のスキーマが属するデバイス ファミリの識別子 ( junosjunos-esjunos-exjunos-qfxなど)。さまざまなデバイスファミリの概要を 表1に示します。

デバイス固有のスキーマを持つモジュールとファミリ固有のスキーマを持つモジュールは、どちらも名前空間で同じデバイス ファミリ識別子を使用します。

手記:

共通モジュールは名前空間で junos デバイス ファミリ識別子を使用しますが、モジュールはすべてのデバイス ファミリに共通です。

identifier

モジュールの名前空間を他のモジュールの名前空間と区別する文字列。

Junosの設定およびコマンドモジュールには、モジュール内のスキーマが属する設定またはコマンド階層の領域を示す識別子が含まれています。 Genstate モジュールは、モジュール内の操作状態領域を示す識別子を使用します。共通モジュールは、モジュール名の差別化子を識別子として使用します ( odl-extensions など)。

module-id

モジュールに固有の一意の識別子 ( jcjrpcjejodlなど)。

module-name

そのファイルに含まれる YANG モジュールの名前( configurationjunos-extension など)。個々の juniper-command モジュールは、名前空間で独自の一意のモジュール名 ( show-class-of-service など) を使用します。

release

そのモジュールのスキーマがサポートされているJunos OSまたはJunos OS Evolvedリリース。

type

モジュールのタイプ。可能な値は次のとおりです。

  • conf- 設定の指定された領域のスキーマを定義する設定 YANG モジュール。

  • rpc- コマンド階層の指定されたエリアで、運用コマンドのRPCを定義する操作コマンド YANG モジュール。

  • common- すべてのデバイスファミリーに共通する拡張モジュールまたはタイプモジュール。

  • genstate- 運用状態データを定義する YANG モジュール。

表 4 は、各リリースにおける各モジュールの名前空間 URI とプレフィックス (モジュールの prefix ステートメントで定義) の概要を示しています。Junos OS リリース 17.2 以降、各運用コマンド モジュールのプレフィックスは、そのモジュールに含まれる RPC のコマンド階層領域を反映します。同様に、Junos OS Release 17.4R1以降、各設定YANGモジュールのプレフィックスは、そのモジュールに含まれる設定ステートメント階層を反映します。Junos YANG 拡張機能と型モジュールは、名前空間で junos デバイス ファミリ識別子を使用しますが、モジュールはすべてのデバイス ファミリに共通です。

表 4: Junos YANG モジュールの名前空間とプレフィックス

ヤンモジュール

解放

名前空間 URI

接頭辞

構成モジュール

17.1 およびそれ以前

http://yang.juniper.net/yang/1.1/jc

jc

17.2 から 17.3

http://yang.juniper.net/yang/1.1/jc/configuration/device-family/release

jc

17.4R1 以降

http://yang.juniper.net/device-family/conf/hierarchy

jc(ルートモジュール)

jc-hierarchy

操作コマンドモジュール

17.1 およびそれ以前

http://yang.juniper.net/yang/1.1/jrpc

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

genstate 状態モデル

24.2R1 以降

http://yang.juniper.net/junos/genstate/root-tag

jgs(ルートモジュール)

DDL 拡張モジュール

17.1 およびそれ以前

http://yang.juniper.net/yang/1.1/je/

junos

17.2 以降

http://yang.juniper.net/yang/1.1/je/junos-extension/junos/release

junos

17.4R1 以降

http://yang.juniper.net/junos/common/ddl-extensions

junos

ODL 拡張モジュール

17.1 およびそれ以前

http://yang.juniper.net/yang/1.1/jodl

junos-odl

17.2 から 17.3

http://yang.juniper.net/yang/1.1/jodl/junos-extension-odl/junos/release

junos-odl

17.4R1 以降

http://yang.juniper.net/junos/common/odl-extensions

junos-odl

メタデータ注釈拡張モジュール

22.2R1 以降

http://yang.juniper.net/junos/jcmd jcmd

型モジュール

17.4R1 以降

http://yang.juniper.net/junos/common/types

jt

Junos OS リリース 17.2 以降、[edit system services netconf]階層レベルで rfc-compliant ステートメントを設定し、NETCONF セッションで設定データをリクエストすると、サーバは <configuration> 要素のデフォルトの名前空間を、対応する YANG モデルと同じ名前空間に設定します。例えば:

変更履歴テーブル

機能のサポートは、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がプラットフォームでサポートされているかどうかを判断します。

解放
形容
23.4R2-EVO
Junos OS Evolvedリリース23.4R2以降、QFXシリーズデバイスのネイティブYANGモジュールは、 junos-qfxの代わりに junosデバイスファミリー識別子を使用するようになりました。
23.4R1 および 23.4R1-EVO
Junos OSリリース23.4R1およびJunos OS Evolvedリリース23.4R1以降、特定のOSとリリースのすべてのYANGデータモデルが、単一のダウンロードパッケージとGitHubリポジトリフォルダで提供されます。
23.4R1-EVO
Junos OS Evolvedリリース23.4R1以降、Junos OS EvolvedネイティブYANGモジュールがジュニパーネットワークスのダウンロードサイトとGitHubで公開されています。以前のリリースでは、デバイス上でモジュールを生成する必要があります。
22.4R1 および 22.4R1-EVO
Junos OS リリース 22.4R1 および Junos OS Evolved リリース 22.4R1 以降、RPC を定義する YANG モジュールは、拡張機能とともに出力されるスキーマに junos:command 拡張ステートメントを含めます。
17.4R1
Junos OS リリース 17.4R1 以降、設定 YANG モジュールは、ルート モジュールに分割され、その後複数の小さなモジュールで拡張され、ネイティブの Junos OS YANG モジュールでは、モジュール名、ファイル名、名前空間に新しい命名規則が使用されます。
17.4R1
Junos OS リリース 17.4R1 以降、ローカル デバイスで生成される YANG モジュールには、デフォルトでファミリー固有のスキーマが含まれています。これは特定のデバイス ファミリーのすべてのデバイスで同一です。
17.2R1
Junos OS リリース 17.2 以降、Junos OS YANG モジュールはデバイス ファミリーに固有であり、各モジュールの名前空間はモジュール内のスキーマが属するデバイス ファミリーを反映します。
17.2R1
Junos OS リリース 17.2 以降、各運用コマンド モジュールのプレフィックスは、そのモジュールに含まれる RPC のコマンド階層領域を反映します。