LINUX.ORG.RU

tcpdump. помогите составить фильтр.


0

0

Приветствую всех.

Вот столкнулся с непонятной для меня работой тспдампа. Задача ловить: "(пакеты арп с вланом) и (пакеты дхцп с вланом) и (пакеты дхцп просто без влана и без ничего)"

Думал что двух условий хватит "(апр с вланом) и (пакеты дхцп)". Вобщем не могу реализовать даже этого.

tcpdump -e -i eth1 "port bootps" - ловит дхцп, но не ловит если они с вланом tcpdump -e -i eth1 "vlan and port bootps" - ловит дхцп, но не ловит если они без влана.

tcpdump -e -i eth1 "(vlan and port bootps)or(port bootps)" - ловит дхцп если они с вланом. Но НЕ ЛОВИТ если они без влана, хотя после or стоит это условие. tcpdump -e -i eth1 "(port bootps)or(vlan and port bootps)" - ловит дхцп и ловит если дхцп с вланом... очень странно. Всего лишь [b]поменял условия местами.[/b]

Идём дальше. Надо подключить чтобы ещё ловило арп запросы с вланом: tcpdump -e -i eth1 "(port bootps)or(vlan and port bootps)or(vlan and arp)" - не работает! Вернее так: ловит дхцп запросы с вланом, ловит просто дхцп запросы. Но vlan and arp не ловит. При этом tcpdump -e -i eth1 "vlan and arp" ловит пакеты арп с вланом..

Бьём бубен дальше:

tcpdump -e -i eth1 "(vlan and arp)or(port bootps)or(vlan and port bootps)" - ловит [b]влан[/b]И[b]арп[/b], ловит [b]дхцп[/b]И[b]влан[/b]. НЕ ловит просто дхцп. tcpdump -e -i eth1 "(port bootps)or(vlan and arp)or(vlan and port bootps)" - ловит просто дхцп. Ловит [b]влан[/b]И[b]арп[/b]. НЕ ловит [b]дхцп[/b]И[b]влан[/b]

Прошу отозваться квалифицированных шаманов. Как подключить третье условие?

gentoo, tcpdump version 4.1-PRE-CVS_2009_11_06, libpcap version 0.9.7 обновил libpcap до version 1.0.1_pre20090812. Ничо не изменилось

Ответ на: комментарий от lena

Попробовал так. "vlan and arp" - ловит. "vlan and port bootps" - тоже ловит. А просто дхцп(т.е. "port bootps") - не ловит... :(

Все три типа пакетов точно есть. Как победить?

fornike
() автор топика
Ответ на: комментарий от fornike

> tcpdump -e -i eth1 "(vlan and port bootps)or(port bootps)" - ловит дхцп если они с вланом. Но НЕ ЛОВИТ если они без влана, хотя после or стоит это условие.

В этом случае условие, содержащее vlan, стояло первым и приводило к результату, описанному выше.

В ``tcpdump -e -i eth1 "(vlan and arp)or((port bootps)or(vlan and port bootps))"'' условие с vlan-ом тоже стоит первым. Что если по аналогии попробовать ``tcpdump -e -i eth1 "((port bootps)or(vlan and port bootps))or(vlan and arp)"''?

lena
()
Ответ на: комментарий от fornike

Чую придётся делать tcpdump -e -i eth1 | egrep лялял... но это же кривизна, этим должен заниматься pcap.. а он не хочет

fornike
() автор топика
Ответ на: комментарий от lena

> tcpdump -e -i eth1 ``(port bootps)or(vlan and(port bootps or arp))''

Сработало!!! Три раза проверил. Ловит "дхцп" "дхцп с вланом" и "арп с вланом".

Охренеть что за наркоманы разрабатывают pcap.. спасибо за ваш бубен мадам :)

fornike
() автор топика
Ответ на: комментарий от fornike

> спасибо за ваш бубен мадам

Я мадемуазель )

Могу отметить общий принцип - условия, содержащие vlan (и, возможно, arp) в выражениях "or" должны стоять последними.

> Охренеть что за наркоманы разрабатывают pcap

Наверное, они тоже пользуются женской логикой, поэтому я и нашла с ними общий язык )

lena
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.