SNMP基本講座

 

■SNMP Network

SNMPの基本

SNMP-Capable Device

ネットワークのすべてのデバイス、ルータ、サーバ、スイッチを管理し、正しく稼動させ、さらに最適稼動させることは気のめいる仕事です。

ここに、Simple network Management Protocol (SNMP) が役立ちます。

SNMPは、1988年に開発されました。

以下の項目は、そのSNMPをより良く理解して頂くためのものです。


SNMPの世界で一番有名なSNMP FAQです。
(英語の勉強にもなりますので、是非ご一読を!)


@ SNMP FAQ1はこちら
A  SNMP FAQ2はこちら


Before and After SNMP

@SNMPを使って、ルータのインターフェイスをシャットダウンしたり、イーサネット・インターフェイスが稼動しているスピードをチェックすることができます。

ASNMPは、ルータ・スイッチの気温をリモート監視して、高すぎると警告することもできます。

BSNMPは、ルータ・インターフェイスから出る不良パケット数が増えてきていると、ルータが間もなく故障するということを知らせてくれます。

Cクレジット・カード処理機がハングした場合、アラートをあげさせ、家から修正することさえできます。

Dネットワークが正常に稼動しているというログを保存することができます。

SNMPの先輩は、Simple Gateway Management Protocol (SGMP) です。これはルータを管理しました。

SNMPは、ルータ、スイッチ、UNIX、Windows システム、プリンター、電源、UPS、 ほか多数のデバイス管理します。

 

Topへ戻る


ネットワーク監視

Remote Network Monitoring (RMON) は、LAN トラフィックだけでなく、WAN のインターフェイスも監視します。

RMON v1は、LAN、WAN のパケット・レベルの統計情報を提供し、RMON v2は、ネットワークからアプリケーション・レベルの統計情報を提供します。

ネットワーク管理というのは、増大・複雑化するネットワーク維持・メンテナンスに対応してスタッフを増員する傾向になります。

24/7 (24 hours and 7 days) staffing

Internet Engineering Task Force (IETF) は、SNMPを含めた標準プロトコルを定義しています。

IETFは、Request for Comments (RFC) を発行しています。

IPの世界で存在する多数のプロトコルの仕様です。

RFC ドキュメント・プロセス<< Proposed → Draft → Standard >> <<Historical  VS  Experimental >>

 

  • SNMP v1 --現在の標準バージョン。RFC1157で定義され、IETF 標準。

セキュリティはパスワードと似たコミュニティ(平分テキスト)に基づいています。

平分テキスト・ストリングによって、ストリング(文字列)を知っているどのSNMP対応アプリケーションもデバイス管理にアクセスできます。

SNMP v1には、read - only , read - write , trap の3つのコミュニティがあります。

  • SNMP v2 --は、一般にコミュニティ・ストリング・ベース SNMP v2と言われている。

このバージョンは、またSNMP v2c とも言われます。

RFC 1905、1906、1907 で定義されてますが、Experimental  IETF です。

つまり、まだ標準に至っていないドキュメントです。

まだ、実験段階ですが、既にいくつかのベンダーは、実際にサポートをしています。

  • SNMP v3 --つい最近標準になりました。

RFC 1905、1906、1907、2571、2572、2573、2574、2575、にて定義さています。

認証(MD5―文章の整合性をチェック及び SHA2)と暗号(DES)が追加されました。

Appendix F に SNMPv3 の紹介があります。

RFC 公式サイト:www.ietf.org/rfc.html

問題なのは、求める情報がさがしにくいという事ですが、以下のサイトの方が容易です。

www.cis.ohio-state.edu

 

Topへ戻る


Manager and Agent

Manager と Network Management Station (NMS) は、一緒の意味に使われます。

TRAPとは、エージェントがNMSに問題が発生したと伝える方法です。非同期で伝えられますのでNMSの問い合わせに応答するものではありません。

”all clear” TRAPを使うデバイスもあります。これは逆に、問題が解決した時に送るTRAPです。

SNMPエージェントの搭載は、例えば、Unix daemon、Cisco IOS、UPSのOS等に搭載されている。

Structure of Management Information (SMI)

SMIv1(RFC1155)は、オブジェクトがどのようにネーミングされているか正確に定義され、関連のデータ・タイプが明記されています。

SMIv2(RFC2278)は、SMIv1の拡張版です。

SMIv2の拡張

SMIv2は、いくつかのデータ・タイプと多くの変更を行い、インターネット・サブツリーにSNMPv2を追加することでSMIオブジェクトを拡張します。

