LINUX.ORG.RU
решено ФорумAdmin

[ipt_netflow] или [flow-tools] врут


1

1

Добрый день. Собрал, запустил модуль ipt_netflow на Debian 6, коллектором выбрал другой хост, допустим 10.0.0.2:9996. Соответственно, прописал это в /etc/modprobe.d/netflow.conf:

options ipt_NETFLOW destination=10.0.0.2:9996
добавил три правила в iptables:
iptables -A FORWARD -j NETFLOW
iptables -A INPUT -j NETFLOW
iptables -A OUTPUT -j NETFLOW
Правила добавились, модуль работает. На коллекторе папка с логами создана, логи создаются, но там не все данные. Коллектором выбран flow-capture. Запускается так:
flow-capture -w /var/log/flow -n 275 0/10.0.0.1/9996
10.0.0.1 - собственно сенсор с ipt_netflow. За два-три дня пользования интернетом, работой самбы на сервере, выхлоп
flow-cat /var/log/flow/ |flow-stat -f 15
Говорит мне, total MB - чуть больше 100, хотя за это время кто-то себе фильмов записал, на сервере торренты круглосуточно качаются-раздаются. После этого, стер все разрешающие правила iptables на обоих машинах, опять добавил три правила, политику поставил на ACCEPT, удалил все логи flow-captur'a, и запустил заново. Копирую файл размером 1,5 ГБ с сервера на другой комп. После копирования, опять проверяю вывод
flow-cat /var/log/flow/ |flow-stat -f 15
Так он мне теперь говорит, что всего «ходило» 0.046 МБ.

Как так? Может, что-то надо добавить в параметры ipt-netflow, либо, сам коллектор flow-capture не так обрабатывает flow-поток?

1. данные могут не доходить до коллектора. В этом случае коллектор пишет в лог о нарушении последовательности. ipt_NETFLOW тоже пишет в лог, если не получилось послать.

2. А правила точно на первом месте ? Лучше бы не -A, а -I...

AS ★★★★★
()

размер данных netflow зависит от количества сессий, а не от объема переданной информации.

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

да, тоже думал об этом. В тот момент интернета не было рядом, проверить что да как. А вообще, действие NETFLOW сначала отправляет коллектору данные о пакете, или же отправка идет только после прохождения пакетом всех правил? Как проверить?

Попробую-ка запустить flow-capture на localhost'e, может действительно, пакеты не доходят? Хотя на деле, расстояние между компами - 5 метров до концентратора, и еще метра 3 до второго хоста, по sftp скорость 11,7 мб/с.

С удовольствием выслушаю еще ваши пожелания, замечания.

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

А вообще, действие NETFLOW сначала отправляет коллектору данные о пакете, или
же отправка идет только после прохождения пакетом всех правил? Как проверить?

В смысле ? Правило сработало - ipt_NETFLOW отработал. При чём тут какие-то другие правила ? Вот если до netflow есть правила с accept, до правила с netflow пакет не доберётся. А на коллектор данные уходят, когда ipt_NETFLOW сессию закрывает.

AS ★★★★★
()
Ответ на: комментарий от pr0mille

сори, прочитал по диагонали, это не к проблеме тс

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

Даа ну? Точно, так и есть: -A добавляет в конец же. Попробую щас добавить так [code]iptables -I 1 FORWARD -j NETFLOW[/code] обязательно отпишусь

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

Так, после добавления в НАЧАЛО цепочки трех правил, цифры стали намного лучше:

Это на сенсоре:

# iptables -nvL |grep FLOW
2410K  546M NETFLOW    all  --  *      *       0.0.0.0/0            0.0.0.0/0           NETFLOW 
45893 5977K NETFLOW    all  --  *      *       0.0.0.0/0            0.0.0.0/0           NETFLOW 
1480K 3842M NETFLOW    all  --  *      *       0.0.0.0/0            0.0.0.0/0           NETFLOW 
Калькулятор говорит, что здесь всего 4393.83 МБ

А это на коллекторе:

