Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NFX150、NFX250 NextGen、NFX350デバイスでのSNMPの設定

SNMP は、ネットワーク デバイスを中央から監視します。NFXシリーズ(NFX150、NFX250 NextGen、NFX350)デバイスは、SNMPv2cおよびSNMPv3を使用したMIBデータのクエリーをサポートしています。 個別のSNMPエージェント(SNMPプロセスまたはsnmpdと呼ばれる)は、vjunos0とホストOSに存在します。vjunos0は、ホストOSのプロキシとして機能します。システムおよびシャーシ関連の MIB データは vjunos0 で利用できます。

Junos OS リリース 21.4R1 以降、NFXシリーズデバイスは LM-SENSORS-MIB、ENTITY-SENSORS-MIB、および libvirt MIB をサポートしています。LM-SENSORS-MIB および ENTITY-SENSORS-MIB データは vjunos0 で利用でき、libvirt MIB データはホスト OS で利用可能です。libvirt MIB を使用して仮想マシンを監視することができます。このトピックでは、libvirt MIB の SNMP 実装について説明します。

Libvirt MIB データにアクセスするために SNMPv2c を設定する方法

SNMPv2c は、SNMP クライアントと、クライアントが SNMP エージェント内のデータにアクセスする方法を決定する際にパスワードとして機能するコミュニティ文字列を使用します。コミュニティ文字列は、NFXシリーズデバイスでは事前設定されていません。SNMPv2c を使用して MIB データにアクセスするには、ホスト OS のコミュニティ文字列と SNMP プロキシを構成する必要があります。コミュニティ文字列がホストOSに追加されます。

図 1 は、NFXシリーズ デバイス上の SNMPv2c の通信フローを示しています。

図 1:NFXシリーズ デバイス Communication Flow for SNMPv2c on NFX Series Devices での SNMPv2c の通信フロー

ユーザーが snmpwalkなどのSNMPコマンドを発行する場合は、ネットワーク管理サーバーからコミュニティ文字列を使用して snmpget します。

  • リクエストは vjunos0 の SNMP デーモンに送られます。SNMPDは、SNMPリクエスト内のコミュニティ文字列を読み取り、内部ルーティング インスタンスnfx-hostを使用してリクエストをホストOSにリダイレクトします。
  • ホストOSのsnmpdがリクエストを処理し、応答をvjunos0に送信し、vjunos0がネットワーク管理サーバーに送信します。

SNMPv2c を設定するには:

  1. ホストOSでSNMPv2cコミュニティ文字列を構成します。
    手記:

    同じ名前のコミュニティがデバイス上にまだ存在しないことを確認します。

  2. vjunos0 でプロキシを設定します。

    トラップを有効にするには、「 libvirt SNMPv2c トラップサポートを有効にする方法」を参照してください。

Libvirt MIB データにアクセスするために SNMPv3 を設定する方法

SNMPv3は認証と暗号化をサポートしているため、MIBデータにアクセスする安全な方法を提供します。SNMPv3 では、メッセージのセキュリティにユーザーベースのセキュリティモデル (USM) と、アクセス制御に view-based access control model(VACM)を使用します。USM は認証と暗号化を指定し、VACM はアクセス制御ルールを指定します。 図 2 は、NFXシリーズ デバイス上の SNMPv3 の通信フローを示しています。SNMPv3 の場合は、以下を作成する必要があります。

  • ホストOSのvmhost階層の下にある、認証タイプとプライバシーを持つSNMPv3ユーザー
  • ユーザー名とコンテキストを持つSNMPv3プロキシ
図 2: NFXシリーズ デバイス Communication Flow for SNMPv3 on NFX Series Devices での SNMPv3 の通信フロー

ユーザーが、ネットワーク管理サーバーからのユーザー名と認証資格情報を使用して、(snmpwalk, snmpget) などの SNMP コマンドを発行すると、次のようになります。

  • リクエストは vjunos0 の SNMP デーモンに送られます。SNMPDは、SNMPリクエスト内のホストOSのコンテキストを読み取り、内部ルーティング インスタンスnfx-hostを使用してリクエストをホストOSにリダイレクトします。
  • ホストOSのsnmpdがリクエストを処理し、応答をvjunos0に送信し、vjunos0がネットワーク管理サーバーに送信します。

