2013-02-18 41 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