ネットワーク機器の状態を監視・管理するためのプロトコル。
SNMP(Simple Network Management Protocol=簡易ネットワーク管理プロトコル)とは、ネットワーク機器の状態を監視・管理するためのプロトコルです。プロトコル=機器同士が通信するときの決まりごとのことです。
会社のネットワークには、ルータ・スイッチ・サーバなど多くの機器があります。それらが正常に動いているか、通信量やCPU使用率はどうかを1か所からまとめて把握するために使われます。上の図解の左側がその監視役です。
身近な例で考えると、ビルの管理人室にある集中監視パネルに似ています。各階のエレベーターや空調の状態が一覧で表示され、異常があればランプで知らせてくれる──SNMPはこれをネットワーク機器に対して行う仕組みです。
SNMPは「監視する側」と「監視される側」の2つの役割で成り立っています。
・マネージャ:監視する側。各機器に問い合わせて状態を集める監視サーバ
・エージェント:監視される側。ルータやサーバなど各機器に組み込まれたソフトウェア
やりとりには2つのパターンがあります。
・GET:マネージャからエージェントへ「今の状態を教えて」と問い合わせ、エージェントが答える
・TRAP:エージェント側で異常が起きたとき、聞かれなくてもエージェントからマネージャへ自発的に通知する
GETは管理人が各部屋に電話して状態を尋ねるイメージ、TRAPは火災報知器が自分から警報を鳴らすイメージです。普段はGETで定期的に確認し、緊急時はTRAPで素早く知らせる、と役割が分かれています。
MIB(Management Information Base=管理情報ベース)とは、エージェントが管理する機器の状態情報をまとめたデータベースです。各機器の中に1つずつ持っています。
MIBには、その機器が報告できる項目が決められた形式で並んでいます。
・CPU使用率:プロセッサがどれだけ忙しいか
・通信量(トラフィック):流れているデータの量
・稼働時間:起動してからの経過時間
各項目にはOIDという番号で名前が付けられ、どの機器でも同じ番号で同じ情報を取り出せます。
マネージャがGETで問い合わせると、エージェントはこのMIBから該当する値を読み取って返します。MIBは、図書館の蔵書目録のように「どの情報がどこにあるか」をあらかじめ整理した一覧表だと考えると分かりやすいです。
SNMPには通信の向きが異なる2つのメッセージがあります。
・GET:マネージャからエージェントへ「今の状態を教えて」と問い合わせ、エージェントがMIBの値を返す
・TRAP:エージェントで異常が起きたとき、聞かれなくてもエージェントからマネージャへ自発的に通知する
なぜ2種類必要なのか。GETだけだと、マネージャは一定間隔(例:1分ごと)にしか状態を知れません。もし機器がGETの間に壊れた場合、次の問い合わせまで異常に気づけないという問題があります。そこで、異常を検知した機器がすぐに自分から知らせる仕組み(TRAP)を加えることで、遅延なく対応できるようにしています。
身近な例で言うと、GETは管理人が毎日各部屋を見回ること、TRAPは住人が異常を感じたときすぐ管理人室に電話することです。定期点検と緊急通報を組み合わせることで、「見落とし」も「遅れ」も防いでいます。
SNMPが使うポート番号(=通信の窓口番号)は2種類あります。
・161番:エージェント側が使う。マネージャからのGET(問い合わせ)を待ち受ける
・162番:マネージャ側が使う。エージェントからのTRAP(異常通知)を受け取る
SNMPはUDP(=速さ優先の通信方式)を使います。なぜTCPではなくUDPなのか。監視の問い合わせは「届いたら即答するだけ」の小さなやり取りで、TCPのような「確実に届いたか何度も確認する手順」をとるほどではないからです。UDPのほうが処理が軽く、多数の機器を素早く巡回できます。
身近な例で言うと、定期巡回の担当者が各部屋に「異常ありますか?」と一言声をかけて即返事をもらうだけのやり取りに似ています。手紙のやりとり(TCP)では時間がかかりすぎるため、簡単な呼びかけ(UDP)で素早く多くの部屋を確認するわけです。
Q1.SNMPの役割として最も適切なものはどれか。
Q2.SNMPのマネージャとエージェントの関係として適切なものはどれか。
Q3.MIBに関する記述として適切なものはどれか。