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-groupjunos:group="interface-group"マークされます。