オブジェクトをどのようにアクセスするかにより制御できます。

 

Topへ戻る


Management Information Base (MIB)とは、エージェントが追跡する管理オブジェクトのデータベースのこと。

エージェントは、多数のMIBを実行してもよいが、すべてのエージェントはMIB-II(RFC1213)と呼ばれる特定のMIBを実行する。

MIBは、システムの場所、システム接点だけでなく、インターフェイス統計(インターフェイス・スピード、MIBの例であるオクティッド送信、オクティッド受信)のような設定変数を定義します。

 

MIBの主目的は、TCP/IPネットワーク管理情報を提供することである。

MIB-IIを見る

  1. System(mib-2 1):システム・アップ、システム・コンタクト、システム・ネームなどのオブジェクトを定義

  2. Interface(mib-2 2):インターフェイスのアップ、ダウン、オクティッドの送受信、エラー、破棄

  3. At(mib-2 3):Address Translation - Backward Comatibity

  4. IP(mib-2 4):IPルーティング

  5. Icmp(mib-2 5):

  6. Tcp(mib-2 6):TCPコネクション(closed listen synSent)

  7. Udp(mib-2 7):データグラム

  8. Egp(mib-2 8):EGPについての追跡

  9. Transmission(mib-2 10):

  10. snmp(mib-2 11):性能をチェック、SNMPパケットの送受信

 

MIBの例

  • ATM MIB(RFC2515)

  • Frame Relax DTE Interface Type MIB (RFC2115)

  • BGPv4 MIB (RFC1657)

  • RDBMS  MIB (RFC1697)

  • RADIUS Server MIB (RFC2619)

  • Mail Monitoring MIB (RFC2249)

  • DNS Server MIB (RFC1611)

  • Host Resources MIB (RFC2790) ・・・ disk space、memory usage、system use数、稼動プロセス数、搭載のOSは、Host Resourcesを実行できます。しかし、設定しないと実行できます。しかし、snmp搭載でも必ずしもこのMIBをサポートしていると限らない。

Topへ戻る


プライベートMIB:あるベンダーが、ルータの新製品を出し、エージェントを搭載し、MIB−II 標準を使います。

更に、そのルータはリモート監視が必要な新機能を搭載したが、MIB-II機能では網羅されていない場合、ベンダーは自分自身用のプライベートMIBを定義して統計情報を得ることができます。

新しいMIBをNMSに単に搭載しても、新MIBに定義されたデータ検索は必ずしもできません。

Snmpget,snmpwalkなどのクエリーを要求するエージェントがサポートしたMIBのみ搭載する必要があります。

将来のデバイス・サポートの為に、自由に追加のMIBを搭載して下さい。

但し、デバイスが反応しないことや、エラーを発することで、パニックにならないで下さい。

 

最も有名なネットワーク管理サーバサイト:バッファロー大学 http://www.netman.cit.buffalo.ebu;

