SNMPとは
SNMP は、シンプル ネットワーク管理プロトコルの略です。名前が示すように、このプロトコルはネットワーク デバイスの管理と監視に使用されます。コンピューター/サーバー、ルーター、プリンター、またはネットワーク経由でアクセスできるデバイスなどのデバイスを管理できます。
LAN または WAN を介したネットワーク デバイス間の通信に使用されるアプリケーション レイヤー プロトコルです。
SNMP は何に使用されますか
例を挙げて、SNMP の使用法を理解しましょう。私たちの誰もがFacebookについて知っているように。毎日数十億人が Facebook を使用し、画像、動画、テキストなどの大量のデータを Facebook にアップロードしていることを想像してみてください。このデータはすべて、地理的に分散したデータセンターにある Facebook サーバーにアップロードされ、ネットワーク プロトコルを介して相互に通信します。
したがって、これらすべてのサーバーを監視および管理するには、SNMP プロトコルを使用できます。たとえば、サーバーが大量のメモリまたは CPU を消費している場合、Facebook アプリケーションの中断を引き起こす可能性があります。その後、アプリケーションのダウンタイムにつながる可能性があり、会社に大きな損失をもたらす可能性があります。したがって、サーバーとネットワーク デバイスのヘルス/リソース使用率に関連するこれらすべての種類の重要なイベントを継続的に監視できるメカニズムが必要です。したがって、SNMP は、これらのデバイスをリモートで監視および管理するために使用できる最良のソリューションの 1 つと見なすことができます。
SNMP は主に次の目的で使用されます。
- ネットワークデバイスの監視
- ネットワーク デバイスの構成
- ネットワークデバイスの監査
- 障害と不正アクセスの検出
SNMP は、スイッチ、ルーター、スキャナー、IoT 対応デバイスなどのネットワーク デバイスで最も広くサポートされているプロトコルです。多くのネットワーク デバイスには、監視および管理の目的でネットワーク管理システム (NMS) またはマネージャーと通信できるように、簡単に有効化および構成できる SNMP エージェントがバンドルされています。
SNMP アーキテクチャ
それは次の主要なコンポーネントを持っています
これは、単純なクライアント サーバー モデルに従います。マネージャーはサーバーとして機能し、エージェントはクライアントとして機能します。Manager は、監視する必要のあるネットワーク デバイスにインストールおよび構成されているエージェントから、処理する必要のある情報を要求します。
各コンポーネントについて詳しく説明します
SNMP マネージャー
これは、エージェントが提供するユーザーと管理情報との間のインターフェースです。基本的に、これはネットワーク デバイスの監視と管理に使用されるソフトウェア プラットフォームです。ネットワーク管理システム (NMS) とも呼ばれます。Manager は、一定の時間間隔でエージェントを継続的にポーリングして、監視対象のノードに関する必要な情報を取得し、このデータを人間が読める形式に変換します。
市場には、ネットワーク デバイスを管理するためのさまざまな機能を提供する多くのネットワーク管理ソフトウェアがあります。一部の NMS には、管理対象オブジェクトの値がしきい値を超えた場合に管理者に電子メール通知を送信する機能があります。
SNMPマネージャーの主な機能
- SNMP エージェントを照会します。
- SNMP エージェントからの応答を取得します。
- 応答を人間が読める形式に変換します
- アラーム発生時の変数値を設定
- エージェントからのイベントを承認します
SNMP エージェント
これは、監視する必要のある SNMP マネージャーとネットワーク デバイス間のインターフェイスです。これらのエージェントはほとんどのデバイスにプレインストールされていますが、データの収集を開始する前に有効にして構成する必要があります。これらは、CPU 使用率、メモリ使用率、ディスク使用率など、基盤となるハードウェアまたは監視対象のサービスの他の多くのパフォーマンス パラメータなど、幅広いデータを収集できます。この収集されたデータは、管理情報ベース (MIB) と呼ばれるデータベースに格納され、クエリが実行されるたびにマネージャーによってアクセスされます。これらのエージェントは、エラーが発生した場合に、マネージャーがメッセージを要求するのを待つのではなく、自発的にマネージャー/NMS にメッセージを送信できます。
SNMP エージェントの主な機能
- 監視対象のデバイスのさまざまなパフォーマンス パラメータに関する情報を収集します
- 管理情報ベース (MIB) と呼ばれるデータベースにすべてのデータをローカルに保存します。
- Manager がクエリを実行するたびに、収集したデータを Manager に提供します。
- エラーが発生した場合は、マネージャーにイベント通知を送信します
管理対象ノード
SNMP によって監視および管理されているデバイスは、管理対象ノードと呼ばれます。
これらは、管理情報を収集するためにエージェントがインストールおよび構成されているノード/デバイスです。
管理情報ベース (MIB)
これは、監視対象の各ノードの SNMP エージェントによって入力される情報データベースです。これには、デバイスまたはサービスのさまざまなサブシステムまたはパフォーマンス パラメータに関する情報が含まれています。マネージャーはデータ クエリをエージェントに送信し、エージェントは MIB に保存されている要求されたデータと共にマネージャーに応答します (利用可能な場合)。
オブジェクト識別子 (OID)
各管理対象ノードには、階層ツリー構造の形式の個別の MIB があります。これには、マネージャーが管理できるさまざまなオブジェクトに関する情報が含まれています。MIB 内のこれらの各オブジェクトは、OID と呼ばれるオブジェクト識別子によって識別されます。この OID はオブジェクトごとに一意であり、特定の形式に従い、数値を 10 進数で区切って長い数値タグまたは識別子を形成します (例: 1.3.6.4.1.5635)。これらの OID は、データベースに保存されているさまざまなオブジェクト/パラメータのプロパティを理解するために必要な、読み取り可能なラベルとその他のさまざまなパラメータで構成されています。
マネージャが管理対象ノードの特定のパラメータに関する情報を取得したい場合は、取得メッセージをエージェントに送信して、MIB 内の OID によって識別される特定の変数の値を見つけます。一部の OID はベンダー固有であるため、OID を見るだけでデバイスに関する基本情報を簡単に取得できます。たとえば、CISCO デバイスの OID は 1.3.6.1.4.1.9 で始まります。
SNMP の仕組み
SNMP は本質的に TCP/IP プロトコル スイートのメンバーであり、各 SNMP メッセージはユーザー データグラム プロトコル (UDP) パケットとしてラップされ、さらにラップされて IP パケットとして物理層デバイスに送信されます。
これは、いくつかの基本的なコマンドを使用して、マネージャーとエージェントの間で管理情報を交換します。以下の図は、SNMP マネージャーとエージェント間の通信を説明しています。
SNMPの基本コマンド
- GET: GET メッセージは、SNMP マネージャーによって管理対象ノードにインストールされている SNMP エージェントに送信され、MIB の OID によって識別される管理対象オブジェクトまたはパラメーターの値を取得します。
- RESPONSE: RESPONSE メッセージは、要求されたデータを含むエージェントからマネージャーに送信されます。
- GETNEXT: MIB 階層の次の OID を照会するために、GETNEXT メッセージがマネージャーからエージェントに送信されます。
- GETBULK: GETBULK メッセージは、複数の GETNEXT メッセージを使用して MIB テーブルから大量のデータを取得するために、マネージャーによってエージェントに使用されます。このメッセージは SNMPv2c で導入されました。
- SET: SET メッセージは、管理対象デバイスの指定された変数に MIB の値を変更または割り当てるためにマネージャによって使用されます。
- TRAP: TRAP メッセージは、障害やエラーが発生した場合に重要なイベントについてマネージャーに通知するために、エージェントによって自己開始されます。
- INFORM:エージェントから TRAP メッセージを受信した場合、マネージャーが TRAP メッセージを受信したかどうかを確認する方法はありません。そこで、この問題を克服するために INFORM メッセージが生まれました。SNMPv2c で導入されました。このメッセージは、SNMP エージェントによっても開始されます。TRAP メッセージと INFORM メッセージの主な違いは、INFORM メッセージを受信すると、マネージャーがメッセージの配信を確認する応答をエージェントに返すことです。エージェントが Manager から確認応答を受信しない場合、再度 INFORM メッセージを送信できます。したがって、INFORMメッセージは確認済み TRAP として呼び出すこともできます。
SNMP トラップとは
SNMP トラップは、SNMP エージェントから Manager に送信されるアラート通知メッセージです。
これらのメッセージは、重要なイベントまたはエラーに関する情報を Manager に通知する必要がある場合に、エージェントによって生成されます。たとえば、アプリケーションが許容しきい値を超えてメモリを消費し始めた場合、トラップ メッセージを生成できます。
監視または管理する必要があるデバイスには、プリインストールされたエージェントが付属しています。使用可能な任意のポートから UDP ポート 162 でマネージャーにイベント通知を送信します。マネージャがイベント通知を受信したかどうかをエージェントが確認できるメカニズムがないため、トラップは信頼できません。Manager は通知を受信しても、エージェントに確認応答を返さないためです。
したがって、SNMP トラップは、Agent から Manager に送信される確認不能イベント通知とも呼ばれます。
SNMP TRAP と INFORM メッセージの違い
SNMP ポート
マネージャーとエージェント間の通信にSNMPが使用するポートは、SNMPポートと呼ばれます。
通常、ポートは、特定のホスト上のアプリケーションまたはそのサービスを識別するための一意の番号です。
SNMP は、マネージャーとエージェント間の通信にユーザー データグラム プロトコル (UDP) を使用します。これは、トランスポート層プロトコルです。SNMP は、通信に次のデフォルト ポートを使用します。
- UDP ポート 161 (SNMP)
- UDP ポート 162 (SNMPTRAP)
SNMP マネージャがエージェントとの通信にデフォルト ポートを使用する方法
- SNMP マネージャは、使用可能な任意のソース ポートを使用して、SNMP メッセージ(GET、GETNEXT、GETBULK、SET)を送信できます。
- SNMP マネージャは、SNMP エージェント ノード、つまり管理する必要があるノードのUDP ポート 161でメッセージ(GET、GETNEXT、GETBULK、SET)を送信します。
- SNMP マネージャは、メッセージの送信元と同じソース ポートでRESPONSEメッセージを受信します。
- SNMP マネージャーはUDP ポート 162を使用して、エージェントからTRAP および INFORMメッセージを受信します。
SNMP エージェントがデフォルト ポートを使用して Manager と通信する方法
- SNMP エージェントは、UDP ポート 161 でマネージャーからすべてのメッセージ(GET、GETNEXT、GETBULK、SET)を受信します。
- SNMP エージェントは、マネージャーがメッセージを送信するのと同じソース ポートでマネージャーにRESPONSEメッセージを送信します。
- SNMP エージェントは、使用可能な任意のポートから Manager にTRAP および INFORMメッセージを送信できます。
- SNMP エージェントは、SNMP マネージャーのUDP ポート 162でTRAP および INFORMメッセージを送信します。
SNMP バージョン
SNMP には、SNMPv1、SNMPv2c、SNMPv3 の 3 つのバージョンがあります。これらの各バージョンには、長所と短所が関連付けられています。
SNMPv1
SNMPv1 は 1988 年に導入されましたが、当時は大きな問題ではなかった暗号化アルゴリズムはありません。しかし、データのセキュリティがすべての人にとって最優先される今日では、このバージョンを使用することは、重要なシステムにとって明らかにセキュリティ上のリスクです。これが、多くの企業が SNMPv1 の使用を制限している理由です。さらに、当時は十分だった 32 ビット カウンター アーキテクチャをサポートするだけですが、ギガバイト サイズのネットワークが稼働している今日では、確かに十分ではありません。RFC 1155 および1157 であり、SNMPv1 を定義しています。
SNMPv2c
これは、1993 年に導入された SNMPv1 の改訂および拡張バージョンです。SNMPv2 の反復はほとんど存在しませんでしたが、最も一般的に使用されたのはコミュニティ ベースであり、SNMPv2c と名付けられました。このバージョンは 64 ビット カウンター アーキテクチャをサポートしており、確かに SNMPv1 から SNMPv2c へのアップグレードが必要でしたが、それでもセキュリティ面での変更はありません。それは依然として重要なデータをクリア テキストとして送信していました。RFC 1901、RFC 1905、および RFC 1906 では、SNMPv2c が定義されています。
SNMPv3
SNMPv3 はメジャー アップグレードであり、以前のバージョンの多くの欠点が考慮され、修正されました。2000 年代初頭に登場しました。この新しいバージョンは SNMPv3 と呼ばれ、すべての 64 ビット カウンター アーキテクチャとすべてのセキュリティ機能が実装されています。このアップグレードの主な機能は、ユーザー アカウント、認証、およびオプションの暗号化でした。要件に応じて、これらの機能を一緒に使用することも、個別に使用することもできます。ただし、これらの認証および暗号化機能を追加すると、プロトコルが複雑になり、SNMPv1 および SNMPv2c を使用するレガシー デバイスの互換性の問題も発生します。RFC 1905、RFC 1906、RFC 2570、RFC 2572、RFC 2574、および RFC 2575 では、SNMPv3 が定義されています。
SNMPv1、SNMPv2c、SNMPv3 の違いを確認する
その他の便利なリンク
I am a software QA Professional with 10 + years of Industry experience in the domain of Servers, Storage, Networking, Cloud Computing and Containerization etc. I started this blog to share my knowledge and skills what i am learning from my profession. Being a QA guy, I love to Test and Review different IT products.