Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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 名を提供します。ログイン名によって、デバイス上のクライアント アプリケーションのアクセス レベルが決定されます。

表 1:NETCONF Perl モジュール

モジュール

説明

Access

オブジェクトのインスタンス Access 化時に指定されたアクセス方法タイプに基づいてオブジェクトを作成します。セッションの確立後には、宛先ホストで NETCONF サーバーとのセッションを確立し、hello パケットをサーバーと交換する方法をモジュールが担当 connect() します。

Constants

すべての NETCONF 定数を宣言します。

Device

Junos OS を実行するデバイスでサポートされる NETCONF API にオブジェクト指向インターフェイスを実装します。 このクラスのオブジェクトは、デバイスへの接続のローカル側を表し、NETCONF プロトコルを使用してクライアントと通信します。

EzEditXML

運用と設定の両方のリクエストに対応する XML ドキュメントの開発を容易にします。

このモジュールはベース ライブラリとして使用しますが、Junos OS CLI 固有の機能を提供して、CLI コマンド 、 . に対応する設定を操作 XML::LibXML delete activate deactivate insert します rename

Manager

要求されたサーバーに応じて、NETCONFまたはJUNOS XMLオブジェクトをインスタンス Device 化して返します。

SAXHandler

SAX ベースで、NETCONF サーバーからの応答を解析します。

SSH

インスタンスへの SSH アクセスを Net::Netconf::Access 提供し、宛先ホストとの SSH 接続を管理します。SSH 接続を管理するための根底にあるメカニズムは OpenSSH をベースにしています。

Trace

トレース レベルを提供し、要求されたデバッグ レベルに基づくトレースを可能にします。

注:

次のモジュールは、NETCONF Perl クライアントのリリース非依存バージョンで新しく追加されました EzEditXML

NETCONF Perl クライアントのリリース非依存バージョンでは、以下のモジュールが削除されました。 Transform PluginsVersion .

クライアント アプリケーションは、パブリック ドメインにある 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 が含まれています。ただし、スクリプトを呼び出す際には、コマンド ラインで別の設定ファイルを指定できます。

リリース履歴テーブル
リリース
説明
16.1
Junos OS リリース 16.1 から、NETCONF Perl クライアントはリリースに依存しない。GitHub および CPAN でホストされ、Junos OS リリースの任意のバージョンを実行するデバイスを管理できます。NETCONF Perl ディストリビューションのリリース依存バージョンのモジュールとサンプル スクリプトは、GitHub および CPAN でホストされているリリース非依存バージョンのモジュールおよびサンプル スクリプトとは異なります。