2012-06-05 5 views
2

Я сбрасываю исходящий трафик. Мне нужны только пакеты TCP и UDP, предназначенные за пределами моей локальной сети, и ничего больше. Я просто использовал следующий фильтр с ТСРйитр:Как я могу сбросить только исходящие IP-пакеты в tcpdump?

ip and (tcp or udp) and (not icmp) and src host myIPAddr and not dst net myNet/myNetBits and not ip broadcast 

Но я захватил следующий пакет:

###[ Ethernet ]### 
    dst  = ff:ff:ff:ff:ff:ff 
    src  = 00:1e:4a:e0:9e:00 
    type  = 0x806 
###[ ARP ]### 
    hwtype = 0x1 
    ptype  = 0x800 
    hwlen  = 6 
    plen  = 4 
    op  = who-has 
    hwsrc  = 00:1e:4a:e0:9e:00 
    psrc  = X.X.X.X 
    hwdst  = 00:00:00:00:00:00 
    pdst  = Y.Y.Y.Y 
###[ Padding ]### 
     load  = '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 

Что здесь произошло? Я думал, что я демпинг только IP-пакеты.

ответ

0

Глядя на ваш дамп вы получили ARP пакет с типом IP-протокола (т.е. PTYPE = 0x800). Вы должны отфильтровать также ARP-пакеты and (not arp), и это должно очистить ваш свалку. Я думаю, что если вы посмотрите на код tcpdump, вы найдете причину, по которой он также поддерживает эти конкретные ARP-пакеты (но поскольку IP использует эти пакеты для разрешения сети, я думаю, что эти ARP-пакеты считаются частью IP по tcpdump).

С наилучшими пожеланиями,
Бо

+0

спасибо за ответ. Я просто попытался добавить это условие к своему фильтру, и я все равно получаю пакеты вроде следующего: '### [Ethernet] ### dst = ff: ff: ff: ff: ff src = 00: 1e: 4а: е0: 9e: 00 Тип = 0x806 ### [ARP] ### = 0x1 тип аппаратуры PTYPE = 0x800 hwlen = 6 PLEN = 4 оп = кто-имеет hwsrc = 00: 1e: 4а: е0: 9e: 00 КРОУ = XXXX hwdst = 00: 00: 00: 00: 00: 00 pdst = YYYY ### [Набивка] ### нагрузка = «\ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00'' –

+0

Я могу легко отфильтровать не-IP-пакеты после демпинга, но я не понимаю, почему он просто не будет работать с простым фильтром, подобным приведенному выше. –

+0

Ну ARP используется IP, как указано в: http://www.ietf.org/rfc/rfc894.txt. Вы можете попробовать также фильтр 'not ether proto arp', чтобы попытаться удалить arp-пакеты (я долго не смотрел код tcpdump, поэтому не могу вспомнить точный подход к фильтрации) –

0

Установить фильтр на хосте в качестве источника:

tcpdump src <YOUR_IP>