動画と記事で学ぶ / IP・通信プロトコル
SNMPの仕組みを設計構築の実務目線で解説。マネージャーとエージェント、GetRequestとトラップ、MIBとOIDの違い、OIDのたどり方、TWSNMPとZabbixの使い分けまでまとめます。
ここからは、記事でゆっくり確かめましょう。図や操作の例を見ながら、気になるところから読み進めてください。
SNMPは、ルーターやスイッチの状態を監視するためのプロトコルです。監視する側を「マネージャー」、監視される側を「エージェント」と呼び、UDPの161番と162番を使って情報をやり取りします。
ネットワークを構築する案件は、ほとんどが「監視できること」を要件に含んでいます。そのため、設計構築の現場ではSNMPの設定がほぼ毎回出てきます。会議でも「MIBが」「OIDが」という言葉が普通に飛び交います。この記事では、その会話についていける程度の仕組みを、順番に説明します。
SNMPとは?ポート番号はUDP161と162
SNMP(Simple Network Management Protocol)は、ネットワーク機器の管理・監視・制御を行うためのプロトコルです。
| ポート番号 | 使い道 |
|---|---|
| UDP 161 | マネージャーからエージェントへの問い合わせと、その応答 |
| UDP 162 | エージェントからマネージャーへのトラップ(通知) |
この2つの番号は覚えておいてください。ACLやファイアウォールで監視の通信を許可するときに、必ず使います。ポート番号の基本はポート番号とは?で説明しています。
実際の現場では、監視ソフトの画面にネットワークの構成図が表示され、機器をクリックすると状態が見られる、という使い方をします。その裏側で動いているのがSNMPです。
マネージャーとエージェントの関係
| 役割 | 何をするか | 具体例 |
|---|---|---|
| マネージャー | 監視する側。情報を要求する | 監視ソフトを入れたサーバーやPC |
| エージェント | 監視される側。情報を返す | ルーター、スイッチ |
やり取りは単純です。マネージャーが「Aという情報をください」と送り、エージェントが「了解です」と返します。
注意点が1つあります。マネージャーとエージェントはパケットで情報を送り合うので、お互いにIPで通信できる状態でなければ監視できません。「SNMPの設定は合っているのに監視できない」というときは、まず経路とACLを確認します。
SNMPのメッセージは5種類
| メッセージ | 送る方向 | 内容 |
|---|---|---|
| GetRequest | マネージャー → エージェント | OIDを指定して、情報を要求する |
| GetNextRequest | マネージャー → エージェント | 直前に指定したOIDの、次の情報を要求する |
| SetRequest | マネージャー → エージェント | OIDを指定して、設定の変更を要求する |
| GetResponse | エージェント → マネージャー | 要求に対する応答 |
| Trap | エージェント → マネージャー | 異常が起きたときなどに送る通知 |
動きとしては、次の3パターンを押さえておけば足ります。
- 情報の取得:マネージャーが GetRequest で「このOIDの情報をください」と送り、エージェントが GetResponse で返す
- 設定の変更:マネージャーが SetRequest で「この設定を変えてください」と送り、エージェントが GetResponse で「変更しました」と返す
- 通知:エージェントが Trap で「リンクダウンしました」と送る
トラップは、機器のほうから送る障害通知
トラップだけは、ほかのメッセージと向きが違います。マネージャーに聞かれて答えるのではなく、エージェントが自分から状態の変化を知らせます。
たとえば、スイッチのポートが故障してリンクダウンしたとします。スイッチは、マネージャーからの問い合わせを待たずに「リンクダウンしました」と通知を送ります。監視画面にアラートが出るのは、この仕組みによるものです。
障害通知やアラートの話が出たら、「トラップのことだな」と思ってください。
MIBとOIDの違い
MIB(ミブ)は、機器が持っている情報を、分類ごとにツリー構造で整理したものです。全機器に共通する情報から、メーカーごとに違う情報まで、大項目・中項目・小項目のように枝分かれして並んでいます。
OIDは、そのツリーの中で、特定の情報にたどり着くまでの道順です。
パソコンのフォルダで考えると分かりやすいです。デスクトップからフォルダを何階層か開いて、目的のテキストファイルにたどり着きます。フォルダの階層構造にあたるのがMIB、ファイルまでのパスにあたるのがOIDです。
| 用語 | 意味 | パソコンでたとえると |
|---|---|---|
| MIB | 情報を整理したツリー構造 | フォルダの階層 |
| OID | 特定の情報までの道順 | ファイルのパス |
| 標準MIB | 全メーカー共通の部分 | どのPCにもあるフォルダ |
| 拡張MIB | メーカーが独自に決めた部分 | そのメーカーだけのフォルダ |
OIDのたどり方(TCPの例)
OIDは、ツリーを上から順にたどり、各階層の番号をつなげたものです。TCPに関する情報を例にします。
iso(1)
└ org(3)
└ dod(6)
└ internet(1)
└ mgmt(2)
└ mib-2(1)
└ tcp(6)
OID:1.3.6.1.2.1.6
上から番号を拾うと 1、3、6、1、2、1、6。これをドットでつないだ「1.3.6.1.2.1.6」がTCPのOIDです。
先ほどの GetRequest は「このOIDの情報をください」という要求でした。その「このOID」に入るのが、こうした番号の並びです。
監視したい情報が取れるかは、機器で決まる
ここが、設計構築の仕事でいちばん関係するところです。
顧客から「この情報を監視したい」と要望が出たとき、それが実現できるかどうかは、その機器がその情報のOIDを持っているかどうかで決まります。持っていなければ、SNMPでは取れません。そして、どの情報のOIDを持っているかは、機器によって違います。
そのため、構築の途中で次のような確認をすることがあります。
- メーカーのサイトで、その機器のMIBの情報を確認する(MIBファイルをダウンロードできるメーカーもあります)
- メーカーの営業担当に、監視したい項目に対応しているかを問い合わせる
「監視したい」と言われたら、何を監視したいのかを具体的に聞く。次に、その機器で取れるかを調べる。この順番です。要件を聞く段階での進め方はネットワーク要件定義とは?も参考にしてください。
無料の監視ソフト:TWSNMPとZabbix
| ソフト | 主な使われ方 |
|---|---|
| TWSNMP | 設計構築の検証試験で、SNMPの動作確認に使う |
| Zabbix | 企業のネットワーク監視として、本番環境に導入されている |
TWSNMPは、ネットワークエンジニアの間では定番の無料ソフトです。SNMPの設定を入れたら、その設定が正しいかを確かめる必要があります。そこで検証用のPCにTWSNMPを入れ、マネージャーとして動かします。
よくやるのが抜線試験です。リンクアップしているスイッチのポートからケーブルを抜き、TWSNMPに「リンクダウン」のアラートが届くかを確認します。届けば、トラップの設定は合っています。
Zabbixは、オープンソースの統合監視ソフトです。検証試験で使うという話はあまり聞きませんが、企業の本番の監視では広く使われています。無料で使えるので、興味があれば触ってみてください。
よくある質問
SNMPのポート番号は何番ですか?
UDPの161番と162番です。161番は問い合わせと応答、162番はトラップで使います。
MIBとOIDの違いは何ですか?
MIBは情報を整理したツリー構造そのもの、OIDはその中の特定の情報までの道順です。フォルダの階層とファイルのパスの関係と同じです。
GetRequestとトラップは何が違いますか?
GetRequestはマネージャーが情報を取りに行く動き、トラップはエージェントが自分から知らせる動きです。障害通知に使われるのはトラップです。
SNMPで監視できない情報はありますか?
あります。機器がその情報のOIDを持っていなければ取得できません。対応しているかどうかは、メーカーが公開しているMIBの情報か、メーカーへの問い合わせで確認します。
SNMPの設定が正しいかは、どうやって確認しますか?
検証用の監視ソフト(TWSNMPなど)をマネージャーにして、情報が取れるか、ケーブルを抜いたときにトラップが届くかを試します。
