SNMP(簡易ネットワーク管理プロトコル)とは?基礎から解説

数十台、数百台のネットワーク機器をひとつの画面で管理できるようにするSNMPの基礎を解説します。

SNMPとは何か

企業やデータセンターのように管理すべきネットワーク機器が数十台、数百台に及ぶ環境では、機器ごとに個別にアクセスして状態を確認するのは現実的ではありません。SNMP(Simple Network Management Protocol)は、機器が共通の方式でトラフィック量・温度・エラー回数といった自分の状態情報を報告し、管理者がそれをひとつの画面にまとめて確認できるようにする、ネットワーク管理の古くからの標準規格です。

マネージャー・エージェント構造

情報を問い合わせる管理ソフトウェアである「マネージャー」と、各機器上で動作して情報を提供する「エージェント」がペアになって動作します。監視サーバー(マネージャー)がルーターやスイッチ(エージェント)に「このポートの現在のトラフィック量は?」と問い合わせると、エージェントは自分が保持している値を読み取って応答します。ひとつのマネージャーが多数のエージェントに同時に問い合わせて集計することで、ネットワーク全体の状態を一目で把握できるダッシュボードを構築できます。

MIBとOID:値を指し示すアドレス体系

機器が提供できるすべての情報項目の一覧をMIB(Management Information Base)と呼び、その中の各項目はOID(Object Identifier)と呼ばれる、ドット区切りの数字による固有の番号で識別されます。あるOIDを問い合わせれば機器の稼働時間が、別のOIDを問い合わせれば特定ポートの受信バイト数がわかるといった具合で、管理者は目的の情報のOIDさえ知っていれば、メーカーが違っても同じ方法で値を読み取れます。

SNMPv1・v2cのコミュニティストリング

初期バージョンのSNMPは、パスワードに似た役割を果たす「コミュニティストリング」という文字列だけでアクセスを制御していました。慣習的に読み取り権限には「public」、書き込み権限には「private」といった文字列が使われてきましたが、この値が平文のままネットワーク上を流れるため盗聴に弱いという点が大きな弱点として指摘されてきました。それでも古い機器や閉域網では、シンプルさゆえにSNMPv1・v2cが今も使われ続けていることがあります。

SNMPv3:認証と暗号化の強化

SNMPv3は、利用者ごとの認証と、通信内容そのものの暗号化を導入し、コミュニティストリングに頼っていた旧バージョンのセキュリティ上の弱点を補っています。セキュリティが重要な環境では、可能な限りSNMPv1・v2cよりもSNMPv3を使うことが推奨されており、最近の機器の多くは3つのバージョンすべてに対応していて、状況に応じて選択できるようになっています。

使用ポートとトラップ

マネージャーがエージェントに問い合わせるクエリはUDP161番ポートを、エージェントが異常事態をあらかじめ知らせるトラップはUDP162番ポートを使用します。通常はマネージャーが定期的にエージェントへ値を要求する方式(ポーリング)で動作しますが、ポーリングの間隔の合間に機器のダウンやポート障害といった緊急事態が発生すると、エージェントはマネージャーの問い合わせを待たずに自らトラップとして即座に通知を送ることができます。この2つの方式を組み合わせることで、定期的な状態確認と緊急事態への迅速な対応の両方をカバーできます。

SNMPを活用する監視ソフトウェア

多くのオープンソース・商用のネットワーク監視ツールがSNMPを基本的な収集方式として採用し、機器の状態をグラフやダッシュボードの形で可視化しています。管理者はこうしたツールに各機器のIPアドレスとコミュニティストリング(またはSNMPv3の認証情報)を登録しておくだけで、トラフィックの推移・機器の温度・エラー率といった値を時間の経過とともに自動的に収集し、グラフで確認できます。しきい値を超えた場合に管理者へ通知を送るよう設定すれば、障害が深刻化する前に対応する用途にも広く活用できます。

SNMPはネットワーク構造のどこに位置するか

SNMPはアプリケーション層のプロトコルであり、ウェブブラウザやメールクライアントと同じように下位のネットワーク層の上で動作しますが、人間ではなく機器同士のやり取りを想定して設計されています。TCPではなくUDPを使って通信するのは、確実な到達保証よりも軽量で高速なやり取りを優先しているためで、頻繁に繰り返されるポーリングという用途によく合っています。

SNMPの基本的なセキュリティ対策

コミュニティストリングを「public」「private」といった初期値のままにしてSNMPポートをインターネットに公開してしまうと、誰でも機器の情報を照会でき、最悪の場合は設定まで変更されてしまうおそれがあります。最低限、初期値の文字列は変更し、SNMPへのアクセスを特定の管理用IPアドレスに限定し、機器が対応していればできる限りSNMPv3を使って実際の認証と暗号化を有効にすることが重要です。

よくある質問

SNMPは家庭用のネットワークでも使われますか?

一部の上位機種のルーターやNAS機器もSNMPによる監視機能に対応していますが、管理すべき機器の台数が多い企業やデータセンター環境ではるかに広く活用されています。

コミュニティストリングを初期値のままにしておくのは危険ですか?

はい。「public」「private」といった初期値のままSNMPポートをインターネットに公開すると、誰でも機器の情報を照会したり、最悪の場合は設定を変更したりできてしまうため、必ず値を変更し、アクセスを特定の信頼できるIPアドレスに限定する必要があります。