NETCONF Perl クライアントおよびサンプル スクリプトについて
このプロトコルJunos OS NETCONF XML 管理プロトコルをサポートし、クライアント アプリケーションでデバイスの設定情報を要求および変更できます。NETCONF プロトコルは、設定データとリモート プロシージャ コールに XML(Extensible Markup Language)ベースのデータ エンコーディングを使用します。NETCONF Perl API ジュニパーネットワークス Perl を使用するプログラマにとって、Perl プログラミング言語を使い慣れたプログラマは、独自の Perl アプリケーションを作成して、NETCONF 上で Junos OSデバイスを管理できます。
リリース 16.1 Junos OS 以前は、すべての Junos OS リリースに、NETCONF Perl クライアントの新しいリリース依存バージョンが含まれていました。Junos OS リリース 16.1 から、NETCONF Perl クライアントはリリースに依存しない。GitHub および CPAN でホストされ、Junos OS リリースの任意のバージョンを実行するデバイスを管理できます。NETCONF Perl ディストリビューションのリリース依存バージョンのモジュールとサンプル スクリプトは、GitHub および CPAN でホストされているリリース非依存バージョンのモジュールおよびサンプル スクリプトとは異なります。
このセクションでは、以下のトピックについて説明します。
NETCONF Perl クライアント モジュール
表 1 は 、NETCONF Perl ライブラリのリリース非依存バージョンのモジュールをまとめた形式です。このモジュールは、Junos OSを実行しているデバイス上のNETCONFサーバーと通信するためのオブジェクト指向インターフェイスを備え、デバイスに簡単に接続し、NETCONFセッションを確立して、運用と設定の要求を実行できます。 Net::Netconf::Manager
クライアント アプリケーションは、そのオブジェクトを直接呼び出す Net::Netconf::Manager
のみです。クライアント アプリケーションは、オブジェクトを作成すると、デバイスへのアクセス時に使用するデバイス名とログイン Manager
名を提供します。ログイン名によって、デバイス上のクライアント アプリケーションのアクセス レベルが決定されます。
モジュール |
説明 |
---|---|
|
オブジェクトのインスタンス |
|
すべての NETCONF 定数を宣言します。 |
|
Junos OS を実行するデバイスでサポートされる NETCONF API にオブジェクト指向インターフェイスを実装します。 このクラスのオブジェクトは、デバイスへの接続のローカル側を表し、NETCONF プロトコルを使用してクライアントと通信します。 |
|
運用と設定の両方のリクエストに対応する XML ドキュメントの開発を容易にします。 このモジュールはベース ライブラリとして使用しますが、Junos OS CLI 固有の機能を提供して、CLI コマンド 、 . に対応する設定を操作 |
|
要求されたサーバーに応じて、NETCONFまたはJUNOS XMLオブジェクトをインスタンス |
|
SAX ベースで、NETCONF サーバーからの応答を解析します。 |
|
インスタンスへの SSH アクセスを |
|
トレース レベルを提供し、要求されたデバッグ レベルに基づくトレースを可能にします。 |
次のモジュールは、NETCONF Perl クライアントのリリース非依存バージョンで新しく追加されました EzEditXML
。
NETCONF Perl クライアントのリリース非依存バージョンでは、以下のモジュールが削除されました。 Transform
Plugins
、 Version
.
クライアント アプリケーションは、パブリック ドメインにある Perl モジュールを活用して、NETCONF Perl クライアント アプリケーションの開発を容易にすることもできます。NETCONF は XML ベースのデータ エンコーディングを使用します。クライアント アプリケーションでは、XML データを操作する多数の Perl モジュールを使用できます。
NETCONF Perl クライアントを使用して、デバイスへの接続、NETCONF セッションの確立、運用を実行する Perl アプリケーションを作成できます。NETCONF Perl API を介したデバイス上のクライアントと NETCONF サーバー間の通信には、以下の手順が含まれます。
クライアント アプリケーションと、ネットワーク で稼働しているデバイス上の NETCONF サーバーとの間で SSHv2 を使用して NETCONF セッションを確立Junos OS。
リクエストに対応する RPC を作成し、NETCONF サーバーに送信します。
NETCONF サーバーからの RPC 応答の受信と処理。
サンプル スクリプト
NETCONF Perl ディストリビューションには、モジュールを使用してさまざまな機能を実行する方法を示す以下のサンプル スクリプトを含むサンプル スクリプトの例が含まれています。スクリプトの実行手順については、NETCONF Perl GitHub リポジトリにあるREADME ファイルを参照https://github.com/Juniper/netconf-perl。
diagnose_bgp/diagnose_bgp.pl— デバイスの状態を監視して問題を診断する方法を示します。このスクリプトは、デバイスのネットワーク設定データの完全なセットから境界ゲートウェイ プロトコル(BGP)ピアに関する情報を抽出してBGPします。
get_chassis_inventory/get_chassis_inventory.pl— 事前定義されたクエリーを使用してデバイスに情報を要求する方法を示します。サンプル スクリプトでは、 Junos XML リクエストおよび CLI 動作モード コマンドによって返されたのと同じ情報を要求するオプションを使用してクエリを
get_chassis_inventory
detail
<get-chassis-inventory><detail/></get-chassis-inventory>
呼び出しますshow chassis hardware detail
。edit_configuration/edit_configuration.pl— XML タグ要素でフォーマットされた構成データを含むファイルを読み込み、デバイスをJunosする方法を示します。このディストリビューションには、サンプル設定ファイル config.xml が含まれています。ただし、スクリプトを呼び出す際には、コマンド ラインで別の設定ファイルを指定できます。