この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
Cisco Nexus デバイスでは、コマンドライン インターフェイス(CLI)はデバイス上のみで実行されます。NX-API は HTTP/HTTPS を使ってスイッチの外部で CLI を使用できるようにすることで、これらの CLI のアクセス性を改善します。この拡張は、Cisco Nexus 7000 シリーズ デバイス上の既存の Cisco Nexus の CLI システムに使用できます。NX-API は、show コマンドおよび設定をサポートします。
NX-API は、JSON-RPC、JSON、XML 形式をサポートします。
NX-API では、トランスポート層として HTTP または HTTPS を使用します。CLI は、HTTP または HTTPS POST の本体にエンコードされます。
NX-API バックエンドは、Nginx HTTP サーバを使用します。
NX-API は、Cisco Nexus 7000 シリーズの CLI システムの拡張であり、XML 出力をサポートします。NX-API は、特定のコマンドの JSON 出力形式もサポートしています。
(注) |
|
NX-API は、HTTPS をサポートしています。HTTPS を使用する場合、デバイスへのすべての通信は暗号化されます。
NX-API は、デバイスの認証システムに統合されています。ユーザは、NX-API 経由でデバイスにアクセスするための適切なアカウントを持つ必要があります。NX-API では、HTTP 基本認証を使用します。すべての要求の HTTP ヘッダーには、ユーザ名とパスワードが含まれる必要があります。
(注) | ユーザのログイン資格情報を保護するには、HTTPS の使用を検討する必要があります。 |
feature manager CLI コマンドを使用して、NX-API を有効化できます。NX-API はデフォルトでは無効化されています。
ユーザがはじめて認証に成功したときに、NX-API は、nxapi_auth というセッションベースの Cookie を提供します。デバイスに送信される後続の NX-API 要求のすべてには、セッション Cookie とともに、ユーザ名とパスワードが含まれます。ユーザ名とパスワードをセッション Cookie とともに使用することにより、完全な認証プロセスの再実行が省略されます。セッション Cookie が後続の要求に含まれていない場合は、別のセッション Cookie が要求され、認証プロセスで提供されます。不要な認証プロセスの回避は、デバイスの負荷軽減に役立ちます。
(注) | nxapi_auth Cookie は、600 秒(10 分)で期限切れとなります。この値は固定されており、変更できません。 |
(注) | NX-API は、スイッチ上の Programmable Authentication Module(PAM)を使用して認証を行います。Cookie を使用して PAM の認証数を減らすことにより、PAM の負荷が軽減されます。 |
Cisco Nexus 7000 シリーズ デバイスのコマンド、コマンド タイプ、出力タイプは、HTTP/HTTPs POST の本体に CLI をエンコードすることによって、NX-API を使用して入力されます。要求に対する応答は、XML、JSON、または JSON-RPC の出力形式で返されます。
(注) | NX-API の応答コードの詳細については、NX-API 応答コードの表を参照してください。 |
デバイスで feature manager CLI コマンドを使用して NX-API を有効化する必要があります。デフォルトでは、NX-API は無効化されています。
次の例は、NX-API サンドボックスの設定および起動の方法を示しています。
管理インターフェイスを有効にします。
switch# conf t switch(config)# interface mgmt 0 switch(config)# ip address 198.51.100.1/24 switch(config)# vrf context managment switch(config)# ip route 203.0.113.1/0 1.2.3.1
NX-API nxapi 機能を有効にします。
switch# conf t switch(config)# feature nxapi
次の例は、要求と XML 形式の応答を示しています。
要求:
<?xml version="1.0"?> <ins_api> <version>1.0</version> <type>cli_show</type> <chunk>0</chunk> <sid>sid</sid> <input>show switchname</input> <output_format>xml</output_format> </ins_api>
応答:
<?xml version="1.0" encoding="UTF-8"?> <ins_api> <type>cli_show</type> <version>1.0</version> <sid>eoc</sid> <outputs> <output> <body> <hostname>switch</hostname> </body> <input>show switchname</input> <msg>Success</msg> <code>200</code> </output> </outputs> </ins_api>
次の例は、 要求と JSON 形式の応答を示しています。
要求:
{ "ins_api": { "version": "1.0", "type": "cli_show", "chunk": "0", "sid": "1", "input": "show switchname", "output_format": "json" } }
応答:
{ "ins_api": { "type": "cli_show", "version": "1.0", "sid": "eoc", "outputs": { "output": { "input": "show switchname", "msg": "Success", "code": "200", "body": { "hostname": "switch" } } } } }
次の例は、 要求と JSON-RPC 形式の応答を示しています。
要求:
[ { "jsonrpc": "2.0", "method": "cli", "params": { "cmd": "show switchname", "version": 1 }, "id": 1 } ]
応答:
{ "jsonrpc": "2.0", "result": { "body": { "hostname": "switch" } }, "id": 1 }
NX-API 要求を HTTP 経由で送信するには、http://<ip-address-of-switch>/ins を使用します。
NX-API 要求を HTTPS 経由でより安全に送信するには、https://<ip-address-of-switch>/ins を使用します。
管理インターフェイスの IP アドレスは、<ip-address-of-switch> です。
(注) | HTTP 要求のヘッダーには、コンテンツ タイプ フィールドが含まれている必要があります。JSON-RPC 要求の場合、これは application/json-rpc と同等であることが必要です。独自形式の場合、これは、使用される入力形式に応じて text/xml または text/json のいずれかになります。 |
ステップ 1 | ブラウザで次の URL のシスコ ソフトウェア ダウンロード サイトに移動します。
http://software.cisco.com/download/navigator.html [Download Software] ページが表示されます。 |
ステップ 2 | [Select a Product] リストから、[Switches] > [DataCenterSwitches] > [platform] > [model] を選択します。 |
ステップ 3 | 登録シスコ ユーザとしてログインしていない場合は、すぐにログインするように求められます。 |
ステップ 4 | [Select a Software Type] リストから、[NX-OSXMLSchemaDefinition] を選択します。 |
ステップ 5 | 目的のリリースを選択し、[Download] をクリックします。 |
ステップ 6 | 要求された場合には、強力な暗号化ソフトウェア イメージをダウンロードする資格申請の手順に従ってください。
[Cisco End User License Agreement] が開きます。 |
ステップ 7 | [Agree] をクリックし、手順に従ってファイルを PC にダウンロードします。 |
NX-API サンドボックスは、HTTP または HTTPS を使用して Cisco Nexus 7000 シリーズ デバイスのコマンド、コマンド タイプ、出力タイプを入力する場合に使用する Web ベースのユーザ インターフェイスです。要求を送信すると、出力応答が表示されます。
デフォルトでは、NX-API は無効化されています。スイッチで feature manager CLI コマンドを使用して NX-API の有効化を開始します。次に、nxapi sandbox コマンドで NX-API を有効化します。
ブラウザを使用して NX-API サンドボックスにアクセスします。
(注) | NX-API サンドボックスを使用する場合、Firefox ブラウザのリリース 24.0 以降を使用することが推奨されます。 |
次の例は、NX-API サンドボックスの設定および起動の方法を示しています。
管理インターフェイスを有効にします。
switch# conf t switch(config)# interface mgmt 0 switch(config)# ip address 198.51.100.1/24 switch(config)# vrf context managment switch(config)# ip route 203.0.113.1/0 1.2.3.1
NX-API nxapi 機能を有効にします。
switch# conf t switch(config)# feature nxapi switch(config)# nxapi sandbox
ブラウザを開いて http://mgmt-ip と入力し、NX-API サンドボックスを起動します。次の図は、要求と出力応答の例です。
NX-API サンドボックスでは、上部のペインにコマンド、コマンド タイプ、出力タイプを指定します。リクエストを送信するには、左ペインの上の [POST Request] ボタンをクリックします。要求要素の簡単な説明が左ペインの下に表示されます。
要求が送信された後、出力応答が右側のペインに表示されます。
NX-API を管理するコマンドの説明および要求と出力応答の要素に関する説明については、以降の項で示します。
次の表に示す CLI コマンドを使用して、NX-API の有効化や管理を行えます。
NX-API 管理コマンド | 説明 |
---|---|
feature nxapi |
NX-API を有効化します。 |
no feature nxapi |
NX-API を無効化します。 |
nxapi {http|https} portport |
ポートを指定します。 |
no nxapi {http|https} |
HTTP または HTTPS を無効化します。 |
show nxapi |
ポート情報、NX-API の有効または無効ステータス、サンドボックスの有効または無効ステータスを表示します。 |
nxapi sandbox |
NX-API サンドボックスを有効化します。 |
no nxapi sandbox |
NX-API サンドボックスを無効化します。 |
nxapi certificatecertpathkeykeypath |
次のいずれかのアップロードを指定します。 |
NX-API 要求要素は、XML 形式、JSON 形式、または JSON-RPC 形式でデバイスに送信されます。要求の HTTP ヘッダーにより、要求のコンテンツ タイプが特定される必要があります。
入力される要求の形式が XML または JSON の場合、次の表に示す NX-API 要素を使用して CLI コマンドを指定します。
入力される要求の形式が JSON-RPC の場合、次の表に示す NX-API 要素を使用して CLI コマンドを指定します。
NX-API 要求要素 |
説明 |
---|---|
jsonrpc |
JSON-RPC プロトコルのバージョンを指定する文字列。 バージョンは 2.0 である必要があります。 |
method |
呼び出されるメソッドの名前を含む文字列。 NX-API では、次のいずれかをサポートします。 |
params |
メソッドの呼び出し時に使用されるパラメータの値を保持する構造化された値。 これには、以下の情報が含まれている必要があります。 |
id |
クライアントによって確立されたオプションの識別子。これが指定されている場合は、文字列、数字、または Null 値を含む必要があります。通常、値は Null にすることはできず、数字に少数を含むこともできません。ユーザが id パラメータを指定しない場合、要求は単純な通知であるとサーバに見なされるため、応答はありません。例:id : 1 |
入力される要求の形式が XML または JSON の場合、応答には以下の要素が含まれます。
NX-API 応答要素 |
説明 |
---|---|
version |
NX-API のバージョン。 |
type |
実行するコマンドのタイプ。 |
sid |
応答のセッション ID。この要素は、応答メッセージがチャンクされている場合のみ有効です。 |
outputs |
すべてのコマンド出力を囲むタグ。 複数のコマンドが cli_show または cli_show_ascii に存在する場合、各コマンドの出力は単一の output タグで囲まれます。 メッセージ タイプが cli_conf の場合、cli_conf コマンドにはコンテキストが必要であるため、すべてのコマンドに対して単一の output タグが使用されます。 |
output |
単一のコマンド出力を含むタグ。 cli_conf メッセージ タイプの場合、この要素にはすべてのコマンドの出力が含まれています。 |
input |
要求で指定された単一のコマンドを囲むタグ。この要素は、要求入力要素を適切な応答出力要素に関連付けるために役立ちます。 |
body |
コマンド応答の本文。 |
code |
コマンドの実行から返されるエラー コード。 NX-API は、Hypertext Transfer Protocol(HTTP)のステータス コード レジストリ(http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml)に記載されている標準 HTTP エラー コードを使用します。 |
msg |
返されたエラー コードに関連付けられているエラー メッセージ。 |
すべての JSON-RPC 要求の応答オブジェクトは、次の表に示す JSON-RPC 2.0 応答形式になります。
NX-API 応答要素 |
説明 |
---|---|
jsonrpc |
JSON-RPC プロトコルのバージョンを指定する文字列。必ず 2.0。 |
result |
このフィールドは成功時にのみ含まれます。 このフィールドの値には、要求された CLI 出力が含まれます。 |
error |
このフィールドはエラー時にのみ含まれます(result オブジェクトと相互排他的)。 エラー オブジェクトには、以下の要素が含まれています。 |
id |
対応する要求オブジェクトの id と同じ値。要求内の id の解析中にエラーが発生した場合、この値は Null です。 |
ここでは、NX-API の実装に関する追加情報を提供します。