2013-02-18 30 views
4

这里是我的tcpdump过滤器(ip[8]是IP TTL字段和icmp[0]=11对应时间超过ICMP消息):在捕获文件中找到localhost icmp数据包:为什么?

(ip and ip[8]=2 and src host $myIPAddress) or (icmp and dst host $myIPAddress and icmp[0]=11) 

这里就是我在捕捉文件中找到:

>>> p.show() 
###[ Ethernet ]### 
    dst  = 00:15:f2:e3:90:e9 
    src  = 00:11:43:e5:48:10 
    type  = 0x800 
###[ IP ]### 
    version = 4L 
    ihl  = 5L 
    tos  = 0xc0 
    len  = 56 
    id  = 19126 
    flags  = 
    frag  = 0L 
    ttl  = 254 
    proto  = icmp 
    chksum = 0xa697 
    src  = 127.0.0.1 
    dst  = 127.0.0.1 
    \options \ 

为什么我捕获了一个ICMP本地主机数据包?无论如何,这种数据包的目的是什么?而且,最重要的是,为什么没有被上面的过滤器拒绝呢?

+0

myIpAddress包含与127.0.0.1不同的东西,对吧? – 2013-02-20 12:15:38

+0

是的,它不是本地主机。 – 2013-02-20 13:06:05

+0

一个奇怪的部分也是这个数据包有不同的src/dst mac地址,但在ip层我们有相同的IP。如果你用wireshark打开pcap文件,你会得到相同的结果吗? – 2013-02-21 09:36:14

回答

0

什么是“$ myIpAddress”?是字面上的IPv4地址吗?如果它实际上是任何类似的FQDN或主机名,那么男人页解释发生了什么:

http://www.tcpdump.org/manpages/pcap-filter.7.html

host host 
(stuff removed) 
If host is a name with multiple IP addresses, each address will be checked for a match. 

我不知道这是否是发生了什么,可能是IP映射到MAC地址?

我喜欢盖伊关于使用-d的建议。

+0

这是我运行脚本的机器的IP地址。至于其余的则是一年前。我不记得:) – 2014-02-07 14:31:52