NETCONF を使用した運用情報の要求
NETCONF セッション内では、クライアント アプリケーションは Junos デバイスの現在のステータスに関する情報を要求できます。操作情報をリクエストするために、クライアント アプリケーションは、必要な情報を返す Junos XML API から特定のリクエスト タグ要素を出力します。
表 1 は、同等の CLI コマンドと同じ情報を要求するリクエストタグの例を示しています。
要求タグ | CLI コマンド |
---|---|
<get-interface-information> |
show interfaces |
<get-chassis-inventory> |
show chassis hardware |
<get-system-inventory> |
show software information |
適切なJunos XMLリクエストタグは、以下の複数の方法で決定できます。
-
CLI の操作コマンドへの追加
| display xml rpc
。 -
Junos XML API Explorer - 操作タグ アプリケーションを使用して、特定のリリースのコマンドまたはリクエストタグを検索します。
たとえば、次のコマンドは、コマンドに対応する show interfaces
request タグを表示します。
user@router> show interfaces | display xml rpc <rpc-reply xmlns:junos="http://xml.juniper.net/junos/23.4R1.9/junos"> <rpc> <get-interface-information> </get-interface-information> </rpc> </rpc-reply>
RPC を実行するために、クライアント アプリケーションは要求タグを要素で <rpc>
囲みます。構文は、対応するCLIコマンドにオプションが含まれているかどうかによって異なります。
<rpc> <!-- If the command does not have options --> <operational-request/> <!-- If the command has options --> <operational-request> <!-- tag elements representing the options --> </operational-request> </rpc> ]]>]]>
クライアントアプリケーションは、NETCONFサーバーから返される情報のフォーマットを指定できます。開始操作要求タグにオプションの format
属性を設定することにより、クライアントアプリケーションは、デフォルトのフォーマットされたASCIIテキストであるXMLタグ付きフォーマット、またはJavaScriptオブジェクト記法(JSON)のいずれかとしてレスポンスのフォーマットを指定できます。形式の指定の詳細については、 NETCONF セッションでの運用情報要求の出力形式を指定するを参照してください。
7 ビット ASCII 文字セット以外の文字を含む運用データまたは設定データを表示する場合、Junos OS は同等の UTF-8 10 進文字参照を使用してこれらの文字をエスケープおよびエンコードします。詳しくは、 ジュニパーネットワークスのデバイスでの文字エンコードの仕組みを参照してください。
クライアント アプリケーションが XML 出力を要求すると、NETCONF サーバーは、要求タグ要素に対応する特定の応答タグ要素で応答を囲み、その要素はタグ要素で <rpc-reply>
囲まれます。
<rpc-reply xmlns="URN" xmlns:junos="URL"> <operational-response xmlns="URL-for-DTD"> <!-- tag elements for the requested information --> </operational-response> </rpc-reply> ]]>]]>
たとえば、クライアント アプリケーションが RPC を送信 <get-interface-information>
した場合、NETCONF サーバーは応答タグを返します <interface-information>
。
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/23.4R1.9/junos"> <interface-information xmlns="http://xml.juniper.net/junos/23.4R1.9/junos-interface" junos:style="normal"> <physical-interface> <name> ge-0/0/0 </name> <admin-status junos:format="Enabled"> up </admin-status> ...
XML 形式の場合、各操作応答の開始タグには属性 xmlns
が含まれます。属性は、名前空間プレフィックスを持たない囲まれたタグ要素(など junos:
)のXML名前空間を定義します。名前空間は、どのJunos XML文書タイプ定義(DTD)がレスポンス内のタグ要素のセットを定義するかを示しています。
Junos XML APIは、異なるソフトウェアモジュールからの運用レスポンス用に個別のDTDを定義します。例えば、インターフェイス情報の DTD は junos-interface.dtd と呼ばれ、シャーシ情報の DTD は junos-chassis.dtd という名前です。別々の DTD と XML 名前空間に分割されるということは、同じ名前のタグ要素が、定義されている DTD に応じて異なる関数を持つことができることを意味します。
名前空間は、次の形式の URL です。
http://xml.juniper.net/junos/release-code/junos-category
どこ:
-
release-code は、NETCONFサーバーデバイスで実行されているJunos OSリリースを表す標準文字列です。
-
category DTD を指定します。
クライアントアプリケーションがフォーマットされたASCIIテキストでの出力を要求すると、NETCONFサーバーは、タグで囲まれたタグ要素で<output>
<rpc-reply>
応答を囲みます。
<rpc-reply xmlns="URN" xmlns:junos="URL"> <output> operational-response </output> </rpc-reply> ]]>]]>
クライアントアプリケーションがJSON形式の出力を要求すると、NETCONFサーバーはJSONデータをタグ要素で囲みます <rpc-reply>
。
<rpc-reply xmlns="URN" xmlns:junos="URL"> operational-response </rpc-reply> ]]>]]>