SNMP基本講座 |
SNMP-Capable Device ネットワークのすべてのデバイス、ルータ、サーバ、スイッチを管理し、正しく稼動させ、さらに最適稼動させることは気のめいる仕事です。 ここに、Simple network Management Protocol (SNMP) が役立ちます。 SNMPは、1988年に開発されました。 以下の項目は、そのSNMPをより良く理解して頂くためのものです。
SNMPの世界で一番有名なSNMP FAQです。
@SNMPを使って、ルータのインターフェイスをシャットダウンしたり、イーサネット・インターフェイスが稼動しているスピードをチェックすることができます。 ASNMPは、ルータ・スイッチの気温をリモート監視して、高すぎると警告することもできます。 BSNMPは、ルータ・インターフェイスから出る不良パケット数が増えてきていると、ルータが間もなく故障するということを知らせてくれます。 Cクレジット・カード処理機がハングした場合、アラートをあげさせ、家から修正することさえできます。 Dネットワークが正常に稼動しているというログを保存することができます。 SNMPの先輩は、Simple Gateway Management Protocol (SGMP) です。これはルータを管理しました。 SNMPは、ルータ、スイッチ、UNIX、Windows システム、プリンター、電源、UPS、 ほか多数のデバイス管理します。
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対応アプリケーションもデバイス管理にアクセスできます。 SNMP v1には、read - only , read - write , trap の3つのコミュニティがあります。
このバージョンは、またSNMP v2c とも言われます。 RFC 1905、1906、1907 で定義されてますが、Experimental IETF です。 つまり、まだ標準に至っていないドキュメントです。 まだ、実験段階ですが、既にいくつかのベンダーは、実際にサポートをしています。
RFC 1905、1906、1907、2571、2572、2573、2574、2575、にて定義さています。 認証(MD5―文章の整合性をチェック及び SHA2)と暗号(DES)が追加されました。 Appendix F に SNMPv3 の紹介があります。 RFC 公式サイト:www.ietf.org/rfc.html。 問題なのは、求める情報がさがしにくいという事ですが、以下のサイトの方が容易です。
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は、いくつかのデータ・タイプと多くの変更を行い、インターネット・サブツリーにSNMPv2を追加することでSMIオブジェクトを拡張します。 オブジェクトをどのようにアクセスするかにより制御できます。
Management Information Base (MIB)とは、エージェントが追跡する管理オブジェクトのデータベースのこと。 エージェントは、多数のMIBを実行してもよいが、すべてのエージェントはMIB-II(RFC1213)と呼ばれる特定のMIBを実行する。 MIBは、システムの場所、システム接点だけでなく、インターフェイス統計(インターフェイス・スピード、MIBの例であるオクティッド送信、オクティッド受信)のような設定変数を定義します。
MIBの主目的は、TCP/IPネットワーク管理情報を提供することである。
プライベート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ネットワーク未経験者相談にのってくれるサイト。
トランスポートプロトコルとして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層は、郵便物搬送のトラックや飛行機にあてはまります。
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トラフィックを許可しないようにします。
誰かが 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 がどのように記載されているかを見ることができる。
IfEntry に定義されたコラムを含むテーブル IfDescr : インターフェイスの説明
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
"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)
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上でどのソフトウェアが稼動しているかがわかります。
RMONv1 とRMONv2 がある。 RMONプローブは、ネットワーク・セグメントのトラフィックを監視します。 RMONv2は、ネットワークとアプリケーション・レベルの統計情報を提供してRMONv1 をエンハンスしたもの。 RMON MIBは、下記の10グループで定義します。 1) rmon 2) statistics プローブで監視したイーサネット・インターフェイスの統計 3) history 統計グループからの定期的統計サンプル 4) alarm ポーリングのインターバルやRMONプローブが記録するオブジェクトのしきい値を設定可能にする 5) hosts ホストのトラフィック統計を記録する
皆さん、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
|