troushoo

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Wireshark を用いたSMB のトラブルシューティングに使える5つのテクニック

概要

Wireshark を用いたSMB のトラブルシューティングに使える5つのテクニックを紹介します。

内容

SMB とは、Windows のファイル共有等に使われるプロトコルです。
例えば、”\\192.168.159.128\share” といった具合にアクセスする際に使用されるプロトコルです。
SMB を使用したファイル共有

SMB を使っている際に、「共有ファイルにアクセスできない」とったトラブルに遭遇することがあります。
そういった時に役に立つ、Wireshark を用いたSMB のトラブルシューティングのテクニックを5つ紹介します。

SMB のみを表示させるフィルター
Filter に”SMB or SMB2” と入力することで、SMB のパケットのみ表示させることができます。
SMB のみを表示するフィルター

[補足: SMB のバージョンについて]
SMB は複数のバージョンが存在します。

Windows 8以降のOS間では、SMB 3.0 以降のバージョンが使われますが、Wireshark ではSMB2 と表示されます。
SMB 3.0 以降が使われていても、SMB2 と表示される

SMB のバージョンは”Negotiate Protocol Response” のDialect でわかります。
SMB のバージョンをチェックする方法


NT Status を列に表示
SMB のレスポンスのヘッダにはNT Status が含まれます。
NT Status とは、”STATUS_ACCESS_DENIED” といったもので、エラー情報を含みます。
よって、これをWireshark の列に表示すると、トラブルシューティングがしやすくなります。

1. 任意のResponse のパケットを選択します。
任意のResponse のパケットを選択する

2. SMB2 → SMB2 Header → NT Status を選択します。
NT Status を選択

3. 右クリックし、”Apply As Column” をクリックします。
Apply As Column

4. 列に、”NT Status” が表示されます。
列に

Command Sequence Number を列に表示
上記もしました通り、SMB のレスポンスのヘッダにはNT Status が含まれます。
しかし、SMB のレスポンスは、SMB のリクエストの直後に返ってくるとは限りません。

例えば、下記のスクリーンショットのように、あるリクエスト(= Command Sequence Number 17)の次に、他のリクエスト(= Command Sequence Number 18) とそのレスポンスが返り、その後にCommand Sequence Number 17 のレスポンスが返ってくるといった事があります。


よって、この”Command Sequence Number” を列に表示すると、リクエストとレスポンスの対応付けがわかりやすくなり便利です。

1. SMB の列を選択し、SMB2 → SMB2 Header → Command Sequence Number をクリックします。
Command Sequence Number をクリック

2. 右クリックし、”Apply As Column” をクリックします。
Apply as Column

3. 列にCommand Sequence Number が表示されます。
Command Sequence Number が列に表示された

NT Status のエラーのみを表示

NT Status の0 はSTATUS_SUCCESS を意味し、すなわちエラーがなかったという意味になります。
よって、NT Status が0 以外のもののみを表示させると、エラーの一覧が表示でき、トラブルシューティングに役に立ちます。

NT Status が0 以外のもののみを表示させるには、Filter に”smb2.nt_status>0” と入力します。
NT Status のエラーのみを表示

Service Response Time
”Service Response Time” を利用すると、どの様なSMB のコマンドが発行されたのかといった事や、SMB のコマンドのレスポンスのタイムを簡単に調べることができます。

1. “Statics” → “Service Response Time” → “SMB2” をクリックします。
Service Response Time

2. “Create Stat” をクリックします。
Create Stat

3. どの様なSMB コマンドが発行されたのかや、SRT(= Service Response Time) がわかります。
SRT がわかる


情報元
Sharkfest 2013 - Microsoft SMB Troubleshooting (Rolf Leutert)
Windows Server 2012 R2: Which version of the SMB protocol (SMB 1.0, SMB 2.0, SMB 2.1, SMB 3.0 or SMB 3.02) are you using?

関連記事
Wiresharkのディスプレイフィルタ - 基本的な使用方法から、よく使うフィルタまで -


  1. 2014/01/09(木) 00:15:03|
  2. ネットワーク
  3. | トラックバック:0
  4. | コメント:0
<<Productivity Power Tools For Visual Studio 2013 の紹介 | ホーム | DebugDiag を用いて、任意のメソッド実行時にダンプを採取する方法>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://troushoo.blog.fc2.com/tb.php/150-7b88ae6a
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (92)
ネットワーク (76)
Visual Studio (56)
SOS・Psscor2/Psscor4 (25)
WinDbg (25)
Linux (24)
Azure (17)
Tips (20)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。