1

Wireshark を使用していくつかのサイトからデータを収集し、tcpdump を使用してテキスト ファイルとして取得しました。私が取り組んでいるプロジェクトでは、特定の Web サイトへのアクセスに関係する DNS 解決の数と、DNS 応答の性質を数えたいと考えています。問題は、wireshark からの出力や、それを解釈して探しているものを見つける方法がよくわからないことです。たとえば、次の行があります。

21:08:05.454852 IP 10.0.0.2.57512 > ord08s09-in-f21.1e100.net.https: フラグ [.]、seq 1:1419、ack 55、win 65535、オプション [nop、nop、TS val 1348891674 ecr 2473250009]、長さ1418

これのさまざまな部分は何を意味し、探しているデータはどのように見えるでしょうか? 知らないうちにWiresharkを間違って使用しているのではないかと心配しています。

4

1 に答える 1

4

Wireshark を使用していくつかのサイトからデータを収集し、tcpdump を使用してテキスト ファイルとして取得しました。

両方のツールを使用するほとんどの人は、それらを反対の目的で使用します。:-) つまり、tcpdump を使用してトラフィックをファイルにキャプチャし、Wireshark でファイルを読み取ります。トラフィックをキャプチャするためにWireshark のみを使用している場合、それはおそらくやり過ぎです。dumpcap または tcpdump でも同じことができます。

表示している出力はテキスト出力であるため、「 tcpdump を使用してテキストファイルとして取得した」場合、Wiresharkからではなくtcpdumpからの出力です。Wireshark からのテキスト出力は異なって見えます。「wireshark を使用していくつかのサイトからデータを収集し、tcpdump を使用してテキスト ファイルとして取得した」場合、Wireshark からの出力はpcap ファイルまたはバイナリ ファイルであるpcap-ng ファイルのいずれかであり、完全に未解釈の生データ。あなたの例のデータの解釈は、Wireshark ではなく tcpdump によって行われています。

出力が言っていることは次のとおりです。

"21:08:05.454852": パケットは現地時間の 21:08:05 秒未満で到着しました。

「IP」: パケットは IPv4 パケットです。

"10.0.0.2.57512 > ord08s09-in-f21.1e100.net.https": パケットは IP アドレス 10.0.0.2、ポート 57512 から、ホスト名が "ord08s09-in-f21" である IP アドレスへ.1e100.net」、「https」のポートはポート 443 です。

行の残りの部分の詳細については、tcpdump の man ページと TCP の説明を参照してください。

ここで重要な点は、これがDNS トラフィックではないということです! おそらく「HTTP-over-SSL」または「https」トラフィックです。

tcpdump では、DNS トラフィックは次のようになります。

11:06:25.247272 IP 10.0.1.3.50953 > 10.0.1.1.domain: 7088+ A? www.kernel.org. (32)
11:06:25.282723 IP 10.0.1.1.domain > 10.0.1.3.50953: 7088 3/0/0 CNAME pub.us.kernel.org., A 149.20.4.69, A 198.145.20.140 (85)

また

11:06:30.622744 IP 10.0.1.3.62767 > 10.0.1.1.domain: 2439+ A? e3191.c.akamaiedge.net.0.1.cn.akamaiedge.net. (62)
11:06:30.639279 IP 10.0.1.1.domain > 10.0.1.3.62767: 2439 1/0/0 A 184.85.109.15 (78)

「あ?」A レコードに対してクエリが実行されていることを意味します。「CNAME」は、CNAME レコードが返されることを意味します (つまり、「www.kernel.org」は「pub.us.kernel.org」のエイリアスであり、「A」は A レコードが返されることを意味し、 IPv4 アドレス。

Wireshark または TShark では、次のようになります。

12.316361     10.0.1.3 -> 10.0.1.1     DNS Standard query 0xc2fa  A 1.courier-sandbox-push-apple.com.akadns.net
12.332894     10.0.1.1 -> 10.0.1.3     DNS Standard query response 0xc2fa  A 17.149.34.59 A 17.149.34.61 A 17.149.34.62 A 17.149.34.63 A 17.149.34.57

また

15.163941     10.0.1.3 -> 10.0.1.1     DNS Standard query 0x168c  A www.gnu.org
15.176266     10.0.1.1 -> 10.0.1.3     DNS Standard query response 0x168c  CNAME wildebeest.gnu.org A 208.118.235.148

DNS パケットのみをキャプチャする場合は、DNS 以外のトラフィックが破棄されるように、「ポート 53」や「ポート ドメイン」などのキャプチャ フィルタを使用する必要があります。このフィルタは、Wireshark、TShark、または tcpdump で機能します (これらはパケット キャプチャに同じ libpcap コードを使用するため)。

于 2013-09-27T18:13:04.183 に答える