この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
NX-API CLI は、Cisco Nexus 9000 シリーズ CLI システムの拡張であり、XML 出力をサポートします。NX-API CLI は、特定コマンドに対して JSON 出力形式もサポートしています。
Cisco Nexus デバイスでは、コマンドライン インターフェイス(CLI)はデバイス上のみで実行されます。NX-API CLI は HTTP/HTTPS を使用してスイッチの外部で CLI を使用できるようにすることで、これらの CLI のアクセシビリティを向上します。この拡張は、Cisco Nexus 9000 シリーズ デバイス上の既存の Cisco Nexus の CLI システムに使用できます。NX-API CLI は、show コマンド、設定、Linux Bash をサポートします。
NX-API CLI は、JSON-RPC をサポートします。
NX-API では、トランスポート層として HTTP または HTTPS を使用します。CLI は、HTTP または HTTPS POST の本体にエンコードされます。
NX-API は、ホスト上またはゲスト シェル内でネイティブに動作するアプリケーションの UNIX ドメイン ソケットを通じてサポートされます。
NX-API バックエンドは、Nginx HTTP サーバを使用します。Nginx プロセスおよびその子プロセスのすべては、Linux cgroup の保護が適用され、CPU およびメモリ使用率の上限が設定されます。Nginx のメモリ使用量が cgroup の限度を超えると、Nginx プロセスの再起動と復元が行われます。
NX-API は、Cisco Nexus 9000 シリーズの 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 9000 シリーズ デバイスのコマンド、コマンド タイプ、出力タイプは、HTTP/HTTPs POST の本体に CLI をエンコードすることによって、NX-API を使用して入力されます。要求に対する応答は、XML または JSON の出力形式で返されます。
(注) | NX-API の応答コードの詳細については、NX-API 応答コードの表を参照してください。 |
NX-API CLI は、ローカル アクセスに対してデフォルトで有効化されています。リモート HTTP アクセスは、デフォルトで無効化されています。
次の例は、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" encoding="ISO-8859-1"?> <ins_api> <version>0.1</version> <type>cli_show</type> <chunk>0</chunk> <sid>session1</sid> <input>show switchname</input> <output_format>xml</output_format> </ins_api>
応答:
<?xml version="1.0"?> <ins_api> <type>cli_show</type> <version>0.1</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": "0.1", "type": "cli_show", "chunk": "0", "sid": "session1", "input": "show switchname", "output_format": "json" } }
応答:
{ "ins_api": { "type": "cli_show", "version": "0.1", "sid": "eoc", "outputs": { "output": { "body": { "hostname": "switch" }, "input": "show switchname", "msg": "Success", "code": "200" } } } }
NX-API サンドボックスは、HTTP または HTTPS を使用して Cisco Nexus 9000 シリーズ デバイスのコマンド、コマンド タイプ、出力タイプを入力する場合に使用する 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 |
ポート情報を表示します。 |
||
nxapi certificate {httpscrt |httpskey} |
次のいずれかのアップロードを指定します。 |
||
nxapi certificateenable |
証明書を有効化します。 |
||
nxapi use-vrfvrf |
デフォルト VRF、管理 VRF、または名前付き VRF を指定します。
|
NX-API 要求要素は、XML 形式または JSON 形式でデバイスに送信されます。要求の HTTP ヘッダーにより、要求のコンテンツ タイプが特定される必要があります。
次の表に示す NX-API 要素を使用して CLI コマンドを指定できます。
CLI コマンドに応答する NX-API 要素を次の表に示します。
NX-API 応答要素 |
説明 |
---|---|
version |
NX-API のバージョン。 |
type |
実行するコマンドのタイプ。 |
sid |
応答のセッション ID。この要素は、応答メッセージがチャンクされている場合のみ有効です。 |
outputs |
すべてのコマンド出力を囲むタグ。 複数のコマンドが cli_show または cli_show_ascii に存在する場合、各コマンドの出力は単一の output タグで囲まれます。 メッセージ タイプが cli_conf または bash の場合、cli_conf および bash コマンドにはコンテキストが必要であるため、すべてのコマンドに対して単一の output タグが使用されます。 |
output |
単一のコマンド出力を含むタグ。 メッセージ タイプが cli_conf および bash の場合、この要素にはすべてのコマンドの出力が含まれています。 |
input |
要求で指定された単一のコマンドを囲むタグ。この要素は、要求入力要素を適切な応答出力要素に関連付けるために役立ちます。 |
body |
コマンド応答の本文。 |
code |
コマンドの実行から返されるエラー コード。 NX-API は、Hypertext Transfer Protocol(HTTP)のステータス コード レジストリ(http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml)に記載されている標準 HTTP エラー コードを使用します。 |
msg |
返されたエラー コードに関連付けられているエラー メッセージ。 |
以下の NX-API エラー、エラー コード、NX-API 応答のメッセージが表示される可能性があります。
以下の NX-API エラー、エラー コード、NX-API 応答のメッセージが表示される可能性があります。
(注) | 標準の HTTP エラー コードは、Hypertext Transfer Protocol(HTTP)のステータス コード レジストリ(http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml)で確認できます。 |
NX-API 応答 |
コード |
メッセージ |
SUCCESS |
200 |
成功。 |
CUST_OUTPUT_PIPED |
204 |
要求によって出力が別の場所にパイプされました。 |
BASH_CMD_ERR |
400 |
入力された Bash コマンドのエラー。 |
CHUNK_ALLOW_ONE_CMD_ERR |
400 |
チャンクは 1 つのコマンドに対してのみ許可されます。 |
CLI_CLIENT_ERR |
400 |
CLI 実行エラー。 |
CLI_CMD_ERR |
400 |
入力された CLI コマンドのエラー。 |
IN_MSG_ERR |
400 |
要求メッセージが無効です。 |
NO_INPUT_CMD_ERR |
400 |
input コマンドがありません。 |
PERM_DENY_ERR |
401 |
権限が拒否されました。 |
CONF_NOT_ALLOW_SHOW_ERR |
405 |
設定モードで show が許可されていません。 |
SHOW_NOT_ALLOW_CONF_ERR |
405 |
show モードでは設定が許可されていません。 |
EXCEED_MAX_SHOW_ERR |
413 |
連続した show コマンドの数が最大数を超えました。最大値は 10 です。 |
MSG_SIZE_LARGE_ERR |
413 |
応答のサイズが大きすぎます。 |
BACKEND_ERR |
500 |
バックエンド処理エラー。 |
FILE_OPER_ERR |
500 |
システム内部のファイル操作エラー。 |
LIBXML_NS_ERR |
500 |
システム内部の LIBXML NS エラー。 |
LIBXML_PARSE_ERR |
500 |
システム内部の LIBXML 解析エラー。 |
LIBXML_PATH_CTX_ERR |
500 |
システム内部の LIBXML パス コンテキスト エラー。 |
MEM_ALLOC_ERR |
500 |
システム内部のメモリ割り当てエラー。 |
USER_NOT_FOUND_ERR |
500 |
入力またはキャッシュからユーザが見つかりません。 |
XML_TO_JSON_CONVERT_ERR |
500 |
XML から JSON への変換エラー。 |
BASH_CMD_NOT_SUPPORTED_ERR |
501 |
Bash コマンドはサポートされていません。 |
CHUNK_ALLOW_XML_ONLY_ERR |
501 |
チャンクでは、XML 出力のみが許可されています。 |
JSON_NOT_SUPPORTED_ERR |
501 |
出力が大きいため JSON はサポートされていません。 |
MSG_TYPE_UNSUPPORTED_ERR |
501 |
メッセージ タイプはサポートされていません。 |
PIPE_OUTPUT_NOT_SUPPORTED_ERR |
501 |
パイプ オペレーションはサポートされていません。 |
PIPE_XML_NOT_ALLOWED_IN_INPUT |
501 |
入力では、パイプ XML は許可されません。 |
RESP_BIG_JSON_NOT_ALLOWED_ERR |
501 |
応答の出力が大きすぎます。JSON はサポートされていません。 |
STRUCT_NOT_SUPPORTED_ERR |
501 |
サポートされていない構造化出力です。 |
ERR_UNDEFINED |
600 |
未定義 |