SNMPv3を設定するには:

  1. USMのローカルエンジン情報を設定します。
  2. リモートエンジンとリモートユーザーを設定します。リモートエンジンIDを80001f8804686f7374として設定する必要があります。リモートエンジンIDは、リモートホストで送信されたパケットを認証して暗号化するためのセキュリティダイジェストの計算に使用されます。インフォームメッセージを送信する場合、エージェントはリモートエンジンで設定されたユーザーの認証情報を使用します(インフォームターゲット)。
  3. VACMを設定します。
  4. ホストOSでSNMPv3を設定します。
  5. SNMP v3 プロキシーを構成します。

    トラップを有効にするには、「 libvirt SNMPv3 トラップサポートを有効にする方法」を参照してください。

Libvirt MIB データをクエリーする方法

snmpgetsnmpgetnext、および snmpwalk コマンドを使用して、MIB 情報を読み取ることができます。snmpset を使用して libvirt MIB を設定することはできません。

libvirt MIB は以下の情報を提供します。

  • アクティブな仮想ゲストの名前(ドメイン名)
  • アクティブゲストの現在の状態(ドメインの状態)
  • 仮想ゲストが使用する仮想 CPU の数 (ドメインに定義された CPU 数)
  • 仮想ゲストが使用している現在のメモリ量(MiB単位)(現在の割り当てメモリ)
  • ドメインのメモリ制限 (仮想ゲストが使用できるメモリの最大量 (MiB) )
  • 仮想ゲストが使用する CPU 時間、ナノ秒(CPU 時間)
  • 仮想ゲストのステータス(行のステータス)

以下は、 snmpwalk コマンドを NMS で実行した場合の出力例です。

  • SNMPv2c:
  • SNMPv3:

以下に、NFXシリーズ デバイスで snmpwalk コマンドを実行した場合の出力例を示します。

サポートされているシャーシ MIB とトラップ

NFXシリーズ デバイスは、次のシャーシ MIB をサポートしています。

  • jnxFruContentsIndex(英語)
  • jnxFruL1インデックス
  • jnxFruL2インデックス
  • jnxFruL3インデックス
  • jnxFruName
  • jnxFruType
  • jnxFruSlot
  • jnxFruTemp
  • jnxFruOfflineReason
  • jnxFruLastPowerOff
  • jnxFruLastPowerOn
  • jnxFruパワーアップタイム
  • jnxFruChassisId(jnxフルシャーシID)
  • jnxFruChassisDescr
  • jnxFruPsd割り当て

NFXシリーズデバイスは、以下のトラップをサポートしています。

  • jnxFanFailure
  • jnxFanOK
  • jnxPowerSupplyの失敗
  • jnxPowerSupplyOK
  • jnxOverTemperature(jnx過熱)
  • jnx温度OK
  • jnxPowerSupplyRemoved(NFX350のみ)

サポートされる libvirt MIB トラップ

libvirt MIB は仮想マシンを監視し、ネットワーク管理サーバーに非同期トラップを送信します。たとえば、ドメイン(VNF)が予期せずクラッシュした場合、ネットワーク管理サーバーに通知が送信されます。トラップはホストOSで生成され、vjunos0のsnmptrapdデーモンに送信されます。snmptrapd デーモンは、トラップをネットワーク管理サーバーに転送します。

libvirt トラップの定義構造は次のとおりです。

snmp libvirt トラップの出力例を次に示します。

アクティブゲストの現在の状態は、次のいずれかになります。

  • 実行中(1)
  • ブロック(2)
  • 一時停止(3)
  • シャットダウン(4)
  • シャットオフ(5)
  • クラッシュ(6)

libvirt SNMPv2c トラップサポートを有効にする方法

SNMPv2c トラップ サポートを有効にするには:

  1. トラップのコミュニティ名を設定します。

  2. トラップの発信元アドレスであるクライアントアドレスを設定します。送信元アドレスを設定しない場合、ハイパーバイザーアドレス(192.168.1.1)がクライアントアドレスとして使用されます。

  3. ポートフォワーディングを設定します。複数のIPアドレスを設定できます。

libvirt SNMPv3 トラップサポートを有効にする方法

SNMPv3 トラップ サポートを有効にするには:

  1. トラップのユーザー名を設定します。

  2. トラップの発信元アドレスであるクライアントアドレスを設定します。送信元アドレスを設定しない場合、ハイパーバイザーアドレス(192.168.1.1)がクライアントアドレスとして使用されます。

  3. ユーザーの AES パスワードと SHA パスワードを設定します。

  4. libVirtMIBトラップサポートのポートフォワーディングを設定します。複数のIPアドレスを設定できます。