1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SNMPことはじめ

Last updated at Posted at 2020-06-20

はじめに

「SNMP ってなあに?」という人向けに、SNMP についてざっくりと解説します。より深い知識を得るために、初めに押さえておきたいことについてまとめています。

SNMP is 何

SNMP とは、簡易ネットワーク管理プロトコル(Simple Network Management Protocol)というプロトコルの一種です。その名が示す通り、ネットワーク機器を管理するためのプロトコルです。161番と162番のUDPポートで通信します。1

現在、SNMP には v1, v2c, v3 の3種類のバージョンがあります。新しいバージョンほどセキュリティ面が強化されています。v3 の利用が推奨されており、v1 は脆弱性が指摘されているため非推奨、v2c が最も普及しています。

規格仕様については RFC で公開されています。

用語

エージェント

管理対象の機器を指します。ネットワーク機器、サーバ、ソフトウエア等に相当します。

マネージャー

エージェントを管理する側を指します。Nagios や Zabbix 等の監視ツールに相当します。

SNMP でできること

1. 情報を収集する(アクティブ)

マネージャーからエージェントに問い合わせて、エージェントの情報を収集することができます。インタフェースの通信量やCPU使用率を定期的に収集して、必要なときに照会する、等の使い方ができます。

Linux コマンドでは、マネージャーから snmpget コマンドや snmpwalk コマンド等を使ってエージェントに問い合わせます。

2. 情報を収集する(パッシブ)

エージェントが SNMP Trap という情報を送信し、マネージャーがキャッチすることで情報を収集することができます。例えば、あるインタフェースが LinkDown したら SNMP Trap を送信するようにエージェントを設定し、マネージャーは SNMP Trap の受信を待ち受けます。

SNMP Trap でやり取りする情報は、例に挙げたようなステータス変化など、ややイレギュラーな内容が多い印象があります。

Linux コマンドでは snmptrap コマンドで SNMP Trap を送信することができるので、マネージャー側の動作確認に用いることができます。

3. 情報を操作する

マネージャーからエージェントの情報を書き換えて、エージェントの機器を制御することができます。制御できる情報は、書き込み権限のある情報に限られます。2

Linux コマンドでは、マネージャーから snmpset コマンドを使って操作することができます。

OID と MIB

SNMP の情報は MIB によって定義されており、OID を指定して収集・操作します。

OID

OID(Object IDentifier)とは、各情報に対して割り当てられている一意な番号です。例えば「インデックス番号3n番のインタフェースの受信バイト数」を示す OID は .1.3.6.1.2.1.2.2.1.10.n です。
マネージャーがエージェントに問い合わせる際に OID を併せて付与することで、指定の情報を収集します。また SNMP Trap の OID から、エージェントからどのような情報が送られてきたのか知ることができます。

OID の内容は、後述の MIB ファイルで定義されています。

MIB

MIB(Management Information Base)とは、前述の OID の情報群です。MIB は木構造になっており、OID そのものが構造内の位置を示しています。この構造は「MIB ファイル」というファイルで定義されています。

MIB ファイルには、各 OID が何を意味するのかという説明が定義として書かれています。OID を知っていれば情報そのものは収集できますが、その情報が何を意味するのかは、MIB ファイルの定義がなければ解釈することができません。

MIB は「標準 MIB」と「独自 MIB4」に大別できます。
標準 MIB は一般的な情報であり、エージェントによって情報の内容が変わりません。これに対して独自 MIB は、標準 MIB 以外のものを指し、主にはエージェントのベンダーが独自に定義した OID 群を指す場合が多いです。IANA に申請することで、指定の OID 以下は申請したベンダーが自由に定義することができます。5
ベンダーが定義した OID は MIB ファイルとしてエージェントの機器に同梱したり、マネージャー向けに配布されたりします。

参考

  1. このため、エージェント~マネージャー間は当該の通信を許可する必要があります。

  2. 前述のインタフェースの通信量やステータスは読み取り専用なので、マネージャーから書き換えることはできません。

  3. エージェント内部で各インタフェースに対して割り当てられている一意な番号です。例のように、インデックス番号と実際のインタフェースとの関連付け情報を事前に確認する必要があるケースがあります。

  4. 拡張 MIB、プライベート MIB、ベンダー MIB 等とも呼ばれます。

  5. 例えば .1.3.6.1.4.1.9 以下は Cisco Systems が定義した OID です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?