SNMP に関する基礎的な情報

From ServersCheck Wiki

Jump to: navigation, search

Contents

はじめに

1970年代の終わりに、コンピューターネットワークは、分離された小規模で単純なレイアウトから、相互に接続された大規模なネットワークに成長しました。これらの大規模なネットワークはインターネットと呼ばれており、指数的な速度で成長してきました。これらのネットワークでは、管理(監視や保守)が困難となり、すぐにネットワーク管理プロトコルを開発する必要性が明白になりました。

最初に使用されたプロトコルはSNMP(Simple Network Management Protocol)でした。これは、一般にネットワーク間管理の複雑性に対処するため、緊急に設計された「応急処置」のソリューションと考えられていましたが、その他にも大規模かつ優れたプロトコルが設計されていきました。

その中で、1980年代に設計された2つのプロトコルがあります。最初のものはSNMPv2で、本来のSNMP(現在も広く使用されている)の機能を多数取り込むとともに元々のプロトコルの欠点に対処する機能を追加していました。2番目は、CMIP(Common Management Information Protocol)であり、SNMP v1やv2と比較して、より多くの機能が優れた構成を持っていました。

一般社会では、すぐにCMIPとSNMPv2の間で選択が行われると思いますが、非常に大きなコストがかかると考えられます。平均的な企業では、情報システムの総予算のうち、約15%がネットワーク管理に費やされています。これは、米国の上位100社の企業で、平均して年間130万ドルがネットワーク管理に使われていることを意味しています。(Stallingsより)

ユーザーがネットワーク管理者に望む規準が、2つの調査で研究、報告されました。両方の結果から、ユーザーは、優れたネットワークセキュリティシステム、使いやすいユーザーインターフェイス、比較的低価格のシステム、システムダウン時間の短縮などを求めていることが分かりました。これらは、近い将来、両ネットワークプロトコルの比較で使用される規準の一部となります。(Stallings)


SNMPとは

SNMPは、1980年代中旬に、種類の異なるネットワーク間の通信問題に対応するために設計されました。当社の目的は、優れた設計を持つより完全なネットワークマネージャーが提供されるまでの「応急処置」のソリューションでした。しかし、さらに優れた選択肢が提供されることはなく、ネットワーク管理プロトコルとして、SNMPが選択されてきました。

その動作方法は非常に単純であり、メッセージを通してネットワーク情報を交換します(技術的にはPDU(Protocol Data Units)と呼ばれる)。高度な視点からは、メッセージ(PDU)は、タイトルと値を持つ変数を含むオブジェクトと解釈されます。(Stallings)

SNMPがネットワークの監視に使用する5種類のPDUとして、端末データの読み取りを処理するものが2種類、端末データの設定を処理するものが2種類、端末の起動やシャットダウンなど、ネットワークイベントの監視に使用するもの、つまりトラップが1種類あります。

したがって、ネットワークに接続されている端末を確認したい場合には、SNMPを使用してその端末に読み取りPDUを送信します。その端末がネットワークに接続されている場合には、「yes, the terminal is attached」という値のPDUが送り返されます。端末が切断される場合、その端末からシャットダンを通知するパケットを受け取ります。この例では、トラップPDUがディスパッチされています。


SNMPの利点

SNMPを使用する最大の利点は、その設計が単純ことです。したがって、セットアップに長時間を必要とせず、またネットワークにも大きな負荷をかけないため、大規模ネットワーク上に簡単に実装できる点です。また、そのシンプルな設計により、監視する変数を簡単にプログラムできます。たとえば、より低レベルの視点では、各変数は次の情報で構成されています。

  • 変数タイトル
  • 変数のデータ型(たとえば、整数、文字列)
  • 変数が読み取り専用、または読み取り/書き込み
  • 変数の値

このシンプルさの実質的な結果として、ネットワークマネージャーの実装が簡単になり、また既存のネットワークに大きな負荷をかけません。

SNMPのもう1つの利点は、現在非常に広く使用されていることです。このように広く利用されているのは、SNMPの「応急処置」実装に代わるネットワークマネージャーが出現しなかったことによります。その結果、ブリッジやルーターなど、ネットワーク間ハードウェアのすべての主要ベンダーが、SNMPをサポートするように製品を設計し、実装が非常に簡単になりました。

SNMPのもう1つの利点に拡張性があります。シンプルな設計のため、プロトコルのアップデートが簡単であり、将来、ユーザーのニーズに応えて拡張できます。後ほど、この効果を示します。


SNMPの欠点とその克服方法

SNMPは、決して完全なネットワークマネージャーではありません。欠陥もありますが、賢明な設計により、これらの欠陥の大部分には回避策が準備されています。

SNMPの最初の欠陥は、いくつか大きなセキュリティギャップがあり、ネットワーク侵入者に対して、ネットワーク上で搬送される情報へのアクセスを許す点があります。侵入者が、いくつかの端末をシャットダウンする可能性があります。

この問題に対する解決策は単純です。SNMPには拡張性があるため、最新バージョンのSNMPであるSNMPv2に、最も大きな4つのセキュリティ上の問題に対処するセキュリティメカニズムがいくつか追加されています。問題としては、データのプライバシー(侵入者が、ネットワーク上を搬送される情報にアクセスするのを防止する)、認証(侵入者が、ネットワーク上に不正データを送信するのを送信するのを防止する)、およびアクセス制御(特定のユーザーに対して、特定変数へのアクセスを制限し、ユーザーが誤ってネットワークをクラッシュさせる可能性を排除する)が挙げられます。(Stallings)

SNMPの最大の問題は、一般に、非常にシンプルだと考えられているものの、このプロトコルの取り扱う情報は、1990年代の拡張するネットワークに対処するには、十分に詳細でもなく、また組織化もされていないことでした。その原因は、SNMPが早急に作成されたことであり、1990年代までネットワーク管理の先頭に立つことを全く意図していませんでした。

この大きな問題は、新しくリリースされたSNMPであるSNMPv2で修正されました。この新しいバージョンでは、データの検索を容易にするテーブルデータ構造の使用を含めて、より詳細に変数を指定できます。また、テーブル化オブジェクトの操作に使用する2つの新しいPDUも含まれています。実際に、あまりに多くの新機能が追加されたため、SNMPの正式仕様は、SNMPv2では36ページ(v1)から416ページに拡大しました。(Stallings) SNMPv2ではプロトコルのシンプルさが失われたと言う人もいますが、事実としてSNMPに対する変更は必要でした。SNMPは古いシステムであり、ネットワークに大きな負荷の掛かる1990年代の世界には対処できませんでした。


SNMPv2アップデート

以下の説明を読み終わると、進むべき道はSNMPv2であると考えるようになると思います。しかしながら、SNMPv2は理論上でのみ存在しています。その作成者たち(Case、McCloghrie、Rose、およびWaldbusser)が複数の主要な点で合意に至らなかったため(私は知りませんが)、SNMPv2は失敗しました。とはいえ、提案されたv2拡張を完全にサポートするSNMPマネージャーを見つけるのは極めて困難です。多くのエージェントはセキュリティ拡張をサポートしていますが、v1の拡張によって実現しています。個人的には、v1が非常に大きな成功を収めたため、v2は失敗したと考えています。現在、v1は至るところで使用されており、その偉大な機能をすべて維持しながら、すべての問題を解決することが、まだ達成されない目標となってきました。v3、またはv2の再実装については、しばらくは、または決して実現されないのではないかと考えています。v1は、すべての人の予想を超えて存続し続けており、そのため、後続プロトコルがその役割を遂行するのを不可能にしています。これはすべて私見(MHO)であり、他の編集意見をお待ちしています。

Personal tools