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デバイスはYANG拡張をサポートし、YANGデータノードのインスタンスにメタデータに注釈を付けます。サポートされているデバイスでは、以下の拡張機能を使用できます。

  • junos-configuration-metadata—特定の設定操作の実行に使用できるジュニパーの注釈。

  • openconfig-metadata-OpenConfig 作業グループによって定義された注釈。

YANGメタデータのアノテーションとそれに対応するJSONおよびXMLエンコーディングは、RFC 7952の 「YANGによるメタデータの定義と使用」で定義されています。モジュールは ietf-yang-metadata YANG 拡張 annotationを定義します。

メモ:

YANGメタデータの注釈は、 設定モードコマンドを使用 annotate するなどして、設定に含まれるコメントであるJunos設定注釈と混乱させるべきではありません。

junos 構成メタデータ モジュールの概要

ジュニパーネットワークス junos-configuration-metadata モジュールは、Junos設定で特定の操作を実行できるメタデータの注釈を定義します。

注釈をサポートするデバイスは、 junos-configuration-metadata NETCONF 機能交換で次の機能をアドバタイズします。

表 1 は、注釈の概要を junos-configuration-metadata 示しています。アノテーションは、名前空間の http://yang.juniper.net/junos/jcmd URI と名前空間のプレフィックスを jcmd 使用します。

表 1:junos-configuration-metdata の注釈
アノテーション 説明
active false

指定された設定ステートメントを無効にします。ステートメントは設定に残りますが、デバイスの動作には影響しません。

true

指定された設定ステートメントをアクティブにします。以前に無効化されたステートメントをアクティブにするには、この注釈を使用します。

comment string

指定された設定ステートメントに関する追加情報を含むコメントを追加するか、値を空の文字列("")に設定して既存のコメントを削除します。

protect false

以前に適用 protect された状態を指定された設定ステートメントから削除し、そのステートメントの変更を許可します。

true

状態が削除されるまで、指定されたステートメントに今後の変更を protect 防ぎます。

設定データでの注釈の使用junos-configuration-metadata

YANG準拠の junos-configuration-metadata NETCONFセッションで注釈を使用して、設定上の特定のメタデータ操作を実行できます。サポートされる操作には、以下のセクションで説明するように、設定へのコメントの追加、設定階層とステートメントの無効化またはアクティブ化、設定階層とステートメントの保護が含まれます。

コンテナ(ステートメント階層)、リーフリスト、リーフステートメント、またはリストアイテム(識別子を持つステートメント)にアノテーションを適用 junos-configuration-metadata できます。リーフリストステートメントに注釈を適用する場合、個別のリーフリストエントリーではなく、リーフリストレベルでのみ適用できます。

表 2 で説明したように、YANG アノテーションは JSON または XML 設定データで使用できます。NETCONF <edit-config> 操作を使用して XML 構成データを読み込み、Junos XML プロトコル<load-configuration>操作を使用して、デバイス上の JSON または XML 構成データを読み込むことができます。

表 2: 構成メタデータの注釈の使用
エンコード 構文の

JSON(メタデータオブジェクト)

"module-name:annotation" : ""value

"junos-configuration-metadata:comment" : "comment string"

XML(XML 属性)

xmlns:prefix=namespace-uri

prefix:annotation="value"

<element-name xmlns:jcmd="http://yang.juniper.net/junos/jcmd" jcmd:comment="comment string">

コンフィギュレーションにコメントを追加する

アノテーションを使用して、 comment コンフィギュレーション・ステートメントにコメントを追加することができます。以下のセクションでは、JSON または XML 構成データを読み込む際にコメントを追加する方法について概要を説明します。

Json

JSON設定データを読み込む際にコメントを追加するには、そのステートメントの junos-configuration-metadata:comment メタデータオブジェクトにアノテーションを含め、コメントを文字列として指定します。コメントを削除するには、空の文字列("")を含めます。

以下の例では、1つのコメントを階層に関連付け、別のコメントを識別子を必要とするリストエントリーに関連付け、3番目のコメントを既存のリーフステートメントに関連付けます。

Xml

XML 設定データを読み込む際にコメントを追加するには、その構成要素の jcmd:comment 開始タグにアノテーションを XML 属性として含め、そのコメントを文字列として指定します。コメントを削除するには、空の文字列("")を含めます。

以下の例では、1つのコメントを階層に関連付け、別のコメントを識別子を必要とするリストエントリーに関連付け、3つ目のコメントをリーフステートメントに関連付けます。

コンフィギュレーション・ステートメントのアクティブ化または無効化

アノテーションを active 使用して、コンフィギュレーション・ステートメントを非アクティブにしたり、以前に無効化されたコンフィギュレーション・ステートメントをアクティブにすることができます。ステートメントを無効にするには、 を に設定 active します false。ステートメントをアクティブにするには、 を に設定 active します true

以下のセクションでは、JSONおよびXML設定データで設定ステートメントを無効化およびアクティブ化する方法について概要を説明します。

Json

JSONの設定オブジェクトを無効化または再有効化するには、そのステートメントの "junos-configuration-metadata:active" : (false | true) メタデータオブジェクトにアノテーションを含めます。

