監視等で使われるSNMPとはいったい何者?

#ネットワーク
written by キムキム

夏が過ぎ香瀬あざみ、どうもキムキムです。

ぼくのなつやすみ クレヨンしんちゃんverが発売された中、少し遅れて牧場物語を購入し
お家で農耕ライフをエンジョイしています。

さて、今回は業務の中で詰まってしまった「SNMP」について、調べて纏めたので
内容をかんたんに解説していきます!

SNMPってそもそも何?

SNMP(Simple Network Management Protocol)はNW経由で装置を監視する為のプロトコルです。
構成としては「マネージャ」と「エージェント」に分かれ、前者は親、後者は子といった関係性で、
親と子でUDP通信をやり取りすることで監視を実現します。
また、子の装置にて異常があった場合は当通信を使って子から親へ通知(Trap)を送出します。

そして、この通信でやり取りする情報はMIBで定義されているモノだけに限ります

MIBって何・・・?

MIB(Management Information Base)は、SNMPに対応したNW装置に存在する
その装置の管理情報」を定義したものです。
管理情報の中身は「自機器の設定や状態」が主で、CPU使用率やIFの使用状況等が保管されています。

それぞれの情報ごとの塊を「オブジェクト」と呼び、「オブジェクトID(OID)」と呼ばれる
識別子が割り当てられます。

構成はツリー構造となっていて、マネージャがエージェントに情報を貰うときは
「xx.yy.zz」(xxの配下のyyの配下のzzの情報を下さい)といったフローで依頼していきます。

SNMPのフロー

SNMPは基本的には以下の3通りが使用されます。
※前述に記載している通り、マネージャはエージェントへOIDを指定して依頼を行います。

①情報の要求と返答(Get Request, Get Response)

オーソドックスな情報取得のフローはこちらです。
IFの状態やパケット数、CPU使用率等を取得することが出来ます。

SNMP_1

②設定要求と返答(Set Request, Get Response)

こちらは文字通り設定の変更依頼をする際のフローです。
各種のIPアドレスの設定変更やルータの再起動などを依頼して実行させることが出来ます。

SNMP_2

③状態変化通知(Trap)

こちらは他のフローと違い、エージェントから自発的に送るものになります。
LinkDown等の障害時の通知等、企業の監視環境で良く使用されているものはコレですね!
SNMP_3

総論

SNMPは親(マネージャ)が「今何処に居て、どういう状況で、変化は無いか」を暗号(OID)で聞き、
子は「全て答え続けながら異常が合ったら、すぐに親に連絡をする。」そんな機能と捉えました。(私所感

監視において、とても重要な機能で「ーーのTrapが来た時・・・」で保守フローを組むのが一般的だと思っているので、
SNMPは保守運用において必需品となるのかもしれません!(代用プロトコルもあるのかも?)

弊社ネモが保守運用について纏めているので、気になった方はこちらも御覧ください!

リンク:ざっくり解説!運用SEの仕事の流れについて
リンク:誰でもわかる運用保守の大切さ、役割と担当範囲について

おわりに

今回は保守運用にスコープした基礎的な部分について纏めてみました!
いつもはCisco機器の事ばかり書いている私ですが、こういう基礎的な部分は
「SNMPってのがあるんだなぁ」位にしか思っていませんでした・・・。
実際設計で組み込もうとすると大枠だけでも仕組みを理解する必要があって大変です!
やっぱり「情報の深堀りは常に大事にして前に進んでいかねば」と思った夏でした。