Simple Web Link (http://www.SNMPLink.org), SNMP Link (http://www.SNMPLink.org),

Online Publications The Simple Times (http://www.simple-times.org)

comp protcols snmp は、SNMPネットワーク未経験者相談にのってくれるサイト。

 

Topへ戻る


SNMPを綿密に見る   

トランスポートプロトコルとしてUDPを使います。

エージェントとNMSとの間は、データグラム(パケット)が送受信されます。これは、タイムアウトにて実行されます。

送信してからの応答時間の設定及び、何回送信するかは、設定が可能です。

<< If your network never failed, you would not need to monitor it >>

SNMPは、UDPポート161をリクエストの送受信(エージェント側)に使い、ポート162をTRAPの受信(マネージャ側) に使います。

Protocol Suite は、Protocol Stack とも言う。各レイヤーは、直下のレイヤーからの情報を使い、次のレイヤーに直接サービスを提供するからです。

 

リクエストの流れ  --  << アプリケーション(NMS or Agent) → UDP → IP → MAC >>

文章に例えると、封筒に住所を書くのは、UDPの機能、UDPのパケット・ヘッダーに目的ポートを記録します。

次に、切手を貼って郵便箱に投函するのは、IP機能です。

MAC層は、郵便物搬送のトラックや飛行機にあてはまります。

 

Topへ戻る


SNMPコミュニティ・ストリング

SNMPv1とSNMPv2は、マネージャーとエージェントの間に、信頼を構築するためのコミュニティという概念使用しています。

コミュニティ名は、実質はパスワードであり、コミュニティ・ストリングとパスワードの実質的違いはありません。

エージェントは、3つのコミュニティ名、つまり read-only, read-write, trap で設定されます。

Read-only : パケットを読むだけで、修正やリセットができない。

Read-write : 数値を読むだけではなく、修正・リセットさらに、ルータのインターフェイスのリセットや、ルータの設定まで変えることができます。

Trap : Trapを受信します。

 

一般に、製品はデフォルト・コミュニティ・ストリングつまり、read-only コミュニティの public と read-write コミュニティの private を付加して出荷します。勿論、この設定は変更できます。

SNMPエージェントを設定する時、 Trap目的地(マネージャ)も設定したいでしょう。

SNMPコミュニティ・ストリングは、平分テキストにて送信されるので、誰かが不公平なコミュニティ・ストリングであなたのデバイスに問い合わせをかけようと試みたとき、SNMP認証失敗TRAPをエージェントにあげさせる設定も可能です。

とりわけ、SNMP認証失敗TRAPは、ネットワーク侵入者がアクセスを試みようとする時には、非常に有効になりえます。

FIREWALL設定で、既に知っているホストからしか、ポート161(SNMPリクエスト)上のUDPトラフィックを許可しないようにします。

 

Topへ戻る


誰かが read-write access をあなたのSNMP機器でできたら、彼はSNMPを使ってそれらのデバイスを変更できます例えばルータのインターフェイスを変更したり、
スイッチのポートをダウンしたり、ルーティング・テーブルの書き換えさえしてしまえるのです。

これを防ぐ方法としては、暗号を使用した Virtual Private Network (VPN) を用いたり、頻繁にコミュニティ・ストリング(SOHOの場合)を変えたりすることが有効です。

もうひとつの方法は、SNMPを使う Perlスクリプトを書いてコミュニティ・ストリングを変える方法です。


オブジェクトの定義は、3つの属性に分けられます。

@ 名前 --- Object Identifier (OID)

A タイプ&シンタックス --- Abstract Syntax Notation One (ASN.1) 、ASN . 1 は、データがどのように表記され、またマネージャとエージェント間で転送されるかを明記しています。

表記方が machine-independent である。

B エンコーディング

Basic Encoding Rules (BER) を使ってオブジェクトをオクティドのストリングにする。

これでエンコードしてイーサネット上などに転送する。

 

Object Identifier (OID) ----- 1.3.6.1.2 などの表記方法

Root, Subtree = Branch, Leaf node (Subtree がないもの)

Private Subtree の下に、ハードウェア・ソフトウェアのベンダーが、プライベート・オブジェクトを定義することができます。

会社だけではなく、個人もプライベート・オブジェクトを登録できます。

何故、自己の番号を登録したいかというと、標準MIBでカバーされていない項目もモニターしたいときです。

SMIv1 データタイプの種類

1) INTERGER (整数)

2) OCTET STRING

3) COUNTER

4) OBJECT INDENTIFIER

5) NULL

6) SEQUENCE

7) SEQENCE OF 

8) IPADDRESS

9) NETWORKADDRESS

10) GAUGE

11) TIMETICKS

12) OPAQUE

標準のテキスト・エディタVi などで、ベンダー特有のMIBはチェックできる。

NMS管理者は、ベンターのMIBをコンパイルしてNMSが利用できるフォーマットに変える。

OBJECT-TYPE - MIB がどのように記載されているかを見ることができる。

 

Topへ戻る


IfTable

IfEntry に定義されたコラムを含むテーブル

IfDescr : インターフェイスの説明

 

Topへ戻る


SMIv2 の表記法

Net Datatype for SMIv2 (P.24)

Integer32

Counter32

Gauge32

Unsigned32

Counter64

BITS

 

SMIv2 の Textual Conventions (表記のきまり)

DisplayString

PhysAddress

MacAddress

TtuthValue

TestAndIncr

AutonomousType

VariablePointer

RowPointer

RowStatus

TimeStamp

TimeInterval

DateAndTime

StorageType

Tdomain

Taddress

 

Object Definition Enhancement (P.25)

UnitsParts

MAX-ACCESS

STATUS

AUGMENTS

 

Topへ戻る


SNMP操作コマンド

"get - 一度に一個のMIBオブジェクトを入手するのに向いている。

Variable Binding or varbind = 「OID値」を使って調べる。

標準 get は、一度に一個以上のMIBを検索しようとするが、エージェントの能力によってメッセージ・サイズが制限される。