例えば、以下の RPC は階層を [edit protocols isis] 非アクティブ化し、リーフリスト ステートメントを apply-groups アクティブ化し、指定されたイベント ポリシーを変更してイベント スクリプト アクションを無効化し、raise-trap アクションを再有効化します。

Xml

設定オブジェクトを無効化または再有効化するには、その構成要素の jcmd:active="false" 開始タグに それぞれ または jcmd:active="true" アノテーションを XML 属性として含めます。

以下の RPC は階層を [edit protocols isis] 非アクティブ化し、リーフリスト ステートメントを apply-groups アクティブ化し、指定されたイベント ポリシーを変更してイベント スクリプト アクションを無効化し、raise-trap アクションを再有効化します。

保護または保護対策の設定ステートメント

選択した Junos 設定階層とステートメントを保護し、保護属性が削除されるまでステートメントの変更を防ぐことができます。

以下のセクションでは、JSON および XML 設定データにおける保護または保護対策の設定ステートメントの方法について概要を説明します。

Json

JSON の設定オブジェクトの保護または保護保護対策を行う場合は、そのステートメントの "junos-configuration-metadata:protect" : (true | false) メタデータ オブジェクトにアノテーションを含めます。

たとえば、以下の RPC は、階層レベル、apply-groupsリーフリスト ステートメント、リーフ ステートメントをhost-name保護[edit protocols isis]し、指定されたイベント ポリシーの保護属性を削除します。

Xml

構成オブジェクトの保護または保護保護を行うために、その構成要素の jcmd:protect="true" 開始タグに それぞれ または jcmd:protect="false" のアノテーションを XML 属性として含めます。

以下の RPC は、階層レベル、apply-groupsリーフリスト ステートメント、リーフ ステートメントをhost-name保護[edit protocols isis]し、指定されたイベント ポリシーの保護属性を削除します。

openconfig-metadata モジュールの概要

openconfig-metadata YANG モジュールには、OpenConfig 作業グループによって定義されたメタデータ注釈が含まれています。モジュールはアノテーションをprotobuf-metadata定義します。これにより、コンフィギュレーションに関するメタデータをコンフィギュレーション内に直接保存して、簡単に参照することができます。

Junosデバイスは、以下の openconfig-metadata:protobuf-metadata 制約を持つアノテーションをサポートしています。

  • アノテーションは 1 つだけ protobuf-metadata 、設定階層のルート レベルでのみ設定できます。

  • JSON 設定データでのみアノテーションを設定および表示できます。

  • アノテーションはバイナリ型ですが、デバイスにアノテーションを読み込む前に、base64エンコード方式でバイナリ値をエンコードする必要があります。

Junosデバイスは、デフォルトでアノテーションの設定を openconfig-metadata:protobuf-metadata サポートしています。ただし、デバイスが NETCONF 機能の機能を交換して設定データに出力できるようにするには、デバイスを次のように設定する必要があります。

  1. NETCONF サーバーは、機能交換で OpenConfig モジュールなどの標準 YANG モジュールをアドバタイズする必要があります。

  2. デバイスを設定して、YANG準拠のNETCONFセッションを適用します。

  3. (オプション)CLI で注釈を含む OpenConfig ステートメントを表示する場合は、OpenConfig スキーマを非表示にします。

  4. 設定をコミットします。

NETCONF 機能交換で標準 YANG モジュールをアドバタイズするようにデバイスを設定した後、注釈をサポート openconfig-metadata するデバイスはメッセージ内で次の機能を hello アドバタイズします。

gNMI set() 操作を使用して、JSON 構成データの openconfig-metadata:protobuf-metadata 一部としてアノテーションを読み込みます。

[構成データの メタデータの注釈を表示] の説明に従って JSON 構成データを要求すると、Junos 構成データの後に、アノテーションを含む OpenConfig 構成が出力されます。例えば:

構成データでのメタデータの注釈の表示

Junos デバイスは、YANG に準拠した NETCONF セッション内の Junos 設定で YANG メタデータの注釈を出力します。NETCONF セッションを YANG に準拠するように設定し、 または <get-configuration/> RPC を使用して<get-config/>設定を取得すると、デバイスは RFC 7952、 YANG によるメタデータの定義と使用に従ってアノテーションをエンコードします。

RFC 7952に従ってエンコードされたYANG注釈を使用して設定を表示するには:

  1. デバイスを設定して、YANG準拠のNETCONFセッションを適用します。
  2. または <get-configuration> RPC を使用して設定を<get-config>取得します。
    • NETCONF <get-config> 操作を使用して XML 構成データを取得します。

    • Junos XML プロトコル <get-configuration> 操作を使用して、JSON または XML 構成データを取得します。

    メモ:

    Junosデバイスは、JSONエンコーディングに対する openconfig-metadata:protobuf-metadata アノテーションのみをサポートしています。このため、gNMI get() 操作または Junos XML プロトコル <get-configuration format="json"> RPC のみを使用して、JSON 構成データのアノテーションを表示できます。