「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-戻る
--[[監視・パケット解析編]]
--[[電文を確認する方法(パケット・キャプチャ)]]

* 目次 [#u9cf3965]
#contents

*概要 [#e89ee161]
OSSソフトウェアLANアナライザであるWiresharkの操作方法を説明する。
-OSSソフトウェアLANアナライザであるWiresharkの操作方法を説明する。
-元ネタが古く、wireshark-setup-0.99.7.exeを使用している(操作方法は大きく変わっていないと思う)。

*Wiresharkの特徴 [#g325bafe]
**区分 [#tc00de21]
LANアナライザには、以下の区分がある。

#ref(ClassificationOfLanAnalyzer.png,left,nowrap,LANアナライザの区分)

**区分ごとの特徴 [#ifd638ff]
これらのLANアナライザには、それぞれ以下のような区分がある。

-LANアナライザの区分毎の特徴
|#|区分|>|特徴|h
|1|ハードウェア&br;LANアナライザ|長所|持ち運びが容易。下位レイヤのトラブルシュートに優れるため、ケーブル品質の調査、エラーフレームの測定が可能。|
|~|~|短所|ソフトウェアLANアナライザと比べ、統計・レポート出力、しきい値の設定と警告の出力、パケットの分析などの機能が劣る。|
|~|~|価格|一般的に高価である。|
|2|商用ソフトウェア&br;LANアナライザ|長所|統計・レポート出力、しきい値の設定と警告の出力などの機能が優れている。|
|~|~|短所|NICドライバでキャプチャ可能である必要があるので、下位レイヤのトラブルシュートが難しい。|
|~|~|価格|一般的に高価である。|
|3|OSSソフトウェアLANアナライザ|長所|プロトコル毎のパケットの分析機能に関しては、商用アナライザを凌ぐ(バージョンアップの頻度の多さも強み)。|
|~|~|短所|NICドライバでキャプチャ可能である必要があるので、下位レイヤのトラブルシュートが難しい。|
|~|~|価格|無償で利用可能。|

-Wiresharkは、OSSソフトウェアLANアナライザ。~
下位レイヤの、ケーブル品質の調査、エラーフレームの測定などの用途には利用できない。

*インストール [#qf44684f]
**ダウンロード [#t657fcc8]
以下からWindows版のWiresharkのインストーラをダウンロード

-Wireshark: Download~
http://www.wireshark.org/download.html

**インストール [#fc55fd6f]
-デフォルト設定でインストールする。
-基本的にデフォルトのインストールで問題ない。
-以下、インストール オプションの注意点のみ抜粋して説明する。

--(a) のインストール オプションは、
---Wiresharkのインターフェイスのオプションで、~
前バーションのEtherealのインターフェイスで利用したい場合は、~
「Wireshark(legacy GTK1 user interface)」を選択する。
---ココでは「Wireshark(GTK2 user interface)」前提で説明を進める。

--(b) のインストール オプションは、
---WinPcap をインストールするかどうかのオプションである。
---Wiresharkのパケット キャプチャに必須のソフトウェアである。
---既にインストールされている場合を除いて必ずインストールする。

--(c) のインストール オプションは、
---Administrator権限を持たないユーザでもパケット キャプチャができるように、システム起動時にNICドライバをロードする設定である。
---Wiresharkはプロミスキャスモードのパケット キャプチャが可能であり、セキュリティ上好ましくないので、~
プロミスキャスモードを必要としない場合は、基本的にこのオプションは有効にすべきでないと考える。

#ref(ClassificationOfLanAnalyzer.png,left,nowrap,Wiresharkのインストール オプション)

>インストールが完了したら、Wiresharkを起動する。

*キャプチャ準備 [#e9a0c3ed]

**[Capture Interfaces]ダイアログ [#v6da81eb]
キャプチャは、メニューの[Capture] → [Interface]で表示される以下の[Capture Interfaces]ダイアログで、~
監視対象のインターフェイス(NIC)の[Start]ボタンを押して開始させる。

#ref(CaptureInterfacesDialog.png,left,nowrap,[Capture Interfaces]ダイアログ)

**[Capture Option]ダイアログ [#t9def31f]
-キャプチャ オプションを設定したい場合は、[Option]ボタンをして、[Capture Option]ダイアログを表示する。
-[Capture Option]ダイアログでは、キャプチャ オプションを確認・変更する。

#ref(CaptureOptionDialog.png,left,nowrap,[Capture Option]ダイアログ)

-初めに、[[(1)>#oa7f89b5]]を選択し、
-重要な設定として以下の[[(3)>#l79e4950]]/[[(6)>#w3d6d01d]]/[[(7)>#tfe6a0a2]]の辺りを設定・確認する。
-その他の設定は、必要に応じて設定・確認する。
-設定が完了したら、[Start]ボタンを押してトラフィックの監視を開始できる。

***設定項目 : (1) 監視対象のインターフェイス(NIC)を選択 [#oa7f89b5]
-初めに、(1)を選択し、監視対象のインターフェイス(NIC)を選択する。


***設定項目 : (2) 監視に使用するメモリ量 [#laeee2a3]
-監視に使用するメモリ量を設定する。
-ファイル保存しない場合や、ファイル保存する場合にファイルI/Oによる~
性能低下を防ぐためのバッファリング処理に必要なメモリ量を設定する。

***設定項目 : (3) プロミスキャス モード [#l79e4950]
-プロミスキャス モードのオン・オフを設定する。
-プロミスキャス モードで監視する場合、このチェック ボックスをオンにする。

***設定項目 : (4) パケットのデータ サイズ [#kb626bb4]
-キャプチャするパケットのデータ サイズを設定する。
-設定がオフの場合、全てのデータをキャプチャする。
-オンにしてサイズを設定した場合、指定サイズより後ろのデータは切り捨てられる。

***設定項目 : (5) キャプチャ フィルタ [#m4d02828]
-キャプチャするデータをフィルタする設定をする(Wiresharkでは、これをキャプチャ フィルタと呼ぶ)。
-フィルタ設定については、後述の[[キャプチャ フィルタ設定の項>#u21fba22]]で説明する。

***設定項目 : (6) リアルタイム更新 [#w3d6d01d]
-リアルタイムにパケット リストを更新するかどうかを設定する。
-リアルタイムにトラフィックを参照したい場合は、[Update list of packets in real time]チェック ボックスをオンにする。
-また、パケット リストの自動スクロールの設定は、[Automatic scrolling in live capture]チェック ボックスで設定する。
-また、[Hide capture info dialog] チェック ボックスがオフの場合、~
[Capture Info]ダイアログが表示され、簡単な統計情報を確認できる。

***設定項目 : (7) ファイル保存 [#tfe6a0a2]
-キャプチャしたデータのファイル保存に関する設定をする。
-ファイル名、ローリング方法、保持するファイルの最大数などを設定する。

***設定項目 : (8) 名前解決 [#lcb90ac1]
-名前解決に関する設定をする。
-この設定を有効にすると監視処理の性能が悪化することがあるので、~
名前解決は、キャプチャ後に実行することを推奨する。
--[Enable MAC name resolution]は、MAC → メーカの名前に名前解決する。
--[Enable network name resolution]は、IP → マシン名・FQDN名に名前解決する。
--[Enable transport name resolution]は、ポート番号 → サービス名に名前解決する。

***設定項目 : (9) 監視の停止方法 [#qea75517]
-パケット キャプチャの停止方法を設定する。
-キャプチャしたパケット数、データ量、時間などで設定できる。
-ファイル保存をする場合、データ量による停止は無効になる。

**キャプチャ フィルタ [#u21fba22]
[Capture Option]ダイアログの[Capture Filter]テキスト ボックスにキャプチャ フィルタ用のフィルタ式を入力する。~
(このキャプチャ フィルタ用のフィルタ式は、後述の[[ディスプレイ フィルタ]]用のフィルタ式とは異なるので注意する)

***フィルタの例から選択する [#l467c63e]
[Capture Option]ダイアログの[Capture Filter]ボタンを押せば、~
[Capture Filter]ダイアログ ボックスが表示され、フィルタの例からフィルタ式を選択できる。

#ref(CaptureFilterDialog.png,left,nowrap,[Capture Filter]ダイアログ ボックス)

-[Filter]リスト ボックスからフィルタの例を選択し[OK]ボタンを押すと、~
[Capture Filter]テキスト ボックスに対応するフィルタ式が設定される。
-また、[New]ボタンを押して新しいフィルタの例を作成することもできる。

***フィルタ式・演算子 [#c18e9cfb]
キャプチャ フィルタには、幾つかのフィルタ式、演算子が用意されている。

詳細は、下記のサイトを参照のこと。
-The Wireshark Wiki > CaptureFilters~
http://wiki.wireshark.org/CaptureFilters
-Wireshark USER's Guide > 4.8. Filtering while capturing~
http://www.wireshark.org/docs/wsug_html_chunked/ChCapCaptureFilterSection.html

*キャプチャ開始 [#x4e94db2]
**[Capture form (インターフェイス名)]ダイアログ [#g03117ec]
-メニューの[Capture]を選択し[Interface]をクリックする。
-すると、[Capture Interface]ダイアログにインターフェイス(NIC)一覧が表示されるので、~
トラフィックを監視するNICの[Option]ボタンを押して、[[前述の設定>#t9def31f]]をした後に、~
[Hide capture info dialog] チェック ボックスのチェックを外し、[Start]ボタンを押す。

-これにより、以下の[Capture form (インターフェイス名)]ダイアログが表示され、全体の統計情報を確認しながらトラフィックを監視できる。
-このダイアログの、 [Stop]ボタンが押されるか、停止設定値に達するまで、トラフィックの監視が継続される。

-以下の図は、NIC監視中の[Capture form (インターフェイス名)]ダイアログである。

#ref(CaptureFormInterfaceDialog.png,left,nowrap,[Capture form (インターフェイス名)])

-[Capture form (インターフェイス名)]ダイアログから、
--一般的なネットワークでは、殆どのトラフィックはTCP/IP(ファイル共有・HTTP)であり、
--次いでUDP(DHCPのブロードキャスト、DNSクエリ)などのプロトコルであることが確認できる。
--その他のプロトコルとしては、ARP(イーサネットで内のIP → MACのアドレス解決)を確認できる程度である。

***補足 [#uffa2042]
-現在のWindowsネットワークでは、NetBIOS (NBT)が使用されているので、~
この画面ではNetBIOS(NetBEUI)プロトコルのパケットは確認できない。
-稀に、プリンタ サーバなどが発するNetBIOS(NetBEUI)のパケットが確認できる程度である。
-NetBIOS (NBT)が使用されていることは、キャプチャ後、次節で説明する画面から確認できる。

>例えば、

--NetBIOSの名前解決であるNetBIOSネーム サービス(NBNB)
--ブラウジング機能などが使用するNetBIOSデータグラム サービス(NBDS)
--ファイル共有(SMB)などが使用するNetBIOSセッション サービス(NBSS)

>を確認できる。

**GUIの確認 [#o1b483bc]
キャプチャを終了すると以下のような画面が表示される。ここには、主要な表示部位を示す。~
※ メニュー バーの[View]で対応する表示部位 のチェックを外すと表示を消すことができる。

#ref(MainScreen.png,left,nowrap,メイン画面)

以下、それぞれの表示部位に表示される表示項目について説明する。

***メニュー バー [#jeebbfd1]
[メニュー バー]は、Wiresharkの各機能を呼び出す際に使用する。使用方法は後述する。

***ツール バー [#tf0d7e50]
[ツール バー]には、良く使う機能がボタンとして用意されている。以下、良く使う機能のボタンをピックアップして説明する。

-~
#ref(Menu1.png,left,nowrap,メニュー1)
--ファイルの、オープン、セーブ、クローズ、リロードが可能。
--オープン・セーブの際は、対象パケットの入・出力範囲の選択も可能。

-~
#ref(Menu2.png,left,nowrap,メニュー2)
--パケット印刷ダイアログを表示し、データのプリンタ出力や
--テキストファイル出力ができる。出力範囲・出力部位の選択も可能。
#ref(PacketPrintingDialog.png,left,nowrap,パケット印刷ダイアログ)

-~
#ref(Menu3.png,left,nowrap,メニュー3)
--パケット検索ダイアログを表示し、条件に合ったパケットに移動する。
--検索条件には、フィルタ式、16進値、文字列値などが指定できる。
#ref(PacketSearchDialog.png,left,nowrap,パケット検索ダイアログ)

-~
#ref(Menu4.png,left,nowrap,メニュー4)
>直前・直後に参照したパケットに移動する。

-~
#ref(Menu5.png,left,nowrap,メニュー5)
>表示されたダイアログにパケット ナンバーを指定することで、指定したパケットに移動する。

-~
#ref(Menu6.png,left,nowrap,メニュー6)
>最初・最後のパケットに移動する。

***フィルタ ツール バー [#p84a8e94]

*HTTPのキャプチャ [#jacc0de2]
-Wiresharkは、OSI参照モデルで言う所の第4・5層のキャプチャをする。
-従って、キャプチャした情報は、フレームやパケット単位で見ることになる。

-HTTPのリクエスト・レスポンス(OSI参照モデルで言う所の第6層以上)~
のコンテンツについては、[Follow TCP Stream]で確認することができる。
--Wiresharkで特定の通信セッションだけを抽出して表示する - @IT~
http://www.atmarkit.co.jp/fwin2k/win2ktips/1048wsharkstream/wsharkstream.html
--[Follow TCP Stream]の結果、リクエスト・レスポンスの見た目が、~
HTTP 100-continue などによりキレイに繋がらないことがあります。
---HTTP 100-continue - ..たれろぐ..~
http://d.hatena.ne.jp/naga_sawa/20101114/1289709797
---また、全角文字が「・」で表示され確認できません。

*参考 [#i3ac90b5]
Wiresharkの使い方については下記を参照下さい。

**Wiresharkの使い方 [#l78c7369]
下記を参照下さい。

-ネットワーク入門サイト - Wiresharkの使い方~
http://beginners-network.com/wireshark.html
-Wiresharkで特定のプロトコルだけを表示させる - @IT~
http://www.atmarkit.co.jp/fwin2k/win2ktips/1050wsfiltproto/wsfiltproto.html
-Wiresharkで特定の相手との通信だけを表示させる - @IT~
http://www.atmarkit.co.jp/fwin2k/win2ktips/1065wsfiltaddr/wsfiltaddr.html
-Wiresharkで特定の通信セッションだけを抽出して表示する - @IT~
http://www.atmarkit.co.jp/fwin2k/win2ktips/1048wsharkstream/wsharkstream.html

なお、tsharkというCUI版も存在する様です。
**WinPcap [#nbe59c8a]
-WinPcapは、パケット キャプチャに関する機能を提供するソフトウェア
-以下のモジュールから構成される。
--システム非依存型の「wpcap.dll」
--ローレベル ライブラリ「Packet.dll」
--カーネル モードのNDIS中間ドライバ「npf.sys」
-Wiresharkでは、WinPcapを使用してパケット キャプチャを行っている。

**tshark [#xc70a425]
tsharkというCUI版も存在する様です。

----
Tags: [[:通信技術]], [[:障害対応]], [[:性能]], [[:デバッグ]], [[:Windows]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS