LINUX.ORG.RU
ФорумAdmin

libpcap. Kernel filter failed: Cannot allocate memory


0

0

При создании зело длиннючего фильтра все libpcap-based программы (ipcad, tcpdump) выдают следующее:
Warning: Kernel filter failed: Cannot allocate memory
и фильтруют траффик "несколько странно".

Вопрос: можно ли что-то подкрутить в настройках ядра, или надо просто более умно подходить к написанию фильтров?

Пример генерации зело длиннючего фильтра:
# tcpdump -nqti eth1 -c 10 ip $(for M in `seq 0 1 2` ; do for N in `seq 0 1 255`; do echo " and not net 192.$M.$N.0/24" ; done ; done )

> При создании зело длиннючего фильтра все libpcap-based программы (ipcad, tcpdump) выдают следующее:
> Warning: Kernel filter failed: Cannot allocate memory

> и фильтруют траффик "несколько странно".


ЕМНИП если фильтры не могут обрабатываться в ядре, libpcap должна фильтровать самостоятельно в юзерспейсе. Если библиотека делает это неправильно - надо писать багрепорт.

> Вопрос: можно ли что-то подкрутить в настройках ядра, или надо просто более умно подходить к написанию фильтров?


Более умно подходить к написанию фильтров =).

> Пример генерации зело длиннючего фильтра:

> # tcpdump -nqti eth1 -c 10 ip $(for M in `seq 0 1 2` ; do for N in `seq 0 1 255`; do echo " and not net 192.$M.$N.0/24" ; done ; done )


Можно сократить до

tcpdump -nqti eth1 -c 10 ip $(for M in `seq 0 1 2` ; do echo " and not net 192.$M.0.0/16" ; done )

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

> ЕМНИП если фильтры не могут обрабатываться в ядре, libpcap должна фильтровать самостоятельно в юзерспейсе. Если библиотека делает это неправильно - надо писать багрепорт.

OK, посмотрю внимательнее, на чём именно спотыкается.


> Более умно подходить к написанию фильтров =).


В моём конкретном случае придётся денёк посидеть над bash/perl реализацией динамической аггрегации сетей. :)

В настройки ядра смысла смотреть нет совсем никакого?


> Можно сократить до


Спасибо! :)
Это был просто пример того, как быстро получить сабжевый ворнинг. :)

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