PR

SNMPとは?ネットワーク初心者向けにわかりやすく3分で解説【図解】

IT-Skills

SNMP (Simple Network Management Protocol) は、ネットワーク上の機器を監視・制御するための通信プロトコルです。主にスイッチやルーター、サーバーファイアウォールなどのハードウェアを対象にします。

参考 通信プロトコルとは?

SNMPをうまく活用することで、ネットワーク機器に発生した障害を素早く検知したり、ネットワーク上のトラフィック量を把握したりすることが可能になります。

このページでは、ネットワーク初心者向けにSNMPの基本を1からわかりやすく解説します。

このページで学べる内容
  • SNMP (Simple Network Management Protocol) とは?
    • SNMPマネージャ
    • SNMPエージェント
  • SNMPメッセージ
    • ポーリング
    • トラップ
  • SNMPのバージョン

ネットワークエンジニアを目指す方であれば知らないと恥ずかしい基本知識の1つ。是非最後までご覧ください。

スポンサーリンク

SNMPとは?わかりやすく

SNMPはSimple Network Management Protocolの略で、その名の通りネットワーク上の機器を監視・制御するためのプロトコルです。

SNMPとは わかりやすく
図1:SNMPとは?

ルーターやサーバ、スイッチ、プリンタなどのネットワーク機器に障害が発生した場合、SNMPを利用して監視を行っていれば即座に障害を検知することを可能にするためのプロトコルがSNMPです。

もしSNMPがないと、ネットワーク上で発生した障害をすぐに検知することができず、迅速な障害復旧が困難となってしまいます。

SNMPはOSI参照モデル第7層:アプリケーション層で動作するプロトコル

参考 OSI参照モデルとは?

SNMP誕生前のネットワーク管理は運用担当者の経験やスキル、自前で作成した資料等を用いての人力管理が基本でした。当時はそこまでネットワーク機器の量も多くなく、人力で管理することが可能な量だったのですが、徐々にネットワークの複雑化・大規模化が進むにつれ人力で管理が不可能に。そこで誕生したのがSNMPというわけです。

SNMPの必要性と利用シーン

簡単に言うと、SNMPは多くの機器を「疲れずに、効率よく、安全に」管理するための便利なツールだと言えます。わかりやすく言えば、1人で何軒もの家を管理する管理人がいるようなものです。

なぜSNMPが必要になるのか?をわかりやすく整理しておきます。

ポイント SNMPの必要性

  1. 目の届く範囲を広げる
    • 毎日、自分のコンピュータの状態をチェックするのは簡単ですが、たくさんの機器がある場合はどうでしょうか?SNMPを使うことで、1つ1つ「手動で」チェックする必要がなく、遠くの機器も簡単に確認することが可能になります。
  2. 速報性
    • 何か問題が起きたとき、SNMPはその異常をすぐに知らせてくれるので、早急な対応が可能です。例えば、インターネットが遅くなったとき、何が原因なのかすぐに分かるようになります。
  3. まとめて管理
    • 複数の機器を一箇所から管理できるので、設定変更やアップデートがスムーズに行えます。
  4. 安全対策
    • 知らないうちに起きている不正アクセスやセキュリティリスクも早めに発見できます。

SNMPはオフィスのネットワークや学校・図書館、自宅のスマート家電管理などでも利用されます。

社内のWi-Fiやプリンター、コンピュータを一括で監視し、トラブルを早めに解決したり、家の中にあるスマートテレビやエアコン、照明なども管理することが可能になります。

実は、知らず知らずのうちにあなたも利用しているプロトコルがSNMPです。

SNMP:マネージャ/エージェントモデル

SNMPはSNMPマネージャSNMPエージェントの2つで構成されるモデルを採用しています。

SNMPマネージャ,SNMPエージェント
図2:SNMPマネージャ / SNMPエージェント

このモデルは、SNMPのコア部分とも言える仕組みで、大まかに「マネージャー」(管理者)と「エージェント」(管理対象)の2つのコンポーネントから成り立つということを表しています。

  1. マネージャー
    • マネージャーは一般にサーバー/管理人。ネットワーク上の各エージェント(デバイス)から情報を収集したり、設定を行ったりすることが可能。
  2. エージェント
    • エージェントは管理される側。ルーター、スイッチ、サーバー、プリンターなどがこれに該当。各デバイスに搭載されたSNMPエージェントが、マネージャーからの問い合わせに応じて情報を提供。