# flow-cat /var/log/flow/ |flow-stat -f15
#  --- ---- ---- Report Information --- --- ---
#
# Fields:    Total
# Symbols:   Disabled
# Sorting:   None
# Name:      short summary
#
# Args:      flow-stat -f15 
#
#
# Octets            Packets             MBytes
#
4382788488          3893598             4382.788

Расхождение уже не такое запредельное. Наверно пока туда-сюда ходил, уплыло. Теперь хочу экспортировать на localhost, чтобы исключить потери UDP-пакетов, даже если такие и будут. Для этого выполняю:

echo "options ipt_NETFLOW destination=10.0.0.2:9996,127.0.0.1:9996" > /etc/modprobe.d/netflow.conf
По какой-то причине, flow-capture, хоть и запущен, отчетов не создает, ничего не пишет, папка с отчетами так вообще пустая. Проверю настройки:
1# ps ax |grep flow
17710 ?        Ss     0:00 /usr/bin/flow-capture -w /var/log/flow -n 275 0/127.0.0.1/9996

# netstat -anpl |grep 9996            
udp        0      0 0.0.0.0:9996            0.0.0.0:*                           17710/flow-capture
Тут все правильно, запущен и слушает. В чем дело? А я пока помучаю сервак.

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

Если Вы вдруг решите удалить все логи командой типа

rm -rf /path/to/flow/logs
, не забудьте потом перезапустить flow-capture, т.к. он ругается на отсутствующий файл tmp-* в той папке, которой писал, и так и зависает. У меня flow-capture запущен как сервис, поэтому я перезапускаю командой:
# /etc/init.d/flow-capture restart

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

Тут все правильно, запущен и слушает. В чем дело?

Не знаю, я nfdump использую в качестве коллектора, а не flow-capture.

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

А nfdump умеет фильтровать из логов трафика? Допустим, собрал я все потоки в папку с логами, а потом оттуда вытаскиваю с настраиваемыми фильтрами: список подсетей, либо один IP-адрес, комбинации IP-порт\source/destination? Когда пронего бегло читал, «по диагонали», показалось, что он такое не умеет. Допустим, есть список из больше чем 100 подсетей, записанных в CIDR, сможет ли nfdump «вытащить» из логов только те данные, которые принадлежат адресу назначения заданного списка подсетей? И ещё: сколько ресурсов потребляет?

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

А nfdump умеет фильтровать из логов трафика?

Умеет.

И ещё: сколько ресурсов потребляет?

Не задумывался. В общем, на Celeron 2.80GHz проблем не создаёт. Но, кстати, я не призываю отказаться от flow-capture, может оно чем-то лучше.

А потери, так или иначе, будут думаю, даже на localhost иногда ошибки последовательности фиксируются. Можно только постараться минимизировать их объём.

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

Ну всё, ушел тестить. Если с flow-tools'ами не разберусь, перейду на nfdump. Там flow-filter выдает ошибку синтаксиса в acl-файле, видать что-то не так делаю.

У nfdump есть nfsen - судя по описанию и скринам, хорошая и нужная вещь. Ну всё, ушел тестить. Отпишусь, как будет профит.

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

У nfdump есть nfsen - судя по описанию и скринам, хорошая и нужная вещь.

Собственно, это тоже сыграло в плюс. Планов nfsen использовать у меня нет, но наличие возможности приятно.

AS ★★★★★
()
5 августа 2012 г.

Значит, как и говорил AS, правило НУЖНО ставить на первое место. В init-скрипте уже добавляю правила с ключем -I : iptables -I FORWARD -j NETFLOW

А потом все остальные правила с ключем -A, чтобы все добавлялось в конец. Когда над пакетом совершается действие NETFLOW, он идет дальше по цепочке. А так. классная штука, на сервере при 100% загруженности канала (Samba & Apache) общая загрузка процессора 30%, 20 из которых на Самбу, 7-8 - Апач. В отличие от fprobe, этот сенсор намного лучше. Всё, тему отмечаю решенной.

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