NX-API

NX-APIについて

Cisco Nexus スイッチでは、コマンドライン インターフェイス(CLI)はスイッチ上でのみ実行されます。NX-API は HTTP/HTTPS を使ってスイッチの外部で CLI を使用できるようにすることで、これらの CLI のユーザー補助を改善します。この拡張機能を Cisco Nexus 7000 シリーズ スイッチの既存の Cisco NX-OS CLI システムに使用できます。NX-API は [表示(NXAPI)] コマンドと構成をサポートします。

NX-API は、JSON-RPC、JSON、および XML フォーマットをサポートします。

Cisco Nexus スイッチでは、コマンドライン インターフェイス(CLI)はスイッチ上でのみ実行されます。NX-API は HTTP/HTTPS を使ってスイッチの外部で CLI を使用できるようにすることで、これらの CLI のユーザー補助を改善します。この拡張機能を Cisco Nexus 9000 シリーズ スイッチの既存の Cisco NX-OS CLI システムに使用できます。NX-API は show コマンド、構成と Linux Bash をサポートします。

NX-API は JSON-RPC をサポートしています。

Cisco Nexus スイッチでは、コマンドライン インターフェイス(CLI)はスイッチ上でのみ実行されます。NX-API は HTTP / HTTPS を使ってスイッチの外部で CLI を使用できるようにすることで、これらの CLI のユーザー補助を改善します。この拡張機能を Cisco Nexus 3500 プラットフォーム スイッチの既存の Cisco NX-OS CLI システムに使用できます。NX-API は show コマンド、構成と Linux Bash をサポートします。

NX-API は、JSON-RPC、JSON、および XML フォーマットをサポートします。

機能 NX-API

  • サンドボックスを介してデバイスにアクセスするには、機能 NX-API を有効にする必要があります。

  • デバイス上の | json は、内部的に Python スクリプトを使用して出力を生成します。

  • NX-API は、ipv4 を介して http / https のいずれかで有効にすることができます。

    BLR-VXLAN-NPT-CR-179# show nxapi 
    	nxapi enabled
    	HTTP Listen on port 80
    	HTTPS Listen on port 443
    	BLR-VXLAN-NPT-CR-179# 
    
  • NX-API は、サードパーティの NGINX プロセスを内部的に生成しています。このプロセスは、ハンドラ受信 / 送信 / http 要求 の処理 / 応答:

    nxapi certificate {httpscrt |httpskey} 
    nxapi certificate enable 
    
  • NX-API 証明書は https で有効にできます

  • nginx が動作するデフォルトのポートは、http / https がそれぞれ 80 / 443 です。次の CLI コマンドを使用して変更することもできます:

    nxapi {http|https} port port-number 
    

転送

NX-APIは、転送のように HTTP または HTTPS を使用します。CLI は、HTTP / HTTPS POST 本文にエンコードされます。

NX-API バックエンドは Nginx HTTP サーバを使用します。Nginx プロセスとそのすべての子プロセスは、CPU とメモリの使用量が制限されている Linux cgroup 保護下にあります。Nginx のメモリ使用量が cgroup の制限を超えると、Nginx プロセスが再起動されて復元されます。


(注)  


[機能なし NXAPI(no feature NXAPI)] コマンドを使用して NX-API を無効にした後でも、Nginx プロセスは引き続き実行されます。これは、他の管理関連プロセスに必要です。


メッセージ形式

NX-API は、XML 出力をサポートする Cisco Nexus 7000 シリーズ CLI システムの拡張機能です。NX-API は、特定のコマンドの JSON 出力フォーマットもサポートしています。

NX-API は、XML 出力をサポートする Cisco Nexus 9000 シリーズ CLI システムの拡張機能です。NX-API は、特定のコマンドの JSON 出力フォーマットもサポートしています。


(注)  


  • NX-API XML 出力は、情報を使いやすいフォーマットで表示します。

  • NX-API XML は、Cisco NX-OS NETCONF 導入に直接マッピングされません。

  • NX-API XML 出力は、JSON または JSON-RPC に変換できます。


セキュリティ

NX-API は HTTPS をサポートします。HTTPS を使用すると、デバイスへのすべての通信が暗号化されます。

NX-API は、デバイスの認証システムに統合されています。ユーザーは、NX-API を介してデバイスにアクセスするための適切なアカウントを持っている必要があります。NX-API では HTTP basic 認証が使用されます。すべてのリクエストには、HTTP ヘッダーにユーザー名とパスワードが含まれている必要があります。


(注)  


ユーザーのログイン資格情報を保護するには、HTTPS の使用を検討する必要があります。


[機能(feature)] マネージャ CLI コマンドを使用して、NX-API を有効にすることができます。NX-API はデフォルトで無効になっています。

NX-API は、ユーザーが最初に認証に成功したときに、セッション ベースの Cookie、nxapi_auth を提供します。セッション Cookie を使用すると、デバイスに送信される後続のすべての NX-API 要求にユーザー名とパスワードが含まれます。ユーザー名とパスワードは、完全な認証プロセスの再実行をバイパスするために、セッション Cookie で使用されます。セッション Cookie が後続の要求に含まれていない場合は、別のセッション Cookie が必要であり、認証プロセスによって提供されます。認証プロセスの不必要な使用を避けることで、デバイスのワークロードを軽減できます。


(注)  


nxapi_auth cookie は 600 秒(10 分)で期限切れになります。この値は固定されており、調整できません。

Cookie の有効期限が切れたら、ユーザー名 / パスワードを再送信する必要があります。



(注)  


NX-API は、スイッチ上の Programmable Authentication Module(PAM)を使用して認証を行います。cookie を使用して PAM の認証数を減らし、PAM の負荷を減らします。


NX-API の使用

Cisco Nexus 7000 シリーズ スイッチのコマンド、コマンド タイプ、および出力タイプは、CLI を HTTP/HTTPs POST の本文にエンコードすることにより、NX-API を使用して入力されます。要求に対する応答は、XML、JSON、または JSON-RPC 出力形式で返されます。

Cisco Nexus 9000 シリーズ スイッチのコマンド、コマンド タイプ、および出力タイプは、CLI を HTTP/HTTPs POST の本文にエンコードすることにより、NX-API を使用して入力されます。要求に対する応答は、XML または JSON 出力形式で返されます。

Cisco Nexus 3500 プラットフォーム スイッチのコマンド、コマンド タイプ、および出力タイプは、CLI を HTTP/HTTPS POST の本文にエンコードすることにより、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" 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"
            }
        }
    }
}
 

次の例は、リクエストとそのレスポンスを 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 コールの管理インターフェイスの使用

NX-API コールには管理インターフェイスを使用することをお勧めします。

NX-API の非管理インターフェイスとカスタム ポートを使用する場合、NX-API トラフィックが API トラフィックを好ましくない処理する可能性のあるデフォルトの copp エントリにヒットしないように、CoPP ポリシーにエントリを作成する必要があります。


(注)  


NX-API トラフィックには管理インターフェイスを使用することをお勧めします。それが不可能で、カスタム ポートが使用されている場合は、「copp-http」クラスを更新して、カスタム NX-API ポートを含める必要があります。


次の例のポート 9443 は、NX-API トラフィックに使用されています。