SNMPマネージャ

SNMPマネージャは、SNMPエージェント(=ネットワーク機器)に対して情報を要求したり、稼働状況を監視したりする役割を担います。

SNMPマネージャとして有名なソフトウェアがZabbixです。他にもOpManagerなど複数のSNMPマネージャソフトウェアが存在します。

SNMPマネージャは、WindowsサーバやLinuxサーバにインストールして利用します。

ソフトウェア名ライセンス特徴特徴
SolarWinds商用豊富な機能と高度なカスタマイズが可能インターフェースが直感的で、多くのチュートリアルがある
Nagiosオープンソース/商用監視対象や通知オプションが非常に多い大量の文書とコミュニティサポートが存在する
Zabbixオープンソース高い拡張性と多機能性ユーザーフレンドリーなダッシュボードと多言語対応
PRTG商用シンプルで使いやすいインストールが簡単で、無料トライアル版が利用可能
Observiumオープンソース/商用自動ディスカバリ機能が強力無料版でも十分な機能があり、導入が容易
ManageEngine OpManager商用豊富なレポーティング機能無料トライアルと簡単なセットアップ
SNMPマネージャとして利用できるソフトウェア一覧

SNMPエージェント

SNMPエージェントはルーターやスイッチなど、監視される機器上で動作し機器の状態をSNMPマネージャに通知したりする役割を担います。

エージェント側では、多くのネットワークデバイス(ルーター、スイッチなど)にはすでにSNMPエージェントが組み込まれています。

ただし、一部のサーバーや特定のデバイスでは、SNMPエージェントをインストールする必要があります。一般的なOS(Windows、Linux等)であれば、SNMPエージェントは基本的に無料で提供されています。

SNMPメッセージ

SNMPマネージャとSNMPエージェントは具体的にはお互いに以下のようなメッセージをやり取りすることで、ネットワーク機器の状態を監視・制御します。

ネットワークスペシャリスト試験などの各種試験で問われることもある内容なので頭に入れておきましょう!

SNMPメッセージ送信側説明
Get RequestSNMPマネージャSNMPエージェントから得たい情報を要求
Get ResponseSNMPエージェントSNMPマネージャから要求された情報を返信
TRAPSNMPエージェントSNMPエージェントから自発的に送信する障害情報
Set RequestSNMPマネージャSNMPマネージャから要求された情報を返信
SNMPメッセージ
SNMPポーリング
図2:SNMPメッセージのイメージ(1)
SNMPトラップ
図3:SNMPメッセージのイメージ(2)

それぞれ、SNMPマネージャから送信するメッセージ/SNMPエージェントから送信するメッセージが決まっています。これらのSNMPメッセージを以下の2パターンでやり取りすることで、機器の情報を収集・監視します。

SNMPメッセージの交換方法
  • ポーリング
    SNMPマネージャからSNMPエージェントへ情報を要求する
  • トラップ
    SNMPエージェントが自発的にメッセージを送付する

SNMP:ポーリング

ポーリングは、ネットワーク機器の状態を定期的に監視したい場合に利用します。

SNMPマネージャが定期的にSNMPエージェントに対して情報の要求を行い、それに対してSNMPエージェントが応答する仕組みです。

わかりやすくいうと、マネージャ(監視者)がエージェント(監視対象)に定期的に「今、大丈夫?」と聞いて、エージェントが「今の状態はこれです」と答える感じ。このようなやり取りを繰り返すのがポーリングです。このやり取りで、エージェントの状態が悪いと分かれば、マネージャは必要な対応をします。

SNMPポーリング
  1. リクエスト送信
    • 設定した時間間隔(例えば5分ごと)で、マネージャがエージェントに対してSNMP GETリクエストを送信。
  2. レスポンス受信
    • エージェントは、受け取ったGETリクエストに対して必要な情報(例:CPU使用率、メモリ使用量など)をレスポンスとして返却。

