Junos XMLプロトコルを使用して、設定グループとインターフェイス範囲の出力形式を指定します
<groups>
tag 要素は、[edit groups]
設定階層に対応します。これは、設定グループを表すタグ要素を囲み、各設定グループには、階層内の複数の場所で適切な設定ステートメントのセットが含まれています。設定ステートメントまたは<apply-groups>
タグ要素を使用してapply-groups
、適切な場所に設定グループを挿入し、グループに定義されたステートメントを直接挿入するのと同じ効果を実現します。設定グループが適用される設定階層のセクションは、グループのステートメントを継承すると言われます。
階層レベルで定義されたグループに加えて、Junos OSではと呼ばれる [edit groups]
グループが junos-defaults
事前に定義されています。このグループには、ルーティング、スイッチング、またはセキュリティ プラットフォームの基本操作に適していると判断された設定ステートメントが含まれます。デフォルトでは、このグループのステートメントは、設定を表示するCLIコマンドの出力にも、Junos XMLプロトコルサーバーからタグエレメントに対して <get-configuration>
返される出力にも表示されません。ユーザー定義の設定グループとその junos-defaults
グループの詳細については、 CLIユーザーガイドを参照してください。
<interface-range>
tag 要素は、[edit interfaces interface-range]
設定階層に対応します。インターフェイス範囲は、共通の設定プロファイルを適用できるインターフェイスのセットです。インターフェイスがインターフェイス範囲のメンバーである場合、その範囲に設定された設定ステートメントを継承します。
以下のセクションでは、Junos XML プロトコル セッションを通じて要求される設定データ内の継承要素内で、グループおよびインターフェイス範囲の設定を表示する方法について説明します。また、グループまたはインターフェイス範囲から継承された構成要素の送信元グループまたはインターフェイス範囲を表示する方法についても説明します。
設定グループとインターフェイス範囲を継承するか、別々に表示するかの指定
デフォルトでは、Junos XML プロトコル サーバーは、各ユーザー定義の構成グループのタグ要素を、適用先の要素の子として表示するのではなく、タグ要素の子<groups>
として表示します。同様に、サーバーは、各ユーザー定義インターフェイス範囲のタグ要素を、インターフェイス範囲のメンバーである要素の子として表示するのではなく、タグ要素の子<interface-range>
として表示します。この表示モードは、CLI 設定モード show
コマンドのデフォルトの動作と類似しており、設定内で と [edit interfaces interface-range]
を別々の階層として表示します[edit groups]
。
Junos XML プロトコル サーバーが 、 、または 要素を別々に表示<groups>
せず、ユーザー定義グループから継承されたタグ要素または継承するタグ要素内のインターフェイス範囲で囲むように要求するために、<interface-range>
<apply-groups>
クライアント アプリケーションはタグに<get-configuration>
属性inherit="inherit"
を含めます。要求を tag 要素で<rpc>
囲みます。
<rpc> <get-configuration inherit="inherit"/> <!-- OR --> <get-configuration inherit="inherit"> <!-- tag elements for the configuration elements to return --> </get-configuration> </rpc>
Junos XML プロトコル サーバーに、グループからjunos-defaults
継承されたタグ要素、およびユーザー定義の構成グループとインターフェイス範囲を含めるように要求するために、クライアント アプリケーションはタグに<get-configuration>
属性を含めますinherit="defaults"
。
<rpc> <get-configuration inherit="defaults"/> <!-- OR --> <get-configuration inherit="defaults"> <!-- tag elements for the configuration elements to return --> </get-configuration> </rpc>
tag 要素で囲む tag 要素の詳細については、 Junos XML プロトコル セッションで<get-configuration>
返す構成データの範囲の指定を参照してください。
クライアントに 属性が含まれている場合 inherit="inherit"
、出力には次の CLI 設定モード コマンドからの出力と同じ情報が含まれます。出力には、グループから継承された junos-defaults
構成要素は含まれません。
user@host# show | display inheritance | except ##
クライアントに 属性が含まれている場合 inherit="defaults"
、出力には次のCLI設定モードコマンドからの出力と同じ情報が含まれます。
user@host# show | display inheritance defaults | except ##
いずれの場合も、Junos XML プロトコルサーバーは、要求された形式に応じて、その出力を tag 要素と、tag 要素(Junos XML タグ付き出力用)、tag 要素(フォーマット済み ASCII 出力<rpc-reply>
用)、<configuration-set>
tag 要素(設定モード set コマンド用)、<configuration-text>
または <configuration-json>
tag 要素(JSON 形式<configuration>
データ用)のいずれかで囲みます。開始<configuration>
タグの属性については、 Junos XMLプロトコルセッションにおける設定情報リクエストのソースの指定を参照してください。
<rpc-reply xmlns:junos="URL"> <configuration attributes> <!-- Junos XML tag elements representing configuration elements --> </configuration> <!-- OR --> <configuration-text> <!-- formatted ASCII configuration statements --> </configuration-text> <!-- OR --> <configuration-set> <!-- configuration mode commands --> </configuration-set> <!-- OR --> <configuration-json> <!-- JSON-formatted configuration data --> </configuration-json> </rpc-reply>
属性はinherit
、タグまたは開始<get-configuration>
タグで<get-configuration/>
次の1つ以上の属性と組み合わせることができます。
changed
については 、 Junos XMLプロトコルを使用した構成要素の変更インジケータのリクエストを参照してください。database
これについては、 Junos XMLプロトコルセッションでの設定情報リクエストのソースの指定で説明しています。format
これについては、 Junos XMLプロトコルセッションでの設定データの出力形式の指定で説明していますgroups
これについては、 Junos XMLプロトコルを使用した設定グループとインターフェイス範囲の出力形式の指定で説明しています。interface-ranges
これについては、 Junos XMLプロトコルを使用した設定グループとインターフェイス範囲の出力形式の指定で説明しています。junos:key
これについては、 Junos XMLプロトコルを使用した構成要素の識別子インジケータのリクエストで説明しています。
アプリケーションは、識別子のインジケータを要求した後に属性 inherit
を含めることもできます( Junos XMLプロトコルを使用した構成要素の識別子インジケータのリクエストを参照)。
継承された設定グループ要素のソースグループの表示
Junos XML プロトコル サーバーに、各構成要素の継承元の設定グループを示すように要求するために、クライアント アプリケーションは、 属性と inherit
groups="groups"
タグ内の <get-configuration>
属性を組み合わせます。要求を tag 要素で <rpc>
囲みます。
<rpc> <get-configuration inherit="(defaults | inherit)" groups="groups"/> <!-- OR --> <get-configuration inherit="(defaults | inherit)" groups="groups"> <!-- tag elements indicating the configuration elements to return --> </get-configuration> </rpc>
tag 要素で囲む tag 要素の詳細については、 Junos XML プロトコル セッションで<get-configuration>
返す構成データの範囲の指定を参照してください。
inherit
と groups="groups"
の両方の属性をリクエストに含めると、Junos XML プロトコルサーバーは継承要素内に各設定グループ要素を表示し、継承された要素にはソースグループを示す情報が含まれます。出力の形式によって、結果の構成でソース グループ情報がどのように表示されるかが決まります。
出力がJunos XMLタグ要素でタグ付けされている(属性が含まれるformat="xml"
か、属性がformat
省略されている)場合、Junos XMLプロトコルサーバーは、設定グループから継承された構成要素の開始タグに属性junos:group="source-group"
を含めます。応答は および タグ要素で<configuration>
<rpc-reply>
囲まれます。
<rpc-reply xmlns:junos="URL"> <configuration attributes> <!-- For each inherited element --> <!-- opening-tags-for-parents-of-the-element --> <inherited-element junos:group="source-group"> <inherited-child-of-inherited-element junos:group="source-group"> <!-- inherited-children-of-child junos:group="source-group" --> </inherited-child-of-inherited-element> </inherited-element> <!-- closing-tags-for-parents-of-the-element --> </configuration> </rpc-reply>
出力がASCIIテキスト形式(format="text"
属性が含まれている)の場合、Junos XMLプロトコルサーバーは、継承された各要素のすぐ上にソースグループに関する情報を含む3行のコメント行を挿入します。応答は および タグ要素で<configuration-text>
<rpc-reply>
囲まれます。
<rpc-reply xmlns:junos="URL"> <configuration-text> */ For each inherited element */ /* parent levels for the element */ ## ## 'inherited-element' was inherited from group 'source-group' ## inherited-element { ## ## 'inherited-child' was inherited from group 'source-group' ## inherited-child { ... child statements of inherited-child ... } } /* closing braces for parent levels of the element */ </configuration-text> </rpc-reply>
出力がJSON形式(format="json"
属性が含まれている)の場合、Junos XMLプロトコルサーバーは、継承された要素の属性リストに属性"junos:group" : "source-group"
を含めます。応答は および タグ要素で<configuration-json>
<rpc-reply>
囲まれます。
<rpc-reply xmlns:junos="URL"> <configuration-json> { "configuration" : { /* JSON objects for parent levels of the element */ "inherited-child" : { "@" : { "junos:group" : "source-group" }, "inherited-object" : [ { "@" : { "junos:group" : "source-group" }, "name" : "identifier" } ], "@inherited-statement" : { "junos:group" : "source-group" } } /* closing braces for parent levels of the element */ } } </configuration-json> </rpc-reply>
Junos OS リリース 16.1 以降、Junos OS を実行するデバイスは、シリアル化の新しいデフォルト実装を使用して、JSON 形式の設定データを出力します。新しい既定値では、フィールド名 "attribute" の代わりに "@" 記号を使用して属性を示します。
属性を groups="groups"
属性と inherit="inherit"
組み合わせた場合、XML出力には、次のCLI設定モードコマンドからの出力と同じ情報が含まれます。出力には、グループから継承された junos-defaults
構成要素は含まれません。
user@host# show | display inheritance | display xml groups
属性を groups="groups"
属性と inherit="defaults"
組み合わせた場合、XML 出力には、次の CLI コンフィギュレーション モード コマンドからの出力と同じ情報が含まれます。
user@host# show | display inheritance defaults | display xml groups
および 属性はinherit
、 タグまたは開始<get-configuration>
タグで<get-configuration/>
、次の 他の属性の 1 つ以上と組み合わせるgroups
ことができます。
changed
これについては、 Junos XMLプロトコルを使用した構成要素の変更インジケータのリクエストで説明しています。database
これについては、 Junos XMLプロトコルセッションでの設定情報リクエストのソースの指定で説明しています。format
これについては、 Junos XMLプロトコルセッションでの設定データの出力形式の指定で説明しています。アプリケーションは、Junos XMLタグ付き、フォーマット済みASCII、またはJSON出力のいずれかを要求できます。interface-ranges
これについては、 Junos XMLプロトコルを使用した設定グループとインターフェイス範囲の出力形式の指定で説明しています。junos:key
これについては、 Junos XMLプロトコルを使用した構成要素の識別子インジケータのリクエストで説明しています。
アプリケーションでは、識別子のインジケータを要求した後に、 属性と groups
属性を含めるinherit
こともできます(Junos XML プロトコルを使用した構成要素の識別子インジケータのリクエストを参照)。
継承された構成要素の送信元インターフェイス範囲の表示
Junos XML プロトコル サーバーに、各構成要素の継承元のインターフェイス範囲を示すように要求するために、クライアント アプリケーションは、 inherit
属性と interface-ranges="interface-ranges"
タグ内の <get-configuration>
属性を組み合わせます。要求を tag 要素で <rpc>
囲みます。
<rpc> <get-configuration inherit="inherit" interface-ranges="interface-ranges"/> <!-- OR --> <get-configuration inherit="inherit" interface-ranges="interface-ranges"> <!-- tag elements for the configuration elements to return --> </get-configuration> </rpc>
tag 要素で囲む tag 要素の詳細については、 Junos XML プロトコル セッションで<get-configuration>
返す構成データの範囲の指定を参照してください。
要求に と interface-ranges="interface-ranges"
の両方のinherit
属性を含めると、Junos XML プロトコル サーバーは、継承要素内に各インターフェイス範囲構成要素を表示し、継承された要素には送信元インターフェイス範囲を示す情報が含まれます。出力の形式によって、結果の設定で送信元インターフェイスの範囲情報がどのように表示されるかが決まります。
出力がJunos XMLタグ要素でタグ付けされている(属性が含まれるformat="xml"
か、属性がformat
省略されている)場合、Junos XMLプロトコルサーバーは、インターフェイス範囲から継承された構成要素の開始タグに属性junos:interface-range="source-interface-range"
を含めます。応答は および タグ要素で<configuration>
<rpc-reply>
囲まれます。
<rpc-reply xmlns:junos="URL"> <configuration attributes> <interfaces> <!-- For each inherited element --> <interface junos:interface-range="source-interface-range"> <inherited-element junos:interface-range="source-interface-range"> <inherited-child-of-inherited-element junos:interface-range="source-interface-range"> <!-- inherited-children-of-child junos:interface-range="source-interface-range" --> </inherited-child-of-inherited-element> </inherited-element> </interface> </interfaces> </configuration> </rpc-reply>
出力がフォーマットされたASCIIテキスト(format="text"
属性が含まれる)の場合、Junos XMLプロトコルサーバーは、継承された各要素のすぐ上に、ソースインターフェイス範囲に関する情報を含む3行のコメント行を挿入します。応答は および タグ要素で<configuration-text>
<rpc-reply>
囲まれます。
<rpc-reply xmlns:junos="URL"> <configuration-text> interfaces { <!-- For each inherited element --> ## ## 'interface-name' was expanded from interface-range 'source-interface-range' ## interface-name { ## ## 'inherited-element' was expanded from interface-range 'source-interface-range' ## inherited-element { inherited-child { ... child statements of inherited-child ... } } } } </configuration-text> </rpc-reply>
出力がJSON形式(format="json"
属性が含まれている)の場合、Junos XMLプロトコルサーバーは、継承された要素の属性リストに属性"junos:interface-range" : "source-interface-range"
を含めます。応答は および タグ要素で<configuration-json>
<rpc-reply>
囲まれます。
<rpc-reply xmlns:junos="URL"> <configuration-json> { "configuration" : { /* JSON objects for parent levels of the element */ "inherited-child" : { "@" : { "junos:interface-range" : "source-interface-range" }, "inherited-object" : [ { "@" : { "junos:interface-range" : "source-interface-range" }, "name" : "identifier" } ], "@inherited-statement" : { "junos:interface-range" : "source-interface-range" } } /* closing braces for parent levels of the element */ } } </configuration-json> </rpc-reply>
Junos OS リリース 16.1 以降、Junos OS を実行するデバイスは、シリアル化の新しいデフォルト実装を使用して、JSON 形式の設定データを出力します。新しい既定値では、フィールド名 "attribute" の代わりに "@" 記号を使用して属性を示します。
属性を interface-ranges="interface-ranges"
属性と inherit="inherit"
組み合わせた場合、XML 出力には、次の CLI コンフィギュレーション モード コマンドからの出力と同じ情報が含まれます。
user@host# show | display inheritance | display xml interface-ranges
および 属性はinherit
、 タグまたは開始<get-configuration>
タグで<get-configuration/>
、次の 他の属性の 1 つ以上と組み合わせるinterface-ranges
ことができます。
changed
これについては、 Junos XMLプロトコルを使用した構成要素の変更インジケータのリクエストで説明しています。database
これについては、 Junos XMLプロトコルセッションでの設定情報リクエストのソースの指定で説明しています。format
これについては、 Junos XMLプロトコルセッションでの設定データの出力形式の指定で説明しています。アプリケーションは、Junos XMLタグ付き、フォーマット済みASCII、またはJSON出力を要求することができます。groups
これについては、 Junos XMLプロトコルを使用した設定グループとインターフェイス範囲の出力形式の指定で説明しています。junos:key
これについては、 Junos XMLプロトコルを使用した構成要素の識別子インジケータのリクエストで説明しています。
アプリケーションでは、識別子のインジケータを要求した後に、 属性と interface-ranges
属性を含めるinherit
こともできます(Junos XML プロトコルを使用した構成要素の識別子インジケータのリクエストを参照)。
例:設定グループの出力形式の指定
次の構成階層例では、 という interface-group
構成グループを定義します。ステートメントは apply-groups
、階層レベルでグループ [edit interfaces]
内のステートメントを適用します。
[edit] groups { interface-group { interfaces { so-1/1/1 { encapsulation ppp; } } } } apply-groups interface-group; interfaces { fxp0 { unit 0 { family inet { address 192.168.4.207/24; } } } }
属性がタグに含まれ<get-configuration/>
ていない場合、出力には および <apply-groups>
タグ要素がinherit
個別の項目として含まれます<groups>
。<groups>
tag 要素は、設定グループでinterface-group
定義されたタグ要素を囲みます。<apply-groups>
tag 要素のすぐ上に <interfaces>
tag 要素を配置することは、[edit interfaces]
その階層が設定グループでinterface-group
定義されたステートメントを継承することを示します。

属性が inherit
タグに含まれる <get-configuration/>
場合、 <interfaces>
tag 要素は設定グループで定義されたタグ要素を囲みます interface-group
。 <groups>
および <apply-groups>
タグ要素は表示されません 。

属性が groups="groups"
タグ内の<get-configuration/>
属性とinherit
組み合わされると、<interfaces>
tag 要素は設定グループで定義された tag 要素を囲み、 属性でinterface-group
junos:group="interface-group"
マークされます。
