問題解決作業中、私はよくネットワークトレースの提出を依頼します。ネットワークトレースは問題の根本原因を特定する手がかりとなることが多く、少なくとも問題領域を管理可能な範囲に絞り込めます。例えばネットワークプリンターが文字化けした際、数日間TTPを調査しましたが、ネットワークトレースを取得すると送信テキストは正常であることが判明。問題はプリンター側でした。 別の事例では、数千マイル離れたモジュール間のOSLパフォーマンス問題がネットワーク障害のように見えたが、トレースにより問題がサーバーモジュール側にあることが明確に判明した。ネットワークトレースがなければ、私は今なお両方の問題に取り組んでいただろう。
ネットワークトレースを取得するにはどうすればよいですか?3つの可能性があります。
パケットモニター
VOSのpacket_monitorコマンドは、いくつかの制限はあるものの、モジュールがネットワークに送信および受信するすべての通信を監視することを可能にします。 詳細はhttp://community.stratus.com/blog/openvos/getting-most-out-packetmonitorおよびstratadocfile=ch9r419-09i.htmlを参照してください。
packet_monitorコマンドにはいくつかの制限があります。送信済みと報告されたフレームが実際に送信されたことを100%保証することはできません。例えば、アダプタ側のエラーによりフレームの送信が妨げられる可能性があります。 さらに、CRCエラーなどのエラーを伴って受信されたフレームは、packet_monitorが確認できるよう上流に送信されません。packet_monitorはアダプタをプロミスキャスモードにしないため、アダプタ宛てまたはブロードキャストアドレス宛てのフレームのみが上流に通過します。リンクが90%稼働中であっても、packet_monitorが報告するフレームは1秒あたり1フレームのみとなる場合があります。これは、アダプタ宛てまたはブロードキャストアドレス宛てのフレームがそれのみだからです。
一般的に、packet_monitorなどのホストベースのモニターは、他の形式のトレースへの追加手段として、または他の形式のネットワークトレースが利用できない場合にのみ有用です。
ポートミラーリング(別名SPAN:Switch Port for ANalysis)ポート
ミラーポートまたはスパンポートとは、スイッチ上の1つ以上のポート(あるいはVLAN全体)で観測される全トラフィックを複製するスイッチポートである。ミラーポートはネットワーク監視装置に接続されなければならない。この装置は専用デバイスでもLinux Windows を実行するPCでもよく、Wireshark(http://www.wireshark.org/)やtcpdumpなどのホストベース監視ツールWindows 。 ミラーポートの設定は簡単で、スイッチ上で数個のコマンドを入力するだけで完了します。
残念ながら、ミラーポートの使用にはいくつかの大きな欠点があります。第一に、ポートは正しく設定されている必要があります。誤って設定されたポートは、ネットワークトレースでフレームの欠落や重複を引き起こす可能性があります。第二に、スイッチはエラーのあるフレームを複製しないため、これらのフレームはトレースされません。第三に、負荷の高いスイッチは、ミラーポートへの複製ではなくフレームをドロップする可能性があります。 第四に、VLAN全体、複数のスイッチポート、あるいは単一の全二重ポートからのフレームを受け入れるミラーポートは、過負荷状態となり一部のフレームをドロップする可能性があります。第五に、スイッチとホスト間で発生したエラーは、全く別のスイッチポートに接続されたネットワーク監視アプリケーションからは確認できません。同様に、ミラーポートとネットワークアプリケーション間で発生したエラーは、ネットワーク機器にホストが実際にスイッチから受信している内容の歪んだ見解を与えることになります。
ネットワークタップ
タップはスイッチとホストの間に接続するパッシブデバイスであり、文字通りネットワーク接続を分岐させる。ミラーポートと同様にネットワーク機器に接続する必要があるが、ミラーポートよりも欠点が少ない。
第一に、通常設定は不要です。接続するだけで動作します。第二に、より高度なタップは、監視ポートへのフレーム複製にのみ電力を使用します。複製動作の信頼性を確保するため、デュアル電源を備えています。電源が失われても、これらのタップはネットワークポート間のフレーム転送を継続します。複製のみが停止します。 第三に、タップの機能はフレームを複製しネットワーク監視アプリケーションへ転送する一点に集中しています。そのため大容量トラフィックによる処理能力の限界に達する可能性が極めて低いです。さらに集約型タップはバッファ領域を備えており、全二重リンク上でフレームを落とさずに高トラフィックを転送可能です。ただし持続的な高レートではバッファが飽和する可能性があります。集約型タップでは複数の入力ポートを結合することも可能です。 例えば、2ポートデバイスならデュプレックスペアアダプタのアクティブ/スタンバイ両方を監視可能。これによりアダプタのフェイルオーバー時でも監視を継続できる。最後に、タップをホストアダプタに接続することで、ネットワーク監視装置がホストアダプタから送信される全フレームと、スイッチからホストアダプタへ到着する全フレームを確実に捕捉できる。
多くのタップがミラーポートと共通して持つ欠点の一つは、損傷したフレームをドロップすることである。多くのネットワーク監視装置、特に市販のイーサネットハードウェアを搭載した単なるPCも損傷したフレームをドロップするため、タップメーカーはこれを重大な欠陥とは見なしていない。
タップとスパンポートに関する詳細な解説は、http://www.lovemytool.com/blog/2007/08/span-ports-or-t.htmlまたはhttp://taosecurity.blogspot.com/2009/01/why-network-taps.htmをご参照ください。あるいはお使いの検索エンジンに「ネットワークタップとスパンポート」と入力してください。
監視の課題
最初の課題は、監視のタイミングと期間です。理想的には、本番システムの重要なネットワークリンクは継続的に監視すべきです。問題が最初に発生した時点で捕捉し、ネットワークトレースを手にしていることは、問題に遭遇してから監視を設定し、再現を試みるか再発を待つよりもはるかに迅速です。 トレースファイルは膨大なサイズになる可能性があります。ギガビットリンクで50%の負荷がかかると、毎秒約62.5メガバイト、毎分3.75ギガバイトが生成されます。トレースファイルは、最悪のケースにおける対応時間を超えて保存する必要はありません。 報告された問題に1時間で対応できる場合、1時間分のトレースデータのみ保存すれば十分です。保存するトレースデータが多ければ多いほど、対応の余裕が生まれ、調査が必要な問題が発生したことを認識しやすくなります。大容量ディスクは、少なくともサービス中断のコストと比較すれば比較的安価です。トレースデータを保存するために、1テラバイト以上のディスクドライブを1台以上購入することを検討してください。
スパンポートを使用する場合、このレベルの監視を維持することは困難な場合があります。複雑なネットワーク環境では、ネットワーク管理者は様々な業務に追われ、スパンポートの維持や障害発生時の継続的な監視を継続することは難しいかもしれません。
一方、ホストの隣に設置するネットワークタップは、そのホスト専用となります。高度なネットワーク監視アプライアンスを購入することもできますが、Windows を実行する1テラバイトのハードドライブを搭載した基本的なPCWindows tsharkプログラム(Wiresharkの非GUIインターフェース)を使用することから始めることも可能です。 この構成では(データレート500Mbpsを想定)266分間のトレースデータを取得でき、ほとんどの用途に十分対応可能です。1テラバイトドライブは探せば100ドル未満で購入できます。
基盤となるネットワークの健全性は、継続的に利用可能なアプリケーションにとって極めて重要です。ネットワーク活動の正確なトレースを定期的に取得するよう努めてください。問題が発生した場合、再発を待つことなく迅速に解決できます。さらに、トレースデータを分析することで、これまで隠れていたネットワークに関する知見を得られるという副次的な利点もあります。
