Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

SNMP(エスエヌエムピー)とは | 意味や読み方など丁寧でわかりやすい用語解説

SNMP(エスエヌエムピー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

シンプルネットワーク管理プロトコル (シンプルネットワークカンリプロトコル)

英語表記

SNMP (エスエヌエムピー)

用語解説

SNMPは、Simple Network Management Protocolの略であり、ネットワークに接続された様々な機器を管理・監視するための標準的なプロトコルである。ルータ、スイッチ、サーバ、プリンタ、無線LANアクセスポイントなどのネットワークデバイスの状態を把握し、設定を変更するために広く利用されている。SNMPが存在しなければ、大規模なネットワークにおいて個々のデバイスを手動で管理することは極めて困難であり、SNMPはネットワーク運用管理の基盤技術として不可欠な役割を担っている。

詳細として、SNMPは主に「SNMPマネージャ」「SNMPエージェント」「管理情報ベース(MIB)」の三つの要素から構成される。SNMPマネージャは、ネットワーク全体の監視・管理を行う中心的なシステムであり、通常はNMS(Network Management System)と呼ばれるソフトウェアが動作するサーバとして機能する。SNMPエージェントは、管理対象となる各ネットワークデバイス上で動作するソフトウェアモジュールで、そのデバイス自身の情報(CPU使用率、メモリ使用率、トラフィック量など)を収集し、マネージャからの要求に応答したり、重要なイベントが発生した際にマネージャに通知したりする役割を担う。

管理情報ベース(MIB)は、管理対象デバイスから取得可能な情報や設定可能なパラメータを体系的に定義したデータベースである。MIBは木構造のオブジェクトID(OID)で管理されており、各OIDが一意の管理情報項目を指し示す。例えば、システム稼働時間やインターフェースの送受信バイト数などがOIDとして定義されている。SNMPマネージャは、このMIBを参照しながら、特定のOIDを指定してエージェントに情報の取得や設定変更を要求する。

SNMPマネージャとエージェント間の通信は、主に以下のメッセージタイプで行われる。マネージャからエージェントへの要求には、GetRequest、GetNextRequest、GetBulkRequest、SetRequestがある。GetRequestは特定のOIDで識別される単一の管理情報を取得するために使用される。GetNextRequestは、指定されたOIDの次のオブジェクトの情報を順次取得していく際に利用され、MIBツリーを探索したり、テーブル形式のデータをまとめて取得したりするのに役立つ。GetBulkRequestは、SNMPv2c以降で導入されたもので、一度のリクエストで大量のデータを効率的に取得できる。SetRequestは、エージェントが管理するデバイスの設定値を変更する際に使用される。

一方、エージェントからマネージャへの通知には、TrapとInformがある。Trapは、エージェント側で何らかの異常や重要なイベント(例えば、デバイスの再起動やインターフェースのダウンなど)が発生した際に、マネージャに対して非同期に送信される通知である。Trapは一方的な送信であり、エージェントはマネージャがその通知を受信したかどうかを確認しない。InformはSNMPv2c以降で導入されたもので、Trapと同様にエージェントからマネージャへの通知だが、マネージャはInformを受信した際に確認応答(ACK)をエージェントに返す。これにより、より信頼性の高い通知が可能となる。これらの通信は通常、UDPポート161番(マネージャからエージェントへの要求・応答)とUDPポート162番(エージェントからマネージャへの通知)を使用する。

SNMPには、これまでにいくつかのバージョンが存在する。SNMPv1は最初に登場したバージョンで、ネットワーク管理の基本機能を提供するが、セキュリティ機能は非常に限定的であり、コミュニティ文字列と呼ばれる平文のパスワードのようなもので認証を行うのみであった。このため、通信内容の盗聴や不正な操作のリスクが高かった。SNMPv2cは、SNMPv1の拡張版であり、GetBulkRequestの導入など機能面が強化された。セキュリティモデルはSNMPv1と同様にコミュニティ文字列を使用するため、基本的なセキュリティ上の課題は残る。SNMPv3は、セキュリティを大幅に強化したバージョンである。認証機能(メッセージが改ざんされていないことの確認、送信元の認証)と暗号化機能(通信内容の秘匿)が追加され、よりセキュアなネットワーク管理が可能となった。ただし、設定が複雑になるという側面もある。

SNMPは、ネットワーク機器の稼働状態監視、リソース使用率(CPU、メモリ、ディスク)のトレンド分析、ネットワークトラフィックの監視、ポートのアップダウン状態の把握など、多岐にわたる用途で活用されている。これにより、ネットワーク管理者はシステムの異常を早期に検知し、パフォーマンスの問題を特定し、障害発生時に迅速に対応できる。ベンダーに依存せず様々な機器を統一的な方法で管理できる点も大きなメリットである。しかし、SNMPv1やSNMPv2cを使用する際には、コミュニティ文字列の漏洩によるセキュリティリスクに十分注意する必要がある。SNMPv3はセキュリティを大幅に向上させるが、その導入と運用には適切な知識と設定が求められる。ネットワークの健全性を維持し、安定稼動させる上でSNMPは極めて重要なプロトコルであり続ける。

関連コンテンツ