NETCONF を使用して設定オブジェクトの特定の子タグをリクエストする
Junos OS を実行しているデバイスとの NETCONF セッションでは、設定オブジェクトに対して特定の子タグ要素と子孫を要求するために、クライアント アプリケーションは、ルート(タグ要素で<configuration>表される)からオブジェクトの直接の親レベルまで、設定階層のすべてのレベルを表すタグ要素を囲むタグ要素を発行<filter>します。要求されたオブジェクトを表すために、アプリケーションはコンテナ タグ要素を発行します。特定の構成オブジェクトを要求するには、identifierタグ要素を含めます。単一の識別子を持つオブジェクトの場合、実際の<name>識別子タグ要素の名前が異なる場合でも、タグ要素を常に使用できます。実際の名前も有効です。複数の識別子を持つオブジェクトの場合、識別子タグ要素の実際の名前を使用する必要があります。識別子タグ要素を省略した場合、サーバーはその型のすべての構成オブジェクトの子タグを返します。クライアント アプリケーションは、特定の子タグを選択するために、必要なすべての子タグ要素とコンテナー タグ要素内の子孫を発行します。リクエスト全体がタグ要素で<rpc>囲まれています。
<rpc>
<get-config>
<source>
<!-- tag specifying the source configuration -->
</source>
<filter type="subtree">
<configuration>
<!-- opening tags for each parent of the object -->
<object>
<name>identifier</name>
<first-child/>
<second-child/>
<third-child>
<!--tags for descendents-->
</third-child>
<!-- tag for each additional child to return -->
</object>
<!-- closing tags for each parent of the object -->
</configuration>
</filter>
</get-config>
</rpc>
]]>]]>
タグ要素の <source> 詳細については、 NETCONF を使用した構成情報リクエストのソースの指定を参照してください。
NETCONF サーバーは、 内 <data> のオブジェクトと <rpc-reply> タグ要素(ここでは、識別子タグ要素が呼び出 <name>)されるオブジェクト)の要求された子を返します。開始 <configuration> タグの属性については、 NETCONF を使用した設定情報リクエストのソースの指定を参照してください。
<rpc-reply xmlns="URN" xmlns:junos="URL">
<data>
<configuration attributes>
<!-- opening tags for each parent of the object -->
<object>
<name>identifier</name>
<!-- requested child tags -->
</object>
<!-- closing tags for each parent of the object -->
</configuration>
</data>
</rpc-reply>
]]>]]>
アプリケーションは、同じタグ要素に適切なタグ要素を含めることで、同じまたは他のタイプの追加構成要素を <get-config> 要求することもできます。詳細については、 NETCONF を使用して複数の構成要素を同時にリクエストするを参照してください。
以下の例では、候補設定の 階層レベルで [edit routing-options static] 192.168.5.0/24 ルートのネクストホップ デバイスのアドレスのみを要求する方法を示しています。
以下の例では、候補設定のグループ階層レベル内の各物理インターフェイスに設定されたすべての論理インターフェイスのアドレスを要求する方法を示しています。
<rpc>
<get-config>
<source>
<candidate/>
</source>
<filter type="subtree">
<configuration>
<groups>
<interfaces>
<interface>
<unit>
<family>
<inet>
<address/>
</inet>
</family>
</unit>
</interface>
</interfaces>
</groups>
</configuration>
</filter>
</get-config>
</rpc>
<rpc-reply xmlns="URN" xmlns:junos="URL">
<data>
<configuration xmlns="URL" junos:commit-seconds=seconds junos:commit-localtime="timestamp" junos:commit-user="user">
<groups>
<name>re0</name>
<interfaces>
<interface>
<name>lo0</name>
<unit>
<name>0</name>
<family>
<inet>
<address>
<name>127.0.0.1/32</name>
</address>
</inet>
</family>
</unit>
</interface>
<interface>
<name>em0</name>
<unit>
<name>0</name>
<family>
<inet>
<address>
<name>198.51.100.1/24</name>
</address>
<address>
<name>198.51.100.11/24</name>
</address>
</inet>
</family>
</unit>
</interface>
</interfaces>
</groups>
</configuration>
</data>
</rpc-reply>