2013-02-18 7 views
4

Вот мой tcpdump фильтр (ip[8] это поле IP ТТЛ и 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 localhost пакет? Какова цель такого пакета? И, что самое главное, почему он не был отвергнут указанным фильтром?

+0

myIpAddress содержит нечто иное, чем 127.0.0.1, правильно? –

+0

Да, это не localhost. –

+0

Странная часть также заключается в том, что этот пакет имеет разные адреса src/dst mac, но в ip-слое мы имеем один и тот же IP-адрес. Если вы откроете файл pcap с помощью wirehark, вы получите тот же результат? –

ответ

0

Что такое «$ myIpAddress»? Был ли он буквально адресом IPv4? Если бы это было на самом деле ничего похожего на полное доменное имя или имя хоста, то страница человек объясняет, что происходит:

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-адрес машины, на которой я запускал свой сценарий. Что касается остальных, это было год назад. Я не помню :) –