NETCONF XML 管理プロトコルと XML API をJunosするメリット
NETCONF XML 管理プロトコルおよび Junos XML API は、サポートされる Junos OS 運用リクエストすべて、およびすべての設定ステートメントのすべての要素に関Junos OS文書化 されています。タグの名前は、動作するリクエストまたは設定ステートメント内の要素の機能を明確に示しています。
有意義なタグ名と DTD の構造ルールの組み合わせにより、XML タグ付きデータ セットやドキュメントの内容と構造を簡単に理解できます。NETCONF Junos XML タグ要素を使用すると、デバイスから情報を要求して出力を解析し、特定の情報を検索するクライアント アプリケーションを簡単に実行できます。
解析デバイス出力
次の例は、Junos XML API を使用してデバイスの出力を簡単に解析し、必要な情報を抽出する方法を示しています。ASCIIバージョンとXMLタグ付きバージョンの、ASCII形式で実行されているデバイスからの出力を比較Junos OS。フォーマットされたASCIIは次のとおりです。
Physical interface: fxp0, Enabled, Physical link is Up Interface index: 4, SNMP ifIndex: 3
対応する XML タグ付きバージョンは次の形式です。
<interface> <name>fxp0</name> <admin-status>enabled</admin-status> <operational-status>up</operational-status> <index>4</index> <snmp-index>3</snmp-index> </interface>
クライアント アプリケーションがフォーマットされた ASCII 出力から特定の値を抽出する必要がある場合、絶対に表された、または隣接フィールドのラベルまたは値に関して記述された値の場所に依存する必要があります。クライアント アプリケーションがインターフェイス インデックスを抽出したいとします。正規表現照合ユーティリティを使用して特定の文字列を位置付けできますが、1 つの難点は、インターフェイス インデックスの数字が必ずしも予測可能であるとは限らない点です。クライアント アプリケーションでは、ラベル Interface index:
の後に特定の文字数を読み取ることはできませんが、代わりにラベルと後続のラベルの間のすべてを抽出する必要があります。
, SNMP ifIndex
たとえば、インターフェイス インデックス番号の後にフィールドが追加された場合など、出力の形式や順序が Junos OS Logical index
の後のバージョンで変更された場合に問題が発生します。
Physical interface: fxp0, Enabled, Physical link is Up Interface index: 4, Logical index: 12, SNMP ifIndex: 3
ラベルで指定したインターフェイス インデックスInterface index:
SNMP ifIndex
番号を抽出するアプリケーションが、正しくない結果を取得しています。代わりに、アプリケーションを手動で更新して以下のラベルを検索する必要があります。
, Logical index
対照的に、XML <index>
タグ付き出力の構造化された性質により、クライアント アプリケーションは開始タグと終了タグ内のすべてを抽出することで、インターフェイス インデックスを取得 </index>
できます。アプリケーションは出力文字列内の要素の位置に依存する必要はないので、NETCONF <interface>
サーバーはタグ要素内で子タグ要素を任意の順序で送信できます。今後のリリースに <logical-index>
新しいタグ 要素を追加しても、タグ要素を見つけてそのコンテンツを抽出するアプリケーションの <index>
機能には影響を与えるではありません。
デバイス出力の表示
XML タグ付き出力は、さまざまな表示形式に変換する方が簡単です。たとえば、特定のデバイス コンポーネントに関する詳細情報の量を異なる時間に表示することができます。デバイスがフォーマットされたASCII出力を返す場合、特定の詳細レベルに必要な情報を抽出して保存するために、特別なルーチンやデータ構造を表示プログラムで設計および作成する必要があります。対照的に、XML 出力固有の構造は、表示プログラム自身の構造の最適な基礎となります。また、複数のレベルの詳細に対して同じ抽出ルーティンを使用するのは簡単で、詳細な表示を作成する際に不要なタグ要素を無視します。