1

我使用wireshark从一些站点收集数据,然后使用tcpdump将其作为文本文件获取。对于我正在进行的项目,我想计算访问特定网站涉及多少 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, options [nop,nop,TS val 1348891674 ecr 2473250009],长度1418

这不同的部分是什么意思,我正在寻找的数据会是什么样子?我担心我可能在不知情的情况下错误地使用了 Wireshark。

4

1 回答 1

4

我使用wireshark从一些站点收集数据,然后使用tcpdump将其作为文本文件获取。

大多数同时使用这两种工具的人将它们用于相反的目的。:-) 即,他们使用 tcpdump 将流量捕获到文件中,然后使用 Wireshark 读取文件。如果您只使用 Wireshark 来捕获流量,那可能是矫枉过正——您可以使用 dumpcap 甚至 tcpdump 做同样的事情。

您显示的输出是文本输出,因此,如果您“使用 tcpdump 将其作为文本文件获取”,则它是来自tcpdump的输出,而不是来自Wireshark的输出;Wireshark 的文本输出看起来会有所不同。如果你“使用 Wireshark 从某些站点收集数据,然后使用 tcpdump 将其作为文本文件获取”,那么 Wireshark 的输出要么是pcap 文件,要么是pcap-ng 文件,它是一个二进制文件,完全未经解释的原始数据。您的示例中的数据解释是由 tcpdump 完成的,而不是 Wireshark。

输出的意思是:

“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 手册页和 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 数据包,则应使用“端口 53”或“端口域”等捕获过滤器,以便丢弃非 DNS 流量。该过滤器将与 Wireshark、TShark 或 tcpdump 一起使用(因为它们使用相同的 libpcap 代码进行数据包捕获)。

于 2013-09-27T18:13:04.183 回答