エージェントがリクエストした全ての応答を返せなければ、get はエラーメッセージを返す。

" get next - デバイスから1ケ以上のグループのオブジェクトを入手する

エージェントがエラーを返すまで続ける → エラーがでれば、これがもう以上MIBがないという意味です。

Get-next は、下記のシステム系の変数を返す。

Get-next は、サブツリーを辞書編集の順序で横切る。

1) System.sysDescr    2)  system.sysObjectID   3) system.sysUptime   4) system.sysContact   5) system.sysName    6) system.sysLocation

7) system.sysServices

・ set

read-write か write-only としてMIBに定義されたオブジェクトがこのコマンドを使って変更できます。

NMSは、一度に一個以上のオブジェクトを変更できます。

・ get-response

・ trap の種類

1) coldStart (0) - エージェントがリブートしたとの意味。全ての設定値がリセットされる。

特に、カウンターとゲージがゼロになる。特に、メリットは、新しいハードウェアがネットワークに加わったことを見極めるために使われる。

デバイスが、ONされたらNMSにトラップをあげ、デバイスが管理必要かどうか見極められる。

2)  warmStart (1)

エージェントが初期化したことを意味する。どのような設定値もリセットされない。

3) linkDown (2)

デバイスのインターフェイスがダウンしたとき送信される。

4) インターフェイスが回復したときに送信される。最初のOID値 (Variable Binding) でどのインターフェイスが回復したかつきとめる。

5) authenticationFailure (4)

誰かが、不正のコミュニティ・ストリングを使用してエージェントにアクセスしようとしたことを意味する。

6) egpNeighborLoss (5)

egp サーバがダウンしたことを意味する。

7) enterpriseSpecific (6)

このトラップはエンタープライズ特有のもの。

SMIオブジェクトツリーの私企業サブツリー下に自身のトラップを定義することができる。

このトラップを正確に処理するためには、SNMPメッセージの一部である特定のトラップ・ナンバーをデコードしなければならない。

・ get-bulk (SNMPv2&v3)

NMSが一度に大量の情報を得る。

エージェントにできるだけ多くの情報を送るように命じる。そのため、不完全な応答も起こりえる。

Nonrepeaters は、get-bulk に、最初のN個のオブジェクトが get-next を使って検索できると伝える。

Max-repetitions は、get-bulk にコマンドに命じてM(最大数)の get-next を繰り返して、残りのオブジェクトを検索するよう命ずる。

・ notification = trap (SNMPv2&v3)

・ inform (SNMPv2&v3)

NMSとNMSの連絡に使われる。

・ report (SNMPv2&v3)

 

Topへ戻る


ホスト管理について

Host Resources MIB

1)  Host OID

2)  hySystem

Uptime , system date, system user, system process に関するオブジェクトを定義

3)  hrDrive & hrStorage

ファイルシステム、system memory, disk utilization, cpu 使用量などのシステム情報。

ホストのディスク・パーティションを管理するのに使用される。

ディスクのエラーチェックにも使える。

4)  hrWRun, hrSWRunPerf, hrSWInstalled

システム上にインストールされたソフトウェアの様々な面を定義します。

どのOS上でどのソフトウェアが稼動しているかがわかります。

 

Topへ戻る


RMON

RMONv1 とRMONv2 がある。

RMONプローブは、ネットワーク・セグメントのトラフィックを監視します。

RMONv2は、ネットワークとアプリケーション・レベルの統計情報を提供してRMONv1 をエンハンスしたもの。

RMON  MIBは、下記の10グループで定義します。

1)  rmon

2)  statistics

プローブで監視したイーサネット・インターフェイスの統計

3)  history

統計グループからの定期的統計サンプル

4)  alarm

ポーリングのインターバルやRMONプローブが記録するオブジェクトのしきい値を設定可能にする

5)  hosts

ホストのトラフィック統計を記録する

 


new.gif (9494 バイト)CISCOプライベートMIBの使い方講座

 

皆さん、MIBの見方や考え方はご存知でしょうか?

 

答えはここにあります! 

 

CISCOプライベートMIBの解釈方法と利用方法に就いて説明しています。 A4x14ページ構成

 

・CISCO Ping MIB

・CISCO SyslogメッセージMIB

・CISCO キューMIB

・CISCO (CISCO Discovery Protocol) MIB

・CISCO バルクファイルMIB FTPクライアントMIB

・CISCO システムMIB

・CISCO インターフェースMIB

・CISCO フレームリレーMIB

・CISCO レスポンスタイムモニターMIB