SNMPマネージャからはUDPポート番号:161を利用してGet Requestが発出され、それに応答する形でSNMPエージェントはGet responseを返却します。返却時に利用されるポート番号は162が用いられます。

参考 UDPとは?

ポート番号とは

ポート番号とはコンピュータがTCP/IP通信に使用するプログラムを識別するための番号のこと。

コンピュータ通信は宛先のコンピュータを示すIPアドレスと、コンピュータ内のプログラムを識別するポート番号を用いて通信を行います。

SNMP:トラップ

対してSNMPトラップとは、ネットワーク機器に障害が発生した場合など不測の事態が起きた際にSNMPエージェントからSNMPマネージャに対して自発的に通知を行う仕組みです。

SNMPトラップ

例えばルーターが突如再起動したり、高負荷がかかったりした場合などに通知されます。

わかりやすく言えば、トラップはエージェント(監視対象)が何かおかしいと感じた瞬間に、自分からマネージャ(監視者)に「おかしいです!」と知らせる感じです。

  1. 事前設定
    • まず、エージェントが何のイベントでトラップを送るか(例:CPU使用率の急激な上昇など)を設定しておく。
  2. イベント発生
    • エージェントで設定された条件に一致するイベントが発生すると、エージェントはそれを検出。
  3. 通知送信
    • イベントが発生したら、エージェントはSNMPトラップメッセージをマネージャに自動的に送信。

このようにポーリングとトラップというメッセージ交換を行うことでネットワーク上の機器の状態を監視・制御するためのあれこれを定めた約束事がSNMPです。

SNMPを利用するまでの手順イメージ

SNMPを使ってネットワーク機器を監視するには、監視したい機器(エージェント)と監視をする側(マネージャ)の設定が必要です。

それぞれに指示や通知の仕方を教えてあげて、ちゃんと会話できるようにするイメージです。

何を監視するか(例:エージェントの電源がONか、ネットワークが混んでいないか)を決めて、それが異常な値になったら警告を出すように設定します。

以下では、SNMPの仕組みをよりイメージしやすくするため、SNMP運用開始までの手順を明示します。

1. 要件定義と計画

ポイント1 管理対象となるデバイス(エージェント)をリストアップする

ポイント2 必要な監視項目(例: CPU使用率、ネットワークトラフィック等)を特定する。

まず初めに監視する目的と計画を明確にします。

例えば、自分の会社のコンピュータのCPUやメモリの使用状況を確認したいのか、ネットワークの使用状況などを知りたいのか。

そして、何が問題だと判断するのか(例えば、コンピュータが一定以上忙しいとか)、そのとき何をするのか(警告を出す、誰かに連絡するなど)も決めます。

2. SNMPエージェントのセットアップ

ポイント1 対象デバイス上でSNMPエージェントを有効化。

ポイント2 認証設定(Community StringやSNMPv3の認証/暗号化)を行う。

基本的には監視される側のデバイス(ルータ、スイッチ、サーバーなど)でセットアップ作業を行います。多くのネットワーク機器では、SNMPエージェント機能がプレインストールされています。

3. SNMPマネージャ(監視ツール)のセットアップ

ポイント1 SNMPマネージャソフトウェアをインストール。

ポイント2 エージェントの情報(IPアドレス、認証設定等)を登録。

SNMPマネージャのセットアップを行います。

各ソフトウェアによって設定方法や操作方法が異なります。一般的には、以下のような設定を行います。

  • 監視対象デバイス:どのエージェントを監視するか
  • 収集間隔:どれくらいの頻度でデータを収集するか
  • アラート設定:どのような状況でアラートを出すか

SNMPのバージョン

最後にSNMPのバージョンとその違い・特徴について解説します。