このポートは、copp-system-acl-http ACL に追加され、copp-http クラスの下で一致できるようになり、100 pps ポリシングになります。(特定の環境では、これを増やす必要がある場合があります。)
!
ip access-list copp-system-acl-http
  10 permit tcp any any eq www
  20 permit tcp any any eq 443
  30 permit tcp any any eq 9443 <---------
!
class-map type control-plane match-any copp-http
  match access-group name copp-system-acl-http
!
!
policy-map type control-plane copp-system-policy 
  class copp-http
    police pps 100 
!

NX-API 管理コマンド

次の表にリストされている CLI コマンドを使用して、NX-API を有効にして管理できます。

表 1. NX-API 管理コマンド
NX-API 管理コマンド 説明

feature nxapi

NX-API を有効化します。

no feature nxapi

NX-API を無効化します。

nxapi {http | https} port port

ポートを指定します。

no nxapi {http | https}

HTTP / HTTPS を無効化します。

show nxapi

ポート情報を表示します。

nxapi certificate {httpscrt certfile | httpskey keyfile} filename

次のアップロードを指定します:

  • httpscrt が指定されている場合の HTTPS 証明書。

  • httpskey が指定されている場合の HTTPS キー。

HTTPS 証明書の例:

nxapi certificate httpscrt certfile bootflash:cert.crt

HTTPS キーの例:

nxapi certificate httpskey keyfile bootflash:privkey.key

nxapi certificate enable

証明書を有効化します。

以下は、HTTPS 証明書の正常なアップロードの例です:

switch(config)# nxapi certificate httpscrt certfile certificate.crt
Upload done. Please enable. Note cert and key must match.
switch(config)# nxapi certificate enable 
switch(config)#

以下は、HTTPS キーの正常なアップロードの例です:

switch(config)# nxapi certificate httpskey keyfile bootflash:privkey.key
Upload done. Please enable. Note cert and key must match.
switch(config)# nxapi certificate enable 
switch(config)#

状況によっては、証明書が無効であることを示すエラー メッセージが表示されることがあります:

switch(config)# nxapi certificate httpskey keyfile bootflash:privkey.key
Upload done. Please enable. Note cert and key must match.
switch(config)# nxapi certificate enable
Nginx certificate invalid.
switch(config)#

これは、キー ファイルが暗号化されている場合に発生する可能性があります。その場合、キー ファイルをインストールする前に復号化する必要があります。次の例に示すように、Guest Shell に移動してキー ファイルを復号化する必要がある場合があります。

switch(config)# guestshell
[b3456@guestshell ~]$
[b3456@guestshell bootflash]$ /bin/openssl rsa -in certfilename.net.pem -out clearkey.pem             
Enter pass phrase for certfilename.net.pem:
writing RSA key
[b3456@guestshell bootflash]$
[b3456@guestshell bootflash]$ exit
switch(config)#

Guest Shell の詳細については、ゲスト シェルを参照します。

これが問題の原因である場合、証明書を正常にインストールできるはずです。

switch(config)# nxapi certificate httpskey keyfile bootflash:privkey.key
Upload done. Please enable. Note cert and key must match.
switch(config)# nxapi certificate enable 
switch(config)#

NX-API を使用したインタラクティブ コマンドの操作

対話型コマンドの確認プロンプトを無効にし、エラー コード 500 によるタイムアウトを回避するには、対話型コマンドの前に[端末の dont-ask(terminal dont-ask)] を追加します。 を使用。複数の対話型コマンドを区切るには、それぞれがは単一のブランク文字で囲まれています。

エラー コード 500 でのタイムアウトを回避するために端末の dont-ask を使用する対話型コマンドの例をいくつか次に示します:

terminal dont-ask ; reload module 21
terminal dont-ask ; system mode maintenance

NX-API リクエスト要素

NX-API リクエスト要素は、XML 形式、JSON 形式、または JSON-RPC 形式でスイッチに送信されます。リクエストの HTTP ヘッダーは、リクエストのコンテンツ タイプを識別する必要があります。

入力リクエストの形式が XML または JSON の場合、次の表にリストされている NX-API 要素を使用して、CLI コマンドを指定します。

表 2. NX-API リクエスト要素

NX-API リクエスト要素

説明

version

NX-API バージョンを指定します。

type

実行するコマンドのタイプを指定します。

次のタイプのコマンドがサポートされています。

  • cli_show

    構造化された出力が必要な CLI show コマンド。コマンドが XML 出力をサポートしていない場合は、エラー メッセージが返されます。

  • cli_show_ascii

    ASCII 出力が必要な CLI show コマンド。これは、ASCII 出力を解析する既存のスクリプトと一致します。ユーザーは、最小限の変更で既存のスクリプトを使用できます。

  • cli_conf

    CLI 構成コマンド

  • bash

    Bash コマンド。ほとんどの非対話型 Bash コマンドは、NX-API でサポートされています。

(注)  

 
  • 各コマンドは、現在のユーザーの権限でのみ実行可能です。

  • メッセージ タイプが ASCII の場合、出力でパイプ操作がサポートされます。出力が XML 形式の場合、パイプ操作はサポートされていません。

  • 最大 10 個の連続する show コマンドがサポートされています。show コマンドの数が 10 個を超える場合、11 番目以降のコマンドは無視されます。

  • 対話型コマンドはサポートされていません。

チャンク

一部の show コマンドは、大量の出力を返す場合があります。コマンド全体が完了する前に NX-API クライアントが出力の処理を開始するために、NX-API は show コマンドの出力チャンクをサポートしています。

次の設定を有効または無効にできます。

0

チャンク出力しません。

1

チャンク出力。

(注)  

 
チャンクをサポートするのは show コマンドだけです。一連の show コマンドが入力されると、最初のコマンドだけがチャンクされて返されます。

出力メッセージの形式は XML です。(XML がデフォルトです。)< または > などの特殊文字は、有効な XML メッセージを形成するために変換されます(< は < に変換されます > は &gt に変換されます)。

XML SAX を使用して、チャンクされた出力を解析できます。

(注)  

 
チャンクが有効な場合、メッセージ形式は XML に制限されます。チャンクが有効な場合、JSON 出力形式はサポートされません。

(注)  

 

チャンクが有効になっている場合、現在サポートされている最大メッセージ サイズは、チャンク出力の 200MB です。

sid

セッション ID 要素は、応答メッセージがチャンクされている場合にのみ有効です。メッセージの次のチャンクを取得するには、前の応答メッセージの sid と一致する sid を指定する必要があります。

Cisco NX-OS リリース 9.3(1) では、sid オプション clear が導入されています。sid を clear に設定して新しいチャンク リクエストが開始されると、現在のチャンク リクエストはすべて破棄または破棄されます。

応答コード 429 を受け取った場合:同時チャンク リクエストの最大数は 2 です。sid clear を使用して、現在のチャンク リクエストを破棄します。sid clear を使用した後、後続の応答コードは、残りのリクエストに対して通常どおり動作します。

input

入力は 1 つのコマンドまたは複数のコマンドです。ただし、異なるメッセージ タイプに属するコマンドを混在させてはなりません。たとえば、show コマンドは cli_show メッセージ タイプであり、cli_conf モードではサポートされません。

(注)  

 

bash を除き、複数のコマンドは「;」で区切ります。(; は、単一のブランク文字で囲む必要があります。)

bash の場合、複数のコマンドは「;」で区切ります。(; は単一のブランク文字で囲まれていません。)

以下は、複数のコマンドの例です。

cli_show

show version ; show interface brief ; show vlan

cli_conf

interface Eth4/1 ; no shut ; switchport 
								

bash

cd /bootflash;mkdir new_dir 
								

output_format

使用可能な出力メッセージ形式は次のとおりです。

xml

XML 形式を指定します。

json

JSON 形式で出力を指定します。

(注)  

 

Cisco Nexus 7000 シリーズ CLI は XML 出力をサポートしています。つまり、JSON 出力は XML から変換されます。変換はスイッチで処理されます。

計算のオーバーヘッドを管理するために、JSON 出力は出力の量によって決定されます。出力が 1 MB を超える場合、出力は XML 形式で返されます。出力がチャンクされている場合、XML 出力のみがサポートされます。

HTTP/HTTPS ヘッダーの content-type ヘッダーは、応答形式(XML または JSON)のタイプを示します。

JSON-RPC が入力リクエスト形式である場合、次の表にリストされている NX-API 要素を使用して、CLI コマンドを指定します。

表 3. NX-API リクエスト要素

NX-API リクエスト要素

説明

jsonrpc

JSON-RPC プロトコルのバージョンを指定する文字列。

バージョンは 2.0 であることが必要です。

method

呼び出されるメソッドの名前を含む文字列。

NX-API は、次のいずれかをサポートします。

  • cli show または構成コマンド

  • cli_ascii show または構成コマンド。フォーマットせずに出力

params

メソッドの呼び出し中に使用されるパラメータ値を保持する構造化された値。

以下が含まれている必要があります。

  • cmd CLI コマンド

  • version NX-API リクエストのバージョン識別子

id

クライアントによって確立されるオプションの識別子。指定されている場合は、文字列、数値、または null 値を含む必要があります。通常、値は null であってはならず、数値に小数部は含まれません。ユーザーが id パラメータを指定しない場合、サーバーはリクエストが単なる通知であり、応答がないと見なします。たとえば、id :1

NX-API リクエスト要素は、XML 形式または JSON 形式でスイッチに送信されます。リクエストの HTTP ヘッダーは、リクエストのコンテンツ タイプを識別する必要があります。

次の表にリストされている NX-API 要素を使用して、CLI コマンドを指定します。

表 4. NX-API リクエスト要素

NX-API リクエスト要素

説明

version

NX-API バージョンを指定します。

type

実行するコマンドのタイプを指定します。

次のタイプのコマンドがサポートされています。

  • cli_show

    構造化された出力が必要な CLI show コマンド。コマンドが XML 出力をサポートしていない場合は、エラー メッセージが返されます。

  • cli_show_ascii

    ASCII 出力が必要な CLI show コマンド。これは、ASCII 出力を解析する既存のスクリプトと一致します。ユーザーは、最小限の変更で既存のスクリプトを使用できます。

  • cli_conf

    CLI 構成コマンド

  • bash

    Bash コマンド。ほとんどの非対話型 Bash コマンドは、NX-API でサポートされています。

(注)  

 
  • 各コマンドは、現在のユーザーの権限でのみ実行可能です。

  • メッセージ タイプが ASCII の場合、出力でパイプ操作がサポートされます。出力が XML 形式の場合、パイプ操作はサポートされていません。

  • 最大 10 の連続する show コマンドがサポートされています。show コマンドの数が 10 を超える場合、11 番目以降のコマンドは無視されます。

  • 対話型コマンドはサポートされていません。

チャンク

一部の show コマンドは、大量の出力を返す場合があります。コマンド全体が完了する前に NX-API クライアントが出力の処理を開始するために、NX-API は show コマンドの出力チャンクをサポートしています。

次の設定を有効または無効にできます。

0

出力をチャンクしません。

1

チャンク出力。

(注)  

 
  • チャンクをサポートするのは show コマンドだけです。一連の show コマンドが入力されると、最初のコマンドだけがチャンクされて返されます。

  • 出力メッセージ形式のオプションは、XML または JSON です。

  • XML 出力メッセージ形式の場合< または > などの特殊文字は、有効な XML メッセージを形成するために変換されます(< は < に変換されます > は &gt に変換されます)。

    XML SAX を使用して、チャンクされた出力を解析できます。

  • 出力メッセージ形式が JSON の場合、チャンクが連結されて有効な JSON オブジェクトが作成されます。

sid

セッション ID 要素は、応答メッセージがチャンクされている場合にのみ有効です。メッセージの次のチャンクを取得するには、前の応答メッセージの sid と一致する sid を指定する必要があります。

NX-OS リリース 9.3(1) では、sid オプション clear が導入されています。sid clear に設定して新しいチャンク リクエストが開始されると、現在のチャンク リクエストはすべて破棄または破棄されます。

応答コード 429 を受け取った場合:同時チャンク リクエストの最大数は 2 です。sid clear を使用して、現在のチャンク リクエストを破棄します。sid clear を使用した後、後続の応答コードは、残りのリクエストに対して通常どおり動作します。

input

入力は 1 つのコマンドまたは複数のコマンドです。ただし、異なるメッセージ タイプに属するコマンドを混在させてはなりません。たとえば、show コマンドは cli_show メッセージ タイプであり、cli_conf モードではサポートされません。

(注)  

 

bash を除き、複数のコマンドは「;」で区切ります。(; は、単一のブランク文字で囲む必要があります。)

bash の場合、複数のコマンドは「;」で区切ります。(; は単一のブランク文字で囲まれていません。)

以下は、複数のコマンドの例です。

cli_show

show version ; show interface brief ; show vlan

cli_conf

interface Eth4/1 ; no shut ; switchport 
								

bash

cd /bootflash;mkdir new_dir 
								

output_format

使用可能な出力メッセージ形式は次のとおりです。

xml

XML 形式を指定します。

json

JSON 形式で出力を指定します。

(注)  

 

Cisco Nexus 9000 シリーズ CLI は XML 出力をサポートしています。つまり、JSON 出力は XML から変換されます。変換はスイッチで処理されます。

計算のオーバーヘッドを管理するために、JSON 出力は出力の量によって決定されます。出力が 1 MB を超える場合、出力は XML 形式で返されます。出力がチャンクされている場合、XML 出力のみがサポートされます。

HTTP/HTTPS ヘッダーの content-type ヘッダーは、応答形式(XML または JSON)のタイプを示します。

NX-API リクエスト要素は、XML 形式または JSON 形式でスイッチに送信されます。リクエストの HTTP ヘッダーは、リクエストのコンテンツ タイプを識別する必要があります。

次の表にリストされている NX-API 要素を使用して、CLI コマンドを指定します。

表 5. NX-API リクエスト要素

NX-API リクエスト要素

説明

version

NX-API バージョンを指定します。

type

実行するコマンドのタイプを指定します。

次のタイプのコマンドがサポートされています。

  • cli_show

    構造化された出力が必要な CLI show コマンド。コマンドが XML 出力をサポートしていない場合は、エラー メッセージが返されます。

  • cli_show_ascii

    ASCII 出力が必要な CLI show コマンド。これは、ASCII 出力を解析する既存のスクリプトと一致します。ユーザーは、最小限の変更で既存のスクリプトを使用できます。

  • cli_conf

    CLI 構成コマンド

  • bash

    Bash コマンド。ほとんどの非対話型 Bash コマンドは、NX-API でサポートされています。

(注)  

 
  • 各コマンドは、現在のユーザーの権限でのみ実行可能です。

  • メッセージ タイプが ASCII の場合、出力でパイプ操作がサポートされます。出力が XML 形式の場合、パイプ操作はサポートされていません。

  • 最大 10 の連続する show コマンドがサポートされています。show コマンドの数が 10 を超える場合、11 番目以降のコマンドは無視されます。

  • 対話型コマンドはサポートされていません。

チャンク

一部の show コマンドは、大量の出力を返す場合があります。コマンド全体が完了する前に NX-API クライアントが出力の処理を開始するために、NX-API は show コマンドの出力チャンクをサポートしています。

次の設定を有効または無効にできます。

0

チャンク出力しません。

1

チャンク出力。

(注)  

 

チャンクをサポートするのは show コマンドだけです。一連の show コマンドが入力されると、最初のコマンドだけがチャンクされて返されます。

出力メッセージの形式は XML です。(XML がデフォルトです。)< または > などの特殊文字は、有効な XML メッセージを形成するために変換されます(< は < に変換されます > は &gt に変換されます)。

XML SAX を使用して、チャンクされた出力を解析できます。

(注)  

 

チャンクが有効な場合、メッセージ形式は XML に制限されます。チャンクが有効な場合、JSON 出力形式はサポートされません。

sid

セッション ID 要素は、応答メッセージがチャンクされている場合にのみ有効です。メッセージの次のチャンクを取得するには、前の応答メッセージの sid と一致する sid を指定する必要があります。

input

入力は 1 つのコマンドまたは複数のコマンドです。ただし、異なるメッセージ タイプに属するコマンドを混在させてはなりません。たとえば、show コマンドは cli_show メッセージ タイプであり、cli_conf モードではサポートされません。

(注)  

 

bash を除き、複数のコマンドは「;」で区切ります。(; は、単一のブランク文字で囲む必要があります。)

bash の場合、複数のコマンドは「;」で区切ります。(; は単一のブランク文字で囲まれていません。)

以下は、複数のコマンドの例です。

cli_show

show version ; show interface brief ; show vlan

cli_conf

interface Eth4/1 ; no shut ; switchport 
								

bash

cd /bootflash;mkdir new_dir 
								

output_format

使用可能な出力メッセージ形式は次のとおりです。

xml

XML 形式を指定します。

json

JSON 形式で出力を指定します。

(注)  

 

Cisco Nexus 3500 プラットフォーム シリーズ CLI は XML 出力をサポートしています。つまり、JSON 出力は XML から変換されます。変換はスイッチで処理されます。

計算のオーバーヘッドを管理するために、JSON 出力は出力の量によって決定されます。出力が 1 MB を超える場合、出力は XML 形式で返されます。出力がチャンクされている場合、XML 出力のみがサポートされます。

HTTP/HTTPS ヘッダーの content-type ヘッダーは、応答形式(XML または JSON)のタイプを示します。

NX-API 応答要素

CLI コマンドに応答する NX-API 要素を次の表に示します。

CLI コマンドに応答する NX-API 要素を次の表に示します:

入力要求が XML または JSON フォーマットの場合、応答には次のものが含まれます:

表 6. NX-API 応答要素

NX-API 応答要素

説明

version

NX-API バージョン。

type

実行するコマンドのタイプ。

sid

応答のセッション識別子。この要素は、応答メッセージがチャンクされている場合にのみ有効です。

outputs

すべてのコマンド出力を囲むタグ。

複数のコマンドが cli_show または cli_show_ascii にある場合、各コマンド出力は単一の出力タグで囲まれます。

メッセージ タイプが cli_conf または bash の場合、cli_conf および bash コマンドにはコンテキストが必要なため、すべてのコマンドに単一の出力タグがあります。

出力

単一のコマンド出力の出力を囲むタグ。

cli_conf と bash メッセージ タイプの場合、この要素にはすべてのコマンドの出力が含まれます。

input

リクエストで指定された 1 つのコマンドを囲むタグ。この要素は、要求入力要素を適切な応答出力要素に関連付けるのに役立ちます。

本文

コマンド応答の本文。

コード

コマンドの実行から返された原因コード。

NX-API は、ハイパーテキスト転送プロトコル(HTTP)ステータス コード レジストリ(http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml)で説明されている標準規格の HTTP原因コードを使用します。

msg

返された原因コードに関連付けられたエラー メッセージ。

JSON の概要(JavaScript オブジェクト表記)

JSON は、判読可能なデータのために設計された軽量テキスト ベースのオープン スタンダードで、XML の代替になります。JSON はもともと JavaScript から設計されましたが、言語に依存しないデータ形式です。JSON/CLI 実行は現在、Cisco Nexus 3500 プラットフォーム スイッチでサポートされています。


(注)  


NX-API/JSON 機能は、Cisco Nexus 3500 プラットフォーム スイッチで使用できるようになりました。


ほぼすべての最新のプログラミング言語で何らかの方法でサポートされている 2 つの主要なデータ構造は次のとおりです。

  • 順序付きリスト :: 配列

  • 順序付けられていないリスト(名前/値のペア):: オブジェクト

show コマンドの JSON/JSON-RPC/XML 出力には、サンドボックス経由でアクセスすることもできます。

JSON に関する注意事項

JSON に関する注意事項は次のとおりです。

  • show run | xml コマンドと show run | json コマンドはサポートされていません(NX-OS 6.0(2)A8(9)以前)。

  • すべての JSON 出力は文字列として返されます(NX-OS 6.0(2)A8(9)以前)。

  • JSON-RPC 整数は、文字列ではなく常に整数として出力されます(NX-OS 6.0(2)A8(9)以前)。

CLI の実行

Show_Command | json

コード例

