シンプル・ネットワーク管理プロトコル(SNMP)は、IPネットワーク上のデバイスを監視・管理するためのオープンスタンダードです。管理ステーションがデバイスに対してステータスやパフォーマンスデータのポーリングを行い、デバイスは状態が変化した瞬間にトラップを送信します。これは、ほとんどのネットワーク監視プラットフォームがルーター、スイッチ、ファイアウォール、SD-WANアプライアンスを監視するために採用している仕組みです。
主なポイント
- SNMP により、管理者はデバイスをポーリングしたり、デバイスがアラートトラップを送信したりすることが可能になります。
- SNMPv1 および SNMPv2c はコミュニティ文字列に依存していますが、SNMPv3 では本格的なセキュリティ機能が追加されています。
- MIBは、CPU負荷からインターフェースカウンタに至るまで、デバイスが公開するOIDを定義します。
- 「Traps」は1回通知するのみですが、「informs」は受信確認と再送信を行います。
- VOSデバイスは、USMユーザーおよびVACMビューを用いたSNMPv2cおよびSNMPv3に対応しています。
このページの内容: その重要性仕組みSNMPのバージョンSNMPとVersaよくある質問
SNMPはなぜ重要なのでしょうか?
どの運用チームも、ユーザーから苦情が寄せられる前に、デバイスの状態が異常であることを把握しておく必要があります。SNMP によってそれが可能になります。管理ステーションがルーター、スイッチ、ファイアウォール、SD-WAN アプライアンスに対して CPU、メモリ、セッションカウンターの情報をポーリングする一方で、デバイス側は、リンクの切断、ディスクの故障、トンネルの切断といったアラーム状態が発生した瞬間にトラップを送信します。
SNMPは30年近くにわたり、ほぼすべての管理対象ネットワーク機器に搭載されてきたため、1つのプラットフォームで、単一のプロトコルを介して数十社のベンダーの機器から情報を取得することができます。SNMPv3では、認証された暗号化メッセージング機能が追加され、当初の設計における最大の弱点であった「平文のコミュニティ文字列」の問題が解消されました。これが、SNMPが今日でも機器監視のデフォルトの選択肢であり続けている理由です。
SNMPとは何ですか?
SNMPは、マネージャー/エージェントモデルに基づいて動作します。監視対象デバイス上のSNMPエージェントは、管理対象オブジェクトを公開します。各オブジェクトはオブジェクト識別子(OID)によって識別され、そのデバイスが報告可能な情報をまとめた辞書である管理情報ベース(MIB)に定義されています。SNMPマネージャーは、OIDの値を読み取るためにGETリクエストを送信したり、値を変更するためにSETリクエストを送信したりします。
2つのメッセージフローが、逆方向へのアラートを伝送します。トラップは「ファイア・アンド・フォーゲット」方式であり、確認応答がないため、トラップが失われても気づかれません。インフォームは、受信確認を伴う点でトラップと同様の仕組みです。マネージャーが受信確認を行うと、エージェントは確認が取れるか、再試行回数が尽きるまで再送信を繰り返します。SNMPv3では、ユーザーごとにメッセージの認証と暗号化を行う「ユーザーベースのセキュリティモデル(USM)」と、各ユーザーがアクセスできるOIDを制限する「ビューベースのアクセス制御モデル(VACM)」が追加されています。
SNMPのバージョン
現在、3つのプロトコルバージョンが使用されています。SNMPv1は1988年に設計されたオリジナル版で、機能はしますが、事実上時代遅れとなっています。SNMPv2cは、現在もほとんどのデバイスで動作しているバージョンです。このバージョンでは一括取得機能が追加されていますが、SNMPv1のコミュニティ文字列モデル(共有された平文の文字列が脆弱なパスワードとして機能する仕組み)は維持されています。SNMPv3は、コミュニティ文字列をユーザーごとの認証(MD5またはSHA)と、USMによるオプションの暗号化(DESまたはAES)に置き換え、さらにVACMによるアクセス制御を追加しています。これは、信頼できない通信回線上で安全に利用できる唯一のバージョンです。
また、導入時には、オーバーヘッドの少ないアラート用のトラップと、確実な配信が保証されるインフォームのいずれかを選択することになり、ベンダーやデバイスの種類によって異なるMIBに依存することになります。
SNMP およびVersa
VOSデバイスは、完全なSNMPエージェントとして出荷され、「オブジェクトとコネクタ」>「コネクタ」>「SNMP」にあるDirectorデバイステンプレートを通じて設定されます。トラッププロファイルでは、アラートを受信するマネージャーを定義し、コミュニティではSNMPv2c文字列を設定し、エージェント設定ではデバイスが受け入れるプロトコルバージョンを選択します。USMユーザーにはSNMPv3の認証およびプライバシー設定が適用され、VACMでは各ユーザーが読み取ったり通知を受けたりできる内容を制限します。詳細な手順については、「SNMPの設定」を参照してください。
VOSデバイスのアラームはデフォルトでAnalyticsおよびDirectorに送信されますが、CPU、ディスク、インターフェース、BGP、HAなど、ほぼすべてのアラームタイプについて、SNMPを宛先として指定することも可能です。これにより、ヘルスイベントがトラップに変換され、コレクターがこれを処理できるようになります。これには、VNFマネージャーでの設定(SNMPサーバーのアドレスおよびサーバーへの接続に使用するインターフェース)も必要です。 SNMPに不具合が生じた場合、「VOSデバイスにおけるSNMPのトラブルシューティング」では、devel.logおよびsnmp.logファイルを詳細に確認し、コミュニティ名の不一致、SNMPv3ユーザーの欠落、または到達性の問題を特定する手順を解説しています。
よくある質問
SNMPポーリングとトラップの違いは何ですか?
ポーリングはマネージャー側から開始されます。マネージャーがGETリクエストを送信すると、エージェントはマネージャーが設定したスケジュールに従って応答します。一方、トラップはエージェント側から開始されます。デバイスは、条件が発生した瞬間に、リクエストを待たずに通知を送信します。そのため、ポーリングでは見逃してしまうようなイベントも、トラップによって捕捉されるのです。
SNMPv3はなぜSNMPv2cよりも安全なのでしょうか?
SNMPv2cでは、平文で送信されるコミュニティ文字列を用いて認証が行われるため、トラフィックを傍受した者なら誰でもその内容を読み取ったり、偽装したりすることが可能です。SNMPv3では、これに代わって、ユーザーごとの認証(MD5またはSHA)、USMによるオプションの暗号化(DESまたはAES)、および各ユーザーが閲覧できる情報を制限するVACMによるアクセス制御が導入されています。
SNMPにおけるMIBとは何ですか?
管理情報ベース(MIB)とは、デバイスがSNMPを介して公開するオブジェクト識別子(OID)を定義した、機械可読なファイルのことです。各OIDの意味、データ型、および読み取り専用か書き込み可能かが記載されています。ベンダーはデバイス固有のMIBを公開しており、VersaのVersa-MIB.pdfは、各VOSリリースに同梱されています。
SNMPはどのポートを使用しますか?
SNMPのポーリング要求および応答には、UDPポート161が使用されます。SNMPトラップおよびインフォームは、デフォルトでUDPポート162を使用します。マネージャーまたはトラップコレクターと監視対象デバイス間の全経路において、これらのポートの両方が開いている必要があります。そうしないと、要求やアラートが到達しなくなります。
SNMPトラップとインフォームの違いは何ですか?
トラップは確認応答なしで一度だけ送信されるため、トラップが失われた場合でも再送信されることはなく、その事実も認識されません。インフォームは、確認応答を伴うという点でトラップと同じ仕組みです。マネージャーが受信を確認すると、エージェントは確認応答が得られるか、再試行回数の上限に達するまで再送信を繰り返します。つまり、信頼性を確保するためにオーバーヘッドを犠牲にしているのです。
SNMPに関する詳細
さらに詳しく知りたい場合は、私たちが信頼している情報源を以下にご紹介します。
| RFC 1157: 簡易ネットワーク管理プロトコル | RFC 3411: SNMP管理フレームワークのためのアーキテクチャ |
|---|---|
| 1988年に策定されたIETFの初期仕様:マネージャー/エージェントモデル、GET/SET操作、そしてこれらすべてが基盤としているトラップメカニズム。 | SNMPv3の「アーキテクチャ 」ドキュメント:モジュラーエンジン、USM認証、およびVACMアクセス制御がどのように連携しているか。 |
関連用語
SNMPについて調べているなら、次はこれらもぜひチェックしてみてください。
| リモート認証ダイヤルインユーザーサービス | ネットワークタイムプロトコル | 軽量ディレクトリアクセスプロトコル |
|---|---|---|
| 認証、認可、およびアカウンティングのための分散型プロトコル。アクセスが許可される前に、外部サーバーに対して認証情報が照合される。 | システムクロックを協定世界時(UTC)に同期させることで、Director、Analytics、およびVOSデバイス間で、ログ、アラーム、トラップのタイムスタンプが一致するようにします。 | Versa の認証プロファイルで使用される、ディレクトリサーバーに対してユーザーおよびグループ情報を照会するためのクライアント・サーバープロトコル。 |