前提条件
XML API インターフェイスには次の前提条件があります。
• SSH バージョン 2 がクライアント PC にインストールされ、イネーブルにされていること。
注意事項および制約事項
Cisco Nexus 1000V XML API とのメッセージ交換を開始する前に、次の条件を確認します。
• 任意の XML エディタまたは XML 管理インターフェイス ツールを使用して、XML インスタンスを作成する必要があります。
• XML 管理ツールを使用する場合は、そのツールで NETCONF over SSH がサポートされている必要があります。
XML サーバとのセッションの開始
XML クライアントと Cisco Nexus 1000V XML サーバの間の NETCONF セッションを開始するには、次の手順を実行します。
(注) Cisco Nexus 1000V xmlagent サービスは、XML サーバと呼ばれます。
はじめる前に
この手順を開始する前に、次のことを確認または実行する必要があります。
• SSH バージョン 2 がイネーブルに設定された XML クライアント PC にログインしていること。
• Cisco Nexus 1000V XML サーバの IP アドレスがわかっていること。
• 使用可能な XML サーバ セッションがあること。
詳細については、「許容されるセッション数の設定」を参照してください。
手順の概要
1. ssh username @ ipaddress -s xmlagent
2. password
手順の詳細
|
|
|
ステップ 1 |
ssh username@ip-address -s xmlagent 例: ssh admin@172.23.232.160 -s xmlagent User Access Verification Password: |
セキュア SSH 接続を通じて、Cisco Nexus 1000V XML エージェントに接続します。 (注) SSH コマンドの構文は、クライアント PC の SSH ソフトウェアによって異なることがあります。 |
ステップ 2 |
password 例: Password: ******* |
クレデンシャルを認証し、クライアント PC と Cisco Nexus 1000V XML サーバ間の NETCONF セッションを開始します。 |
ステップ 3 |
<?xml version="1.0"?> 例: <?xml version="1.0"?> <hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <capabilities> |
使用している XML のバージョンを示す宣言ステートメントを入力します。サーバは自身の機能を示す hello メッセージで応答します。 |
ステップ 4 |
<capability>urn:ietf:params:xml:ns:netconf:base:1.0</capability> 例:
<capability>urn:ietf:params:xml:ns:netconf:base:1.0</capability>
<session-id>17644</session-id>
|
クライアントの機能を示す hello メッセージを入力します。 NETCONF セッションが開始されます。 |
XML 要求の作成
XML サーバへのメッセージの XML 要求を作成するには、次の手順を実行します。
はじめる前に
この手順を開始する前に、次のことを確認または実行する必要があります。
• すでにクライアント PC から XML サーバとの NETCONF セッションを開始している必要があります。
「XML サーバとのセッションの開始」を参照してください。
• 任意の XML エディタまたは XML 管理インターフェイス ツールを使用して、XML メッセージを作成する必要があります。
手順の詳細
ステップ 1 要求の開始タグを入力します。
<nc:rpc message-id="1" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns="http://www.cisco.com/nxos:1.0:xml">
ステップ 2 要求する操作の NETCONF 動作開始タグを入力します。
<nc:filter type="subtree">
ステップ 3 要求する動作の Cisco Nexus 1000V 動作開始タグを入力します。
ステップ 4 要求する動作の Cisco Nexus 1000V 動作終了タグを入力します。
ステップ 5 要求する操作の NETCONF 動作終了タグを入力します。
ステップ 6 要求の終了タグを入力し、続けてメッセージの終了を示す文字シーケンス ]]>]]> を入力します。
<nc:rpc message-id="1" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns="http://www.cisco.com/nxos:1.0:xml">
<nc:filter type="subtree">
サーバへのドキュメントの手動送信
サーバに XML ドキュメントまたはメッセージを手動で送信するには、次の手順を実行します。
はじめる前に
この手順を開始する前に、次のことを確認または実行する必要があります。
• 一般的に自動化メソッドを使用してメッセージを送信しますが、このメソッドを使用して XML サーバへの SSH 接続を確認できます。
• SSH バージョン 2 がイネーブルに設定された XML クライアント PC にログインします。
• クライアント PC で XML エディタ アプリケーションが開いており、文字シーケンス ]]>]]> で終了する XML メッセージを作成します。
• XML サーバで SSH セッションを開いており、すでに hello メッセージを交換している必要があります。
手順の詳細
ステップ 1 エディタ アプリケーションから XML メッセージをコピーします。
ステップ 2 アクティブな SSH セッションに XML メッセージを貼り付けます。
XML メッセージは XML サーバに送信され、解析および実行されます。その後、結果を示す応答がクライアントに送信されます。
設定例
ここでは、次の XML メッセージの例について説明します。
• 「例:複数動作によるメッセージの作成」
• 「例:ポート プロファイルの作成」
• 「例:設定の削除」
• 「例:セッションの終了」
• 「例:独自セッション以外のセッションの終了」
• 「例:設定の編集」
例:複数動作によるメッセージの作成
すべての要求が同じ NETCONF 動作用である場合は、1 つの XML メッセージに複数の NETCONF 動作を含めることができます。
XML サーバは、すべての要求がエラーなしで解析されてから、要求を適用します。エラーがあれば要求が失敗し、通知が送信されます。
ここでは、次の例について説明します。
• 「例 1」
• 「例 2」
例 1
次に、2 つの NETCONF が 1 つの XML メッセージでフォーマットされる 2 つの CLI コマンドを表す動作を取得する例を示します。
CLI コマンド:
次に、XML 要求メッセージに必要な CLI コマンドを示します。
switch# show xml server status
メッセージ
次に、必要な CLI コマンドを表す XML 要求メッセージを示します。
<nc:rpc message-id="1" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns="http://www.cisco.com/nxos:1.0:security_tree">
<nc:filter type="subtree">
返信
次に、クライアントからの要求の解析および実行後に XML サーバからクライアントに送信される RPC 返信を示します。
(注) XML サーバから送信される返信の順序は、要求の送信順序とは異なることがあります。
<?xml version="1.0" encoding="ISO-8859-1"?>
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns="http://www.cisco.com/nxos:1.0:security_tree" message-id="1">
<__XML__OPT_Cmd_show_xml___readonly__>
<o_status>enabled</o_status>
<max_session>8</max_session>
<session_id>24559</session_id>
<user_name>admin</user_name>
<start_time>Tue Mar 25 16:14:17 2008</start_time>
<time_remaining_to_timeout>587</time_remaining_to_timeout>
<ip_addr>171.71.55.134</ip_addr>
</__XML__OPT_Cmd_show_xml___readonly__>
]]>]]><?xml version="1.0"?>
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns="http://www.cisco.com/nxos:1.0:security_tree" message-id="1">
例 2
次に、2 つの NETCONF が 1 つの XML メッセージでフォーマットされる 1 つの有効な CLI コマンドと 1 つの誤った CLI コマンドを表す動作を取得する例を示します。
CLI コマンド:
次に、XML 要求メッセージに必要な CLI コマンドを示します。
switch# show version-error-does-not-exist
メッセージ
次に、必要な CLI コマンドを表す XML 要求メッセージを示します。
<nc:rpc message-id="1" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns="http://www.cisco.com/nxos:1.0:sysmgrcli">
<nc:filter type="subtree">
<version-error-doesnotexist>
</version-error-doesnotexist>
返信
次に、クライアントからの要求の解析および実行後に XML サーバからクライアントに送信される RPC 返信を示します。
<?xml version="1.0" encoding="ISO-8859-1"?>
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns="http://www.cisco.com/nxos:1.0:sysmgrcli" message-id="1">
<__XML__OPT_Cmd_sysmgr_show_version___readonly__>
<header_str>Cisco Nexus Operating System (NX-OS) Software
TAC support: http://www.cisco.com/tac
Copyright (c) 2002-2009, Cisco Systems, Inc. All rights reserved.
The copyrights to certain works contained in this software are
owned by other third parties and used and distributed under
license. Certain components of this software are licensed under
the GNU General Public License (GPL) version 2.0 or the GNU
Lesser General Public License (LGPL) Version 2.1. A copy of each
such license is available at
http://www.opensource.org/licenses/gpl-2.0.php and
http://www.opensource.org/licenses/lgpl-2.1.php
<loader_ver_str>1.2(2) [last: image booted through mgmt0]</loader_ver_str>
<kickstart_ver_str>4.0(4)SV1(2)</kickstart_ver_str>
<sys_ver_str>4.0(4)SV1(2) [gdb]</sys_ver_str>
<kick_file_name></kick_file_name>
<kick_cmpl_time> 9/22/2009 2:00:00</kick_cmpl_time>
<isan_file_name>bootflash:/isan.bin</isan_file_name>
<isan_cmpl_time> 9/22/2009 2:00:00</isan_cmpl_time>
<isan_tmstmp>09/26/2009 00:36:00</isan_tmstmp>
<chassis_id>Nexus 1000V Chassis</chassis_id>
<module_id>Virtual Supervisor Module</module_id>
<cpu_name>Intel(R) Xeon(R) CPU </cpu_name>
<proc_board_id>T5056BE7598</proc_board_id>
<host_name>roshan-vsm</host_name>
<bootflash_size>2332296</bootflash_size>
<kern_uptm_days>3</kern_uptm_days>
<kern_uptm_hrs>16</kern_uptm_hrs>
<kern_uptm_mins>58</kern_uptm_mins>
<kern_uptm_secs>3</kern_uptm_secs>
</__XML__OPT_Cmd_sysmgr_show_version___readonly__>
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns="http://www.cisco.com/nxos:1.0:sysmgrcli" message-id="1">
<nc:error-type>application</nc:error-type>
<nc:error-tag>invalid-value</nc:error-tag>
<nc:error-severity>error</nc:error-severity>
<nc:error-message>Syntax error while parsing 'show version-error-doesnotexist '
<nc:bad-element>show</nc:bad-element>
例:ポート プロファイルの作成
次に、ポート プロファイルを作成するための XML 要求メッセージの例を示します。
コマンド
次に、XML 要求メッセージに必要な CLI コマンドを示します。
switch(config)# port-profile testppf
switch(config-port-prof)# description portprofile-test-description
switch(config-port-prof)# vmware port-group portprofile-test
switch(config-port-prof)# state enabled
switch(config-port-prof)# no shut
メッセージ
次に、必要なコマンドの XML メッセージの例を示します。
<nf:rpc xmlns="http://www.cisco.com/nxos:1.0:ppm" xmlns:nf="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="110">
<nxos:configure xmlns:nxos="http://www.cisco.com/nxos:1.0:ppm">
<nxos:__XML__MODE__exec_configure>
<__XML__PARAM_value isKey="true">testppf</__XML__PARAM_value>
<desc_text>portprofile-test-description</desc_text>
<__XML__OPT_Cmd_ppm_port_group_pg_name>
<pg_name>portprofile-test</pg_name>
</__XML__OPT_Cmd_ppm_port_group_pg_name>
</nxos:__XML__MODE__exec_configure>
例:設定の削除
次に、スタートアップ コンフィギュレーションの write erase コマンドと同等に動作する、NETCONF の delete-config 動作 の例を示します。
CLI コマンド
switch# write erase
メッセージ
次に、必要なコマンドの XML メッセージの例を示します。
<rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
返信
次に、NETCONF メッセージへの XML サーバの返信を示します。
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns="http://www.cisco.com/nxos:1.0" message-id="101">
例:セッションの終了
次に、XML サーバとのセッションを閉じる NETCONF close-session 動作が SSH セッションも終了する例を示します。
メッセージ
次に、NETCONF close-session 動作の XML メッセージを示します。
<rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
返信
次に、メッセージへの XML サーバの返信を示します。
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns="http://www.cisco.com/nxos:1.0" message-id="101">
例:独自セッション以外のセッションの終了
次に、独自のセッション以外のサーバ セッションを終了する NETCONF kill-session 動作の例を示します。
メッセージ
次に、NETCONF kill-session 動作の XML メッセージを示します。
<rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<session-id>31990</session-id>
返信
次に、メッセージへの XML サーバの返信を示します。
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns="http://www.cisco.com/nxos:1.0" message-id="110">
例:設定の編集
次に、NETCONF edit-config 動作を使用して設定を編集する要求の例を示します。
CLI コマンド
次に、メッセージに必要な CLI コマンドを示します。
switch(config)# interface ethernet 2/30
switch(config-if)# description Marketing Network
メッセージ
次に、NETCONF edit-config 動作による XML メッセージと必要な CLI コマンドを示します。
<nc:rpc message-id="16" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns="http://www.cisco.com/nxos:1.0:if_manager">
<__XML__MODE__exec_configure>
<interface>2/30</interface>
<__XML__MODE_if-ethernet>
<__XML__MODE_if-ethernet>
<desc_line>Marketing Network</desc_line>
</__XML__MODE_if-ethernet>
</__XML__MODE_if-ethernet>
</__XML__MODE__exec_configure>
返信
次に、メッセージへの XML サーバの返信を示します。
<nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns="http://www.cisco.com/nxos:1.0:if_manager" message-id="16">
デフォルト設定
表 3-1 に、SSH のデフォルト設定値を示します。
表 3-1 SSH のデフォルト
|
|
SSH Version 6 |
イネーブル |
その他の関連資料
XML 管理インターフェイスの実装に関連する詳細情報については、次の項を参照してください。
• 「標準」
• 「RFC」
標準
|
|
この機能でサポートされる新規の標準または変更された標準はありません。また、既存の標準のサポートは変更されていません。 |
-- |
RFC
|
|
RFC 4741 |
『NETCONF Configuration Protocol』 |
RFC 4742 |
『Using the NETCONF Configuration Protocol over Secure Shell (SSH)』 |