BLR-VXLAN-NPT-CR-179# show cdp neighbors  | json
{"TABLE_cdp_neighbor_brief_info": {"ROW_cdp_neighbor_brief_info": [{"ifindex": "
83886080", "device_id": "SW-SPARSHA-SAVBU-F10", "intf_id": "mgmt0", "ttl": "148"
, "capability": ["switch", "IGMP_cnd_filtering"], "platform_id": "cisco WS-C2960
S-48TS-L", "port_id": "GigabitEthernet1/0/24"}, {"ifindex": "436207616", "device
_id": "BLR-VXLAN-NPT-CR-178(FOC1745R01W)", "intf_id": "Ethernet1/1", "ttl": "166
", "capability": ["router", "switch", "IGMP_cnd_filtering", "Supports-STP-Disput
e"], "platform_id": "N3K-C3132Q-40G", "port_id": "Ethernet1/1"}]}}
BLR-VXLAN-NPT-CR-179#

XML および JSON でサポートされたコマンド

NX-OS は、次の構造化された出力フォーマットで、さまざまな show コマンドの標準規格出力のリダイレクトをサポートしています。

  • XML
  • JSON
  • JSON フォーマット出力の標準規格ブロックを読みやすくする JSON Pretty
  • NX-OS リリース 9.3(1)で導入された JSON Native と JSON Pretty Native は、追加のコマンド解釈レイヤーをバイパスすることにより、JSON 出力をより高速かつ効率的に表示します。JSON Native および JSON Pretty Native は、出力のデータ型を保持します。出力用の文字列に変換する代わりに、整数を整数として表示します。

標準規格の NX-OS 出力を JSON、JSON Pretty、または XML フォーマットに変換することは、出力を JSON または XML インタープリターに「パイプ」することによって、NX-OS CLI で発生します。たとえば、論理パイプ ( | ) を使用して show ip access コマンドを発行し、JSON、JSON Pretty、JSON Native、JSON Native Pretty、 または XML を指定すると、NX-OS コマンド出力が適切に構造化され、そのフォーマットでエンコードされます。この機能により、プログラムによるデータの解析が可能になり、ソフトウェア ストリーミング テレメトリを介したスイッチからのストリーミング データがサポートされます。Cisco NX-OS のほとんどのコマンドは、JSON、JSON Pretty、および XML 出力をサポートしています。

この機能の選択された例を以下に表示します。

XML および JSON 出力の例

次の例は、ハードウェア テーブルのユニキャストおよびマルチキャスト ルーティング エントリを JSON 形式で表示する方法を示しています。


switch(config)# show hardware profile status | json
{"total_lpm": ["8191", "1024"], "total_host": "8192", "max_host4_limit": "4096",
 "max_host6_limit": "2048", "max_mcast_limit": "2048", "used_lpm_total": "9", "u
sed_v4_lpm": "6", "used_v6_lpm": "3", "used_v6_lpm_128": "1", "used_host_lpm_tot
al": "0", "used_host_v4_lpm": "0", "used_host_v6_lpm": "0", "used_mcast": "0", "
used_mcast_oifl": "2", "used_host_in_host_total": "13", "used_host4_in_host": "1
2", "used_host6_in_host": "1", "max_ecmp_table_limit": "64", "used_ecmp_table":
"0", "mfib_fd_status": "Disabled", "mfib_fd_maxroute": "0", "mfib_fd_count": "0"
}
switch(config)#

次に、ハードウェア テーブルのユニキャストおよびマルチキャスト ルーティング エントリを XML 形式で表示する例を示します。


switch(config)# show hardware profile status | xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<nf:rpc-reply xmlns:nf="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns="http://w ww.cisco.com/nxos:1.0:fib">
 <nf:data>
  <show>
   <hardware>
    <profile>
     <status>
      <__XML__OPT_Cmd_dynamic_tcam_status>
       <__XML__OPT_Cmd_dynamic_tcam_status___readonly__>
        <__readonly__>
         <total_lpm>8191</total_lpm>
         <total_host>8192</total_host>
         <total_lpm>1024</total_lpm>
         <max_host4_limit>4096</max_host4_limit>
         <max_host6_limit>2048</max_host6_limit>
         <max_mcast_limit>2048</max_mcast_limit>
         <used_lpm_total>9</used_lpm_total>
         <used_v4_lpm>6</used_v4_lpm>
         <used_v6_lpm>3</used_v6_lpm>
         <used_v6_lpm_128>1</used_v6_lpm_128>
         <used_host_lpm_total>0</used_host_lpm_total>
         <used_host_v4_lpm>0</used_host_v4_lpm>
         <used_host_v6_lpm>0</used_host_v6_lpm>
         <used_mcast>0</used_mcast>
         <used_mcast_oifl>2</used_mcast_oifl>
         <used_host_in_host_total>13</used_host_in_host_total>
         <used_host4_in_host>12</used_host4_in_host>
         <used_host6_in_host>1</used_host6_in_host>
         <max_ecmp_table_limit>64</max_ecmp_table_limit>
         <used_ecmp_table>0</used_ecmp_table>
         <mfib_fd_status>Disabled</mfib_fd_status>
         <mfib_fd_maxroute>0</mfib_fd_maxroute>
         <mfib_fd_count>0</mfib_fd_count>
        </__readonly__>
       </__XML__OPT_Cmd_dynamic_tcam_status___readonly__>
      </__XML__OPT_Cmd_dynamic_tcam_status>
     </status>
    </profile>
   </hardware>
  </show>
 </nf:data>
</nf:rpc-reply>
]]>]]>
switch(config)#


この例では、JSON 形式でスイッチ上に LLDP タイマーを表示する例を示します。


switch(config)# show lldp timers | json
{"ttl": "120", "reinit": "2", "tx_interval": "30", "tx_delay": "2", "hold_mplier
": "4", "notification_interval": "5"}
switch(config)#


この例では、XML 形式でスイッチ上に LLDP タイマーを表示する例を示します。


switch(config)# show lldp timers | xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<nf:rpc-reply xmlns:nf="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns="http://w ww.cisco.com/nxos:1.0:lldp">
 <nf:data>
  <show>
   <lldp>
    <timers>
     <__XML__OPT_Cmd_lldp_show_timers___readonly__>
      <__readonly__>
       <ttl>120</ttl>
       <reinit>2</reinit>
       <tx_interval>30</tx_interval>
       <tx_delay>2</tx_delay>
       <hold_mplier>4</hold_mplier>
       <notification_interval>5</notification_interval>
      </__readonly__>
     </__XML__OPT_Cmd_lldp_show_timers___readonly__>
    </timers>
   </lldp>
  </show>
 </nf:data>
</nf:rpc-reply>
]]>]]>
switch(config)#

この例は、ACL 統計を XML 形式で表示する方法を示しています。

switch-1(config-acl)# show ip access-lists acl-test1 | xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<nf:rpc-reply xmlns="http://www.cisco.com/nxos:1.0:aclmgr" xmlns:nf="urn:ietf:p arams:xml:ns:netconf:base:1.0">
 <nf:data>
  <show>
   <__XML__OPT_Cmd_show_acl_ip_ipv6_mac>
    <ip_ipv6_mac>ip</ip_ipv6_mac>
    <access-lists>
     <__XML__OPT_Cmd_show_acl_name>
      <name>acl-test1</name>
      <__XML__OPT_Cmd_show_acl_capture>
       <__XML__OPT_Cmd_show_acl_expanded>
        <__XML__OPT_Cmd_show_acl___readonly__>
         <__readonly__>
          <TABLE_ip_ipv6_mac>
           <ROW_ip_ipv6_mac>
            <op_ip_ipv6_mac>ip</op_ip_ipv6_mac>
            <show_summary>0</show_summary>
            <acl_name>acl-test1</acl_name>
            <statistics>enable</statistics>
            <frag_opt_permit_deny>permit-all</frag_opt_permit_deny>
            <TABLE_seqno>
             <ROW_seqno>
              <seqno>10</seqno>
              <permitdeny>permit</permitdeny>
              <ip>ip</ip>
              <src_ip_prefix>192.0.2.1/24</src_ip_prefix>
              <dest_any>any</dest_any>
             </ROW_seqno>
            </TABLE_seqno>
           </ROW_ip_ipv6_mac>
          </TABLE_ip_ipv6_mac>
         </__readonly__>
        </__XML__OPT_Cmd_show_acl___readonly__>
       </__XML__OPT_Cmd_show_acl_expanded>
      </__XML__OPT_Cmd_show_acl_capture>
     </__XML__OPT_Cmd_show_acl_name>
    </access-lists>
   </__XML__OPT_Cmd_show_acl_ip_ipv6_mac>
  </show>
 </nf:data>
</nf:rpc-reply>
]]>]]>
switch-1(config-acl)# 

この例は、ACL 統計を JSON 形式で表示する方法を示しています。