SNMPには、いくつかのバージョンが存在し、それぞれが異なる機能とセキュリティのレベルを提供しています。ここでSNMPの主なバージョンとその特徴について説明します。

  1. SNMPv1(バージョン1)
    • 最初にリリースされたバージョン。
    • 基本的な機能を提供し、簡単なネットワーク管理に使用。
    • セキュリティ機能が限定的で、通信内容が暗号化されていない。
  2. SNMPv2c(バージョン2c)
    • SNMPv1の改良版。
    • データ伝送の効率性とパフォーマンスが向上。
    • 「コミュニティストリング」と呼ばれるシンプルな認証機構を採用。
    • 依然としてセキュリティは限定的。
  3. SNMPv3(バージョン3)
    • セキュリティと認証機能を大幅に強化。
    • データの暗号化と認証機構が導入され、より安全なネットワーク管理が可能。
    • 既存のSNMPv1/v2cとの互換性を保持しつつ、より厳格なセキュリティ要件に対応。

SNMPv1(Version 1)

SNMPv1は、1988年にIETF(Internet Engineering Task Force)によって標準化された最初のSNMPバージョン。このバージョンは、シンプルさと広範な互換性を重視し、基本的なネットワーク管理機能を提供します。

SNMPv1の大きな特徴は、そのシンプルな通信構造にあります。しかし、セキュリティ面では限定的で、通信内容は暗号化されていない→結果、データの機密性や完全性を保証することはできません。基本的なネットワーク監視には適していますが、セキュリティが重要な環境では適切ではないとされています。

シンプルで基本的なネットワークデバイスに適していますが、セキュリティの面での制限があるため、現在ではあまり使用されていません。

SNMPv2c(Version 2c)

SNMPv2cは、SNMPv1の改良版として1990年代中頃に登場しました。このバージョンでは、パフォーマンスが向上しデータの伝送効率が改善されました。SNMPv2cは、エラー処理機構を強化し、より豊富なデータ型をサポートすることで、より柔軟なネットワーク管理を実現。同時に「GET-BULK」という新しいコマンドが導入され、大量のデータを一度に取得できるようになりました。

セキュリティ面では「コミュニティベースの認証」を採用しており、これはコミュニティストリングと呼ばれるテキストベースの認証キーを使用する方式です。しかし、この認証方式は簡易的なものであり、通信内容の暗号化は提供されていません。そのため、セキュリティが重視される環境では、依然として不十分とされています。

SNMPv1よりも機能が向上していますが、セキュリティ面での弱点は依然として残っています。多くのネットワークでは、このバージョンがまだ広く使用されています。

SNMPv3(Version 3)

SNMPv3は、2000年代初頭に導入されたSNMPの最新バージョンです。このバージョンの最大の特徴は、セキュリティ面での大幅な強化です。SNMPv3では、データの暗号化と認証機能が実装されており、ネットワーク管理におけるセキュリティ要件を大きく満たしています。認証にはMD5やSHAなどのハッシュ関数が使用され、データの完全性と信頼性を保証します。また、暗号化にはDESやAESなどの強力な暗号化アルゴリズムが用いられ、通信内容を保護。

SNMPv3は、セキュリティポリシーに応じて柔軟に構成することが可能で、これによりユーザーベースのセキュリティモデル(USM)やビューベースのアクセス制御モデル(VACM)など、さまざまなセキュリティニーズに対応することができるようになりました。セキュリティが最優先される現代のネットワーク環境において、SNMPv3は最も推奨されるバージョンとなっています。

まとめ SNMPとは?

  1. SNMPとは
    • Simple Network Management Protocol(シンプル・ネットワーク・マネジメント・プロトコル)の略で、ネットワーク内の機器を遠隔で監視・管理するための通信プロトコル。
    • ネットワークが複雑になると、その健康状態を一元的に管理する必要が出てくる→SNMPはそのための効率的なツール。
  2. マネージャー/エージェントモデル
    • SNMPでは、1つの「マネージャ」(監視する側)と複数の「エージェント」(監視される側)があり、これらが通信を行います。

ネットワーク学習の決定版(ネットワークエンジニアを目指すなら必見!)

blank
インターネットのプロトコルTCP/IP入門書の決定版!

↑ページ数が多く誰でも手軽に読める内容ではありませんが、ネットワークエンジニアであれば、ほぼ全員が一度は読んだことがある超・有料書籍。是非一度読破しておきたい1冊のご紹介です。

読者特典> 0から学ぶネットワーク入門

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
IT-SkillsNetwork
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました