Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Perl クライアントアプリケーションで NETCONF サーバーにリクエストを送信する

NETCONF Perl クライアントアプリケーションでは、NETCONF サーバーへの接続を確立した後、クライアントアプリケーションは、Junos OS を実行しているデバイス上で運用コマンドまたは設定コマンドを実行して、運用情報を要求したり、設定を変更したりできます。NETCONF Perl APIは、CLI運用モードコマンドとNETCONF設定操作に対応する一連のメソッドをサポートしています。コマンドを実行するために、クライアントアプリケーションはそのコマンドに対応するPerlメソッドを呼び出します。

詳細については、以下のセクションを参照してください。

Junos OSコマンドとNETCONF操作のPerlメソッドへのマッピング

ほとんどの操作コマンドには、対応するJunos XMLリクエストタグがあります。 Junos XML APIエクスプローラを使用して、操作コマンド用のJunos XMLリクエストタグを見つけることができます。CLI で Junos XML リクエストタグを表示することもできます。リクエストタグを取得したら、対応するPerlメソッド名にマッピングできます。

CLI内のコマンドに対するJunos XMLリクエストタグを表示するには、コマンドを発行し、 | display xml rpc オプションを含めます。以下の例では、 show route コマンドのrequestタグを表示します。

運用コマンドのリクエストタグをPerlメソッド名にマッピングできます。メソッド名を派生させるには、リクエストタグ内のハイフンをアンダースコアに置き換え、山括弧を削除します。たとえば、 <get-route-information> リクエストタグは get_route_information メソッド名にマップされます。

同様に、NETCONFプロトコルの操作も同じ方法でPerlメソッド名にマッピングされます。たとえば、 <edit-config> 操作は edit_config メソッド名にマップされます。

メソッドオプションの提供

Perl メソッドは 1 つ以上のオプションを持つことができます。次のセクションでは、NETCONF Perl クライアントアプリケーションでメソッドのオプションを定義するためにアプリケーションが使用する表記法について説明します。

  • オプションのないメソッドは、次の get_autoinstallation_status_information メソッドのエントリのように、$NO_ARGS として定義されます。

    オプションなしでメソッドを呼び出すには、次の例のように、クライアント アプリケーションはメソッド名の後に空の括弧を付きます。

  • 固定形式オプションは、タイプ $TOGGLE として定義されます。次の例では、 get_ancp_neighbor_information メソッドには briefdetail という 2 つの固定形式オプションがあります。

    メソッドを呼び出すときに固定形式オプションを含めるには、次の例のように、オプションを文字列 'True'に等しく設定します。

    注:

    リリース依存の NETCONF Perl ディストリビューションを使用する場合、メソッドを呼び出すときに固定形式オプションを含めるには、オプションを値 1 (1) に等しく設定します。

  • 変数値を持つオプションは、タイプ $STRINGとして定義されます。次の例では、 get_cos_drop_profile_information メソッドは profile_name 引数を取ります。

    メソッドを呼び出すときに変数値を含めるには、次の例のように値を一重引用符で囲みます。

  • 設定ステートメントまたは対応するタグ要素のセットは、タイプ $DOMとして定義されます。次の例では、 get_config メソッドは一連の設定ステートメント(2つの属性)を受け取ります。

    DOM オブジェクトは XML コードです。

    これにより、以下のRPCリクエストが生成されます。

メソッドには、固定形式オプション、変数値を持つオプション、および一連の設定ステートメントの組み合わせを含めることができます。たとえば、 get_forwarding_table_information メソッドには、4 つの固定形式オプションと、変数値を持つ 5 つのオプションがあります。

リクエストの送信

次のコードは、NETCONFサーバーに設定要求を送信する推奨方法と、エラー状態の処理方法を示しています。$jnx変数は、NET::Netconf::Managerオブジェクトとして定義されています。edit_configuration.plサンプルスクリプトから取得したサンプルコードは、候補の設定をロックし、設定変更を読み込み、変更をコミットした後、設定データベースのロックを解除してNETCONFサーバーから切断します。完全なedit_configuration.plスクリプトは、https://github.com/Juniper/netconf-perl にあるNETCONF Perl GitHubリポジトリのexamples/edit_configurationディレクトリにあります。