switch-1(config-acl)# show ip access-lists acl-test1 | json
{"TABLE_ip_ipv6_mac": {"ROW_ip_ipv6_mac": {"op_ip_ipv6_mac": "ip", "show_summar
y": "0", "acl_name": "acl-test1", "statistics": "enable", "frag_opt_permit_deny
": "permit-all", "TABLE_seqno": {"ROW_seqno": {"seqno": "10", "permitdeny": "pe
rmit", "ip": "ip", "src_ip_prefix": "192.0.2.1/24", "dest_any": "any"}}}}}
switch-1(config-acl)# 
この例は、スイッチの冗長性情報を JSON Pretty Native 形式で表示する方法を示しています。
switch-1# show system redundancy status | json-pretty native
{
        "rdn_mode_admin":       "HA",
        "rdn_mode_oper":        "None",
        "this_sup":     "(sup-1)",
        "this_sup_rdn_state":   "Active, SC not present",
        "this_sup_sup_state":   "Active",
        "this_sup_internal_state":      "Active with no standby",
        "other_sup":    "(sup-1)",
        "other_sup_rdn_state":  "Not present"
}
switch-1#
次の例は、スイッチの冗長ステータスを JSON 形式で表示する方法を示しています。
switch-1# show system redundancy status | json 
{"rdn_mode_admin": "HA", "rdn_mode_oper": "None", "this_sup": "(sup-1)", "this_
sup_rdn_state": "Active, SC not present", "this_sup_sup_state": "Active", "this
_sup_internal_state": "Active with no standby", "other_sup": "(sup-1)", "other_
sup_rdn_state": "Not present"}
nxosv2# 
switch-1# 

次に、XML 形式で IP ルート要約を表示する例を示します。

switch-1# show ip route summary | xml
<?xml version="1.0" encoding="ISO-8859-1"?> <nf:rpc-reply xmlns="http://www.cisco.com/nxos:1.0:urib" xmlns:nf="urn:ietf:params:xml:ns:netconf:base:1.0">
 <nf:data>
  <show>
   <ip>
    <route>
     <__XML__OPT_Cmd_urib_show_ip_route_command_ip>
      <__XML__OPT_Cmd_urib_show_ip_route_command_unicast>
       <__XML__OPT_Cmd_urib_show_ip_route_command_topology>
        <__XML__OPT_Cmd_urib_show_ip_route_command_l3vm-info>
         <__XML__OPT_Cmd_urib_show_ip_route_command_rpf>
          <__XML__OPT_Cmd_urib_show_ip_route_command_ip-addr>
           <__XML__OPT_Cmd_urib_show_ip_route_command_protocol>
            <__XML__OPT_Cmd_urib_show_ip_route_command_summary>
             <__XML__OPT_Cmd_urib_show_ip_route_command_vrf>
              <__XML__OPT_Cmd_urib_show_ip_route_command___readonly__>
               <__readonly__>
                <TABLE_vrf>
                 <ROW_vrf>
                  <vrf-name-out>default</vrf-name-out>
                  <TABLE_addrf>
                   <ROW_addrf>
                    <addrf>ipv4</addrf>
                    <TABLE_summary>
                     <ROW_summary>
                      <routes>938</routes>
                      <paths>1453</paths>
                      <TABLE_unicast>
                       <ROW_unicast>
                        <clientnameuni>am</clientnameuni>
                        <best-paths>2</best-paths>
                       </ROW_unicast>
                       <ROW_unicast>
                        <clientnameuni>local</clientnameuni>
                        <best-paths>105</best-paths>
                       </ROW_unicast>
                       <ROW_unicast>
                        <clientnameuni>direct</clientnameuni>
                        <best-paths>105</best-paths>
                       </ROW_unicast>
                       <ROW_unicast>
                        <clientnameuni>broadcast</clientnameuni>
                        <best-paths>203</best-paths>
                       </ROW_unicast>
                       <ROW_unicast>
                        <clientnameuni>ospf-10</clientnameuni>
                        <best-paths>1038</best-paths>
                       </ROW_unicast>
                      </TABLE_unicast>
                      <TABLE_route_count>
                       <ROW_route_count>
                        <mask_len>8</mask_len>
                        <count>1</count>
                       </ROW_route_count>
                       <ROW_route_count>
                        <mask_len>24</mask_len>
                        <count>600</count>
                       </ROW_route_count>
                       <ROW_route_count>
                        <mask_len>31</mask_len>
                        <count>13</count>
                       </ROW_route_count>
                       <ROW_route_count>
                        <mask_len>32</mask_len>
                        <count>324</count>
                       </ROW_route_count>
                      </TABLE_route_count>
                     </ROW_summary>
                    </TABLE_summary>
                   </ROW_addrf>
                  </TABLE_addrf>
                 </ROW_vrf>
                </TABLE_vrf>
               </__readonly__>
              </__XML__OPT_Cmd_urib_show_ip_route_command___readonly__>
             </__XML__OPT_Cmd_urib_show_ip_route_command_vrf>
            </__XML__OPT_Cmd_urib_show_ip_route_command_summary>
           </__XML__OPT_Cmd_urib_show_ip_route_command_protocol>
          </__XML__OPT_Cmd_urib_show_ip_route_command_ip-addr>
         </__XML__OPT_Cmd_urib_show_ip_route_command_rpf>
        </__XML__OPT_Cmd_urib_show_ip_route_command_l3vm-info>
       </__XML__OPT_Cmd_urib_show_ip_route_command_topology>
      </__XML__OPT_Cmd_urib_show_ip_route_command_unicast>
     </__XML__OPT_Cmd_urib_show_ip_route_command_ip>
    </route>
   </ip>
  </show>
 </nf:data>
</nf:rpc-reply>
]]>]]>
switch-1#
次の例は、スイッチの OSPF ルーティング パラメータを JSON ネイティブ形式で表示する方法を示しています。
switch-1# show ip ospf | json native 
{"TABLE_ctx":{"ROW_ctx":[{"ptag":"Blah","instance_number":4,"cname":"default","
rid":"0.0.0.0","stateful_ha":"true","gr_ha":"true","gr_planned_only":"true","gr
_grace_period":"PT60S","gr_state":"inactive","gr_last_status":"None","support_t
os0_only":"true","support_opaque_lsa":"true","is_abr":"false","is_asbr":"false"
,"admin_dist":110,"ref_bw":40000,"spf_start_time":"PT0S","spf_hold_time":"PT1S"
,"spf_max_time":"PT5S","lsa_start_time":"PT0S","lsa_hold_time":"PT5S","lsa_max_
time":"PT5S","min_lsa_arr_time":"PT1S","lsa_aging_pace":10,"spf_max_paths":8,"m
ax_metric_adver":"false","asext_lsa_cnt":0,"asext_lsa_crc":"0","asopaque_lsa_cn
t":0,"asopaque_lsa_crc":"0","area_total":0,"area_normal":0,"area_stub":0,"area_
nssa":0,"act_area_total":0,"act_area_normal":0,"act_area_stub":0,"act_area_nssa
":0,"no_discard_rt_ext":"false","no_discard_rt_int":"false"},{"ptag":"100","ins
tance_number":3,"cname":"default","rid":"0.0.0.0","stateful_ha":"true","gr_ha":
"true","gr_planned_only":"true","gr_grace_period":"PT60S","gr_state":"inactive"
,"gr_last_status":"None","support_tos0_only":"true","support_opaque_lsa":"true"
,"is_abr":"false","is_asbr":"false","admin_dist":110,"ref_bw":40000,"spf_start_
time":"PT0S","spf_hold_time":"PT1S","spf_max_time":"PT5S","lsa_start_time":"PT0
S","lsa_hold_time":"PT5S","lsa_max_time":"PT5S","min_lsa_arr_time":"PT1S","lsa_
aging_pace":10,"spf_max_paths":8,"max_metric_adver":"false","asext_lsa_cnt":0,"
asext_lsa_crc":"0","asopaque_lsa_cnt":0,"asopaque_lsa_crc":"0","area_total":0,"
area_normal":0,"area_stub":0,"area_nssa":0,"act_area_total":0,"act_area_normal"
:0,"act_area_stub":0,"act_area_nssa":0,"no_discard_rt_ext":"false","no_discard_
rt_int":"false"},{"ptag":"111","instance_number":1,"cname":"default","rid":"0.0
.0.0","stateful_ha":"true","gr_ha":"true","gr_planned_only":"true","gr_grace_pe
riod":"PT60S","gr_state":"inactive","gr_last_status":"None","support_tos0_only"
:"true","support_opaque_lsa":"true","is_abr":"false","is_asbr":"false","admin_d
ist":110,"ref_bw":40000,"spf_start_time":"PT0S","spf_hold_time":"PT1S","spf_max
_time":"PT5S","lsa_start_time":"PT0S","lsa_hold_time":"PT5S","lsa_max_time":"PT
5S","min_lsa_arr_time":"PT1S","lsa_aging_pace":10,"spf_max_paths":8,"max_metric
_adver":"false","asext_lsa_cnt":0,"asext_lsa_crc":"0","asopaque_lsa_cnt":0,"aso
paque_lsa_crc":"0","area_total":0,"area_normal":0,"area_stub":0,"area_nssa":0,"
act_area_total":0,"act_area_normal":0,"act_area_stub":0,"act_area_nssa":0,"no_d
iscard_rt_ext":"false","no_discard_rt_int":"false"},{"ptag":"112","instance_num
ber":2,"cname":"default","rid":"0.0.0.0","stateful_ha":"true","gr_ha":"true","g
r_planned_only":"true","gr_grace_period":"PT60S","gr_state":"inactive","gr_last
_status":"None","support_tos0_only":"true","support_opaque_lsa":"true","is_abr"
:"false","is_asbr":"false","admin_dist":110,"ref_bw":40000,"spf_start_time":"PT
0S","spf_hold_time":"PT1S","spf_max_time":"PT5S","lsa_start_time":"PT0S","lsa_h
old_time":"PT5S","lsa_max_time":"PT5S","min_lsa_arr_time":"PT1S","lsa_aging_pac
e":10,"spf_max_paths":8,"max_metric_adver":"false","asext_lsa_cnt":0,"asext_lsa
_crc":"0","asopaque_lsa_cnt":0,"asopaque_lsa_crc":"0","area_total":0,"area_norm
al":0,"area_stub":0,"area_nssa":0,"act_area_total":0,"act_area_normal":0,"act_a
rea_stub":0,"act_area_nssa":0,"no_discard_rt_ext":"false","no_discard_rt_int":"
false"}]}}
switch-1# 
次の例は、OSPF ルーティング パラメータを JSON Pretty Native 形式で表示する方法を示しています。
switch-1# show ip ospf | json-pretty native
{
   "TABLE_ctx": {
          "ROW_ctx": [{
                        "ptag": "Blah",
                        "instance_number":      4,
                        "cname":        "default",
                        "rid":  "0.0.0.0",
                        "stateful_ha":  "true",
                        "gr_ha":        "true",
                        "gr_planned_only":      "true",
                        "gr_grace_period":      "PT60S",
                        "gr_state":     "inactive",
                        "gr_last_status":       "None",
                        "support_tos0_only":    "true",
                        "support_opaque_lsa":   "true",
                        "is_abr":       "false",
                        "is_asbr":      "false",
                        "admin_dist":   110,
                        "ref_bw":       40000,
                        "spf_start_time":       "PT0S",
                        "spf_hold_time":        "PT1S",
                        "spf_max_time": "PT5S",
                        "lsa_start_time":       "PT0S",
                        "lsa_hold_time":        "PT5S",
                        "lsa_max_time": "PT5S",
                        "min_lsa_arr_time":     "PT1S",
                        "lsa_aging_pace":       10,
                        "spf_max_paths":        8,
                        "max_metric_adver":     "false",
                        "asext_lsa_cnt":        0,
                        "asext_lsa_crc":        "0",
                        "asopaque_lsa_cnt":     0,
                        "asopaque_lsa_crc":     "0",
                        "area_total":   0,
                        "area_normal":  0,
                        "area_stub":    0,
                        "area_nssa":    0,
                        "act_area_total":       0,
                        "act_area_normal":      0,
                        "act_area_stub":        0,
                        "act_area_nssa":        0,
                        "no_discard_rt_ext":    "false",
                        "no_discard_rt_int":    "false"
                     }, {
                        "ptag": "100",
                        "instance_number":      3,
                        "cname":        "default",
                        "rid":  "0.0.0.0",
                        "stateful_ha":  "true",
                        "gr_ha":        "true",
                        "gr_planned_only":      "true",
                        "gr_grace_period":      "PT60S",
                        "gr_state":     "inactive",
                         
                        ... content deleted for brevity ...
                               
                        "max_metric_adver":     "false",
                        "asext_lsa_cnt":        0,
                        "asext_lsa_crc":        "0",
                        "asopaque_lsa_cnt":     0,
                        "asopaque_lsa_crc":     "0",
                        "area_total":   0,
                        "area_normal":  0,
                        "area_stub":    0,
                        "area_nssa":    0,
                        "act_area_total":       0,
                        "act_area_normal":      0,
                        "act_area_stub":        0,
                        "act_area_nssa":        0,
                        "no_discard_rt_ext":    "false",
                        "no_discard_rt_int":    "false"
                }]
        }
}
switch-1#

次の例は、JSON 形式で IP ルート要約を表示する例を示します。

switch-1# show ip route summary | json
{"TABLE_vrf": {"ROW_vrf": {"vrf-name-out": "default", "TABLE_addrf": {"ROW_addrf": {"addrf": "ipv4", "TABLE_summary": {"ROW_summary": {"routes": "938", "paths": "
1453", "TABLE_unicast": {"ROW_unicast": [{"clientnameuni": "am", "best-paths": "2"}, {"clientnameuni": "local", "best-paths": "105"}, {"clientnameuni": "direct",
"best-paths": "105"}, {"clientnameuni": "broadcast", "best-paths": "203"}, {"clientnameuni": "ospf-10", "best-paths": "1038"}]}, "TABLE_route_count": {"ROW_route_
count": [{"mask_len": "8", "count": "1"}, {"mask_len": "24", "count": "600"}, {"mask_len": "31", "count": "13"}, {"mask_len": "32", "count": "324"}]}}}}}}}} 
switch-1#

次の例は、JSON Pretty 形式で IP ルート要約を表示する例を示します。

switch-1# show ip route summary | json-pretty
  {  
      "TABLE_vrf": {
        "ROW_vrf": {
            "vrf-name-out": "default",
            "TABLE_addrf": {
                "ROW_addrf": {
                    "addrf": "ipv4",
                    "TABLE_summary": {
                        "ROW_summary": {
                            "routes": "938",
                            "paths": "1453",
                            "TABLE_unicast": {
                                "ROW_unicast": [
                                    {
                                        "clientnameuni": "am",
                                        "best-paths": "2"
                                    },
                                    {
                                        "clientnameuni": "local",
                                        "best-paths": "105"
                                    },
                                    {
                                        "clientnameuni": "direct",
                                        "best-paths": "105"
                                    },
                                    {
                                        "clientnameuni": "broadcast",
                                        "best-paths": "203"
                                    },
                                    {
                                        "clientnameuni": "ospf-10",
                                        "best-paths": "1038"
                                    }
                                ]
                            },
                            "TABLE_route_count": {
                                "ROW_route_count": [
                                    {
                                        "mask_len": "8",
                                        "count": "1"
                                    },
                                    {
                                        "mask_len": "24",
                                        "count": "600"
                                    },
                                    {
                                        "mask_len": "31",
                                        "count": "13"
                                    },
                                    {
                                        "mask_len": "32",
                                        "count": "324"
                                    }
                                ]
                            }
                        }
                    }
                }
            }
        }
    }
}
switch-1#

JSON-RPC、JSON、および XML でサポートされるコマンド

Cisco NX-OS リリース 6.0(2)U4(1)以降、次のコマンドの JSON-RPC、JSON、および XML 出力がサポートされます。

  • show bgp all

  • show bgp process

  • show bgp convergence

  • bgp ip ユニキャスト / マルチキャストを表示します

  • bgp ipv4 ユニキャスト / マルチキャストを表示します

  • bgp ipv6 ユニキャスト / マルチキャストを表示します

  • show bgp paths

  • show bgp peer-policy

  • show bgp vrf

  • show bgp sessions

  • show bgp statistics

  • consistency-checker が ipv4 の転送を表示

  • consistency-checker が ipv6 の転送を表示

  • show lldp neighbors

  • show lldp neighbors detail

  • lldp ネイバー インターフェイス イーサネット x / x を表示

  • lldp ネイバー インターフェイス イーサネット x / x の詳細を表示

  • lldp portid-subtype を表示します

  • show lldp timers

  • show lldp tlv-select

  • show lldp traffic

  • lldp トラフィック インターフェイス イーサネット x / x を表示

  • show process memory

  • プロセス cpu とプロセスを表示します

  • ルーティング vrf 全てを表示

  • システム内部転送ルートの要約を表示

  • show system resources


(注)  


NX-API がサポートする最大データ サイズは 20MB です。20MB の制限を超えた場合、次のコマンドはサポートされません(NX-OS 6.0(2)A8(9)以前)。

  • ハードウェア プロファイル バッファ モニタの詳細を表示します

  • ハードウェア プロファイル バッファ モニタ マルチキャスト 1 詳細を表示します

  • ハードウェア プロファイル バッファ モニタ マルチキャスト 2 の詳細を表示します

  • ハードウェア プロファイル バッファ モニタ マルチキャスト 3 の詳細を表示します


XML および JSON 出力の例

次の例は、ハードウェア テーブルのユニキャストおよびマルチキャスト ルーティング エントリを JSON 形式で表示する方法を示しています。


switch(config)# show hardware profile status | json
{"total_lpm": ["8191", "1024"], "total_host": "8192", "max_host4_limit": "4096",
 "max_host6_limit": "2048", "max_mcast_limit": "2048", "used_lpm_total": "9", "u
sed_v4_lpm": "6", "used_v6_lpm": "3", "used_v6_lpm_128": "1", "used_host_lpm_tot
al": "0", "used_host_v4_lpm": "0", "used_host_v6_lpm": "0", "used_mcast": "0", "
used_mcast_oifl": "2", "used_host_in_host_total": "13", "used_host4_in_host": "1
2", "used_host6_in_host": "1", "max_ecmp_table_limit": "64", "used_ecmp_table":
"0", "mfib_fd_status": "Disabled", "mfib_fd_maxroute": "0", "mfib_fd_count": "0"
}
switch(config)#

次に、ハードウェア テーブルのユニキャストおよびマルチキャスト ルーティング エントリを XML 形式で表示する例を示します。


switch(config)# show hardware profile status | xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<nf:rpc-reply xmlns:nf="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns="http://w ww.cisco.com/nxos:1.0:fib">
 <nf:data>
  <show>
   <hardware>
    <profile>
     <status>
      <__XML__OPT_Cmd_dynamic_tcam_status>
       <__XML__OPT_Cmd_dynamic_tcam_status___readonly__>
        <__readonly__>
         <total_lpm>8191</total_lpm>
         <total_host>8192</total_host>
         <total_lpm>1024</total_lpm>
         <max_host4_limit>4096</max_host4_limit>
         <max_host6_limit>2048</max_host6_limit>
         <max_mcast_limit>2048</max_mcast_limit>
         <used_lpm_total>9</used_lpm_total>
         <used_v4_lpm>6</used_v4_lpm>
         <used_v6_lpm>3</used_v6_lpm>
         <used_v6_lpm_128>1</used_v6_lpm_128>
         <used_host_lpm_total>0</used_host_lpm_total>
         <used_host_v4_lpm>0</used_host_v4_lpm>
         <used_host_v6_lpm>0</used_host_v6_lpm>
         <used_mcast>0</used_mcast>
         <used_mcast_oifl>2</used_mcast_oifl>
         <used_host_in_host_total>13</used_host_in_host_total>
         <used_host4_in_host>12</used_host4_in_host>
         <used_host6_in_host>1</used_host6_in_host>
         <max_ecmp_table_limit>64</max_ecmp_table_limit>
         <used_ecmp_table>0</used_ecmp_table>
         <mfib_fd_status>Disabled</mfib_fd_status>
         <mfib_fd_maxroute>0</mfib_fd_maxroute>
         <mfib_fd_count>0</mfib_fd_count>
        </__readonly__>
       </__XML__OPT_Cmd_dynamic_tcam_status___readonly__>
      </__XML__OPT_Cmd_dynamic_tcam_status>
     </status>
    </profile>
   </hardware>
  </show>
 </nf:data>
</nf:rpc-reply>
]]>]]>
switch(config)#


この例では、JSON 形式でスイッチ上に LLDP タイマーを表示する例を示します。


switch(config)# show lldp timers | json
{"ttl": "120", "reinit": "2", "tx_interval": "30", "tx_delay": "2", "hold_mplier
": "4", "notification_interval": "5"}
switch(config)#


この例では、XML 形式でスイッチ上に LLDP タイマーを表示する例を示します。


switch(config)# show lldp timers | xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<nf:rpc-reply xmlns:nf="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns="http://w ww.cisco.com/nxos:1.0:lldp">
 <nf:data>
  <show>
   <lldp>
    <timers>
     <__XML__OPT_Cmd_lldp_show_timers___readonly__>
      <__readonly__>
       <ttl>120</ttl>
       <reinit>2</reinit>
       <tx_interval>30</tx_interval>
       <tx_delay>2</tx_delay>
       <hold_mplier>4</hold_mplier>
       <notification_interval>5</notification_interval>
      </__readonly__>
     </__XML__OPT_Cmd_lldp_show_timers___readonly__>
    </timers>
   </lldp>
  </show>
 </nf:data>
</nf:rpc-reply>
]]>]]>
switch(config)#