ndsad перестает сыпать статистику

Технические вопросы по UTM 5.0
Cupitor
Сообщения: 63
Зарегистрирован: Пт фев 11, 2005 16:37

ndsad перестает сыпать статистику

Сообщение Cupitor »

Бьюсь уже месяц, после обновления UTM с 5.1.10-17 на 5.2.1-004 ndsad 1.32.1 периодически происходит трабла с коллектором. Ndsad перестает посылать пакеты, логирование прекращается (т.е. если посмотреть tcpdump порт 9996 то на нем глухо) хотя сам ndsad в процессах висит, лог не ведет. Перезагрузка ndsad востанавливает работоспасобность.

Конфиг вроде рабочий из версии в версию переходил.
/netup/utm5/ndsad.cfg
ip 127.0.0.1
port 9996
force eth0
force eth1
force eth2
force eth3
ignore all
promisc eth0
hash lo 64
hash all 32
log /netup/utm5/log/ndsad.log

Лог последних событий из жизни ndsada:
ndsad[6918]: `ppp2': new device
ndsad[9479]: `ppp2' thread started successfully.
ndsad[9479]: `ppp2' thread is preparing for PCAP loop call
ndsad[9479]: pcap_datalink(ppp2) = 113
ndsad[9479]: Set ppp offset = 16
ndsad[9448]: `ppp1' thread PCAP call fails due to error:
recvfrom: Network is down
ndsad[9448]: `ppp1' thread is preparing for reincarnation
ndsad[6918]: Trying to delete device ppp1 from list
ndsad[6918]: !ftmp || ftmp->ifl_pid No device found or worker is alive
ndsad[6918]: Delete result: 0
ndsad[9448]: `ppp1' thread is entering dummy mode due to error:
interface is not configured or down
ndsad[9448]: `ppp1' thread has left dummy mode
ndsad[9448]: `ppp1' thread is going down due to error:
iface is lost
ndsad[9448]: `ppp1' thread is terminating
ndsad[9479]: `ppp2' thread PCAP call fails due to error:
recvfrom: Network is down
ndsad[9479]: `ppp2' thread is preparing for reincarnation
ndsad[6918]: Trying to delete device ppp2 from list
ndsad[6918]: !ftmp || ftmp->ifl_pid No device found or worker is alive
ndsad[6918]: Delete result: 0
ndsad[9479]: `ppp2' thread is entering dummy mode due to error:
interface is not configured or down
ndsad[9479]: `ppp2' thread has left dummy mode
ndsad[9479]: `ppp2' thread is going down due to error:
iface is lost
ndsad[9479]: `ppp2' thread is terminating
ndsad[9193]: `ppp0' thread PCAP call fails due to error:
recvfrom: Network is down
ndsad[9193]: `ppp0' thread is preparing for reincarnation
ndsad[6918]: Trying to delete device ppp0 from list
ndsad[6918]: Delete result: 0
ndsad[9193]: `ppp0' thread is entering dummy mode due to error:
interface is not configured or down
ndsad[9193]: `ppp0' thread has left dummy mode
ndsad[9193]: `ppp0' thread is going down due to error:
iface is lost
ndsad[9193]: Unable to unload `ppp0' thread!!!

ndsad[9193]: `ppp0' thread is terminating
ndsad[6918]: `ppp0': new device
ndsad[9895]: `ppp0' thread started successfully.
ndsad[9895]: `ppp0' thread is preparing for PCAP loop call
ndsad[9895]: pcap_datalink(ppp0) = 113
ndsad[9895]: Set ppp offset = 16
ndsad[9895]: `ppp0' thread PCAP call fails due to error:
recvfrom: Network is down
ndsad[9895]: `ppp0' thread is preparing for reincarnation
ndsad[6918]: Trying to delete device ppp0 from list
ndsad[6918]: !ftmp || ftmp->ifl_pid No device found or worker is alive
ndsad[6918]: Delete result: 0
ndsad[9895]: `ppp0' thread is entering dummy mode due to error:
interface is not configured or down
ndsad[9895]: `ppp0' thread has left dummy mode
ndsad[9895]: `ppp0' thread is going down due to error:
iface is lost
ndsad[9895]: `ppp0' thread is terminating
/tmp/log/ndsad.log lines 8959-9017/9017 (END)

В других логах тоже ничего вроде нет подозрительного на время остановки.
Подскажите где копать?

И втрое кто силен в скриптах: как написать скрипт чтобы проверял идет ли трафик с порта (ndsad) если нет то перезапускал коллектор.
Спасибо.

hammer
Сообщения: 286
Зарегистрирован: Сб янв 20, 2007 22:58
Контактная информация:

Сообщение hammer »

Попробуй собирать статистику только с лупбэка. У меня такой конфиг и ещё... ndsad отваливался в 001 версии... не знал как бороться тоже (даже с таким конфигом). С нуля поставил 004 и вроде трабл разрешился сам сабой. Ну и правило добавь в ipfw

add allow ip from any to any via lo0

### Project: ndsad; Project version: 0.0.3-025;
### Branch: ;
### File: ndsad.conf; File version: 0.0.3-024
# Sample configuration file for Network DataStream Accounting Daemon

# Data stream collector ip
# Default:
ip 127.0.0.1
# Example:
#ip 10.0.0.1

# Data stream collector port
# Default:
port 9996

# Forced faces - these faces
# will be processed even if dummy family is specified
# in configuration file.
# Default:
#none
# Example:
force lo
ignore all
dummy all

# Dummy iface - these faces
# will be traced but data stream won't be generated
# Multiply faces may be specified
# Default:
# none
# Example:
#ignore eth0

# Promisc device - specify string if You want
# device to be put in promisc mode.
# Note.
# Device may be in promisc mode even if promisc string is not specified.
# For example if tcpdump is running on it.
# Default:
#none
# Example:
#promisc ex0

# Hash size for the family. # Value must be a power of 2
# Default is 128 buckets for all families.
hash lo 64

# Default hash size may be changed when family is specified as `all'
# Default:
#hash all 128
# Ex
hash all 32

# Heap size in bytes.
# Default:
#heap 16384
# Example:
heap 65536

# Periodical statistic dump delay.
# If no dump is expected specify 0
# Default:
#dump 0
# Example:
#dump 5

# Dummy iface family - faces from this family
# will be traced but data stream won't be generated
# Default:
# none
# Example:
#dummy eth

# Specify log file. Otherwise logging will be done to stderr.
# Default:
#log (null)
# Example:
log /tmp/ndsad.log

# Jump to another configuration file
# Current file is closed after this line! Beware of loops!
# Default:
# none
# Example:
#config /usr/local/etc/nfcd.local.conf

# This directive for FreeBSD only !
# Listen on specified port for traffic.
# add following rules for ipfw (example rule) to divert traffic to port:
# ipfw add 10 tee 21000 all from any to any
#
# if you want to use 'ipfw add 10 divert 21000 ip from any to any' you must use 'bsd_div_copy yes' directive (see following)
#
# example:
# bsd_div_port 21000

# This directive for FreeBSD only !
# If you use 'divert' in ipfw uncomment this directive! Otherwise packets w'be killed in ndsad ... ;-(
# example:
#bsd_div_copy yes

# This directive for Linux iptables only !
# To obtain traffic from ULOG in iptables uncomment this directive.
# Example:
# ulog_group 13
# also you need following rule in iptables( example)
# iptables -A OUTPUT -s 10.0.0.1 -d 10.0.0.2 -j ULOG --ulog-nlgroup 13
#
# hint:
# If you see error "No buffer space available" in ndsad logs try to execute following commands:
# sysctl -w net/core/rmem_max=1048576
# sysctl -w net/core/rmem_default=1048576

Cupitor
Сообщения: 63
Зарегистрирован: Пт фев 11, 2005 16:37

Сообщение Cupitor »

у меня gentoo linux и iptables, но идею понял.
А причину этих траблов смогли выяснить?

Спасибо.

hammer
Сообщения: 286
Зарегистрирован: Сб янв 20, 2007 22:58
Контактная информация:

Сообщение hammer »

Если мне не изменяет память, то где то читая изменения на версию то ли 001 то ли на 003, я наткнулся на запись про затычку какого-то то бага, при котором происходила не остановка ndsad а остановка NetFlow, по которому данные передаются ядру биллинга... врезультате вроде все работает, но инфа не о трафе не сыпется, так что даже не в ndsad дело походу,хотя его перзапуск помогает - это факт.. но... ненадолго :D

Cupitor
Сообщения: 63
Зарегистрирован: Пт фев 11, 2005 16:37

Сообщение Cupitor »

И как его лечили этот баг? и в чем его причина?

hammer
Сообщения: 286
Зарегистрирован: Сб янв 20, 2007 22:58
Контактная информация:

Сообщение hammer »

Вообще то это было написано в списке исправлений :D

Cupitor
Сообщения: 63
Зарегистрирован: Пт фев 11, 2005 16:37

Сообщение Cupitor »

Это было в исправлении к ndsad или к UTM5? Важно, поскольку у меня UTM не совсем нормальная 5.2.1-004.

hammer
Сообщения: 286
Зарегистрирован: Сб янв 20, 2007 22:58
Контактная информация:

Сообщение hammer »

Это было в списке фиксов багов к UTM. У меня тоже 5.2.1-004 и все нормально! Если грамотно и внимательно пошагово все настроить, то заводится и работает все без проблемм.

Cupitor
Сообщения: 63
Зарегистрирован: Пт фев 11, 2005 16:37

Сообщение Cupitor »

Обновили систему сейчас 5.2.1-004. Настраивали в Нетап, я бы грамотнее не сделал. Ndsad как глючил так и глючит. Перепробывал все версии которые доступны.
Временное решение вот такой скрипт для проверки есть ли пакеты на порту 9996 запускаю cronом, прошу не пинать, а если можно это сделать красивее подсказать:
алгоритм
1 (удаляем файл с дампом)
2 (запускаем tcpdump)
3 (ждем пока он поработает, если убрать то он не успевает файл набить)
4 (убиваем процесс tcpdump т.к. если трафика нет то dump висит, возможно это и не надо потому что при перезапуске ndsadа он получит пакеты и сам завершиться )
5 (проверяем пустой или нет файл с дампом, если пустой перезапускаем ndsad)

скрипт
#!/bin/bash
rm tcpdump_chek.log
tcpdump -i lo port 9996 -c 5 >tcpdump_chek.log &
sleep 10 kill -9 $(pidof -x tcpdump) daten=`date`
file=tcpdump_chek.log
if [ -s "$file" ]
then
echo $daten - OK >>/var/log/ndsad_restarting.log
else
echo $daten - RESTART >>/var/log/ndsad_restarting.log
/etc/init.d/ndsad restart >>/var/log/ndsad_restarting.log
fi

Аватара пользователя
XoRe
Сообщения: 458
Зарегистрирован: Ср янв 10, 2007 16:04

Сообщение XoRe »

Есть ещё вариант поставить другую считалку трафика, например ipcad.

Adam
Сообщения: 72
Зарегистрирован: Вт фев 01, 2005 01:21

Сообщение Adam »

Такая же проблема. Началась буквально 2 недели назад, до этого все ОК было. Борюсь с этим пока тоже скриптом.

UTM 5 (5.2.1-003) on Fedora Core 5

Cupitor
Сообщения: 63
Зарегистрирован: Пт фев 11, 2005 16:37

Сообщение Cupitor »

quote="Adam"]Такая же проблема. Началась буквально 2 недели назад, до этого все ОК было. Борюсь с этим пока тоже скриптом.

UTM 5 (5.2.1-003) on Fedora Core 5[/quote]

1) Сколько памяти в системе (RAM)?
2) Поделитесь скриптом?

n0mad
Сообщения: 50
Зарегистрирован: Пт мар 16, 2007 12:11

Сообщение n0mad »

Крайнее обновление ndsad было в июне 2005 года и с тех пор никто к нему не прикасался не смотря на то что в нем висят баги и другие глюки, возможно ваша проблема это то что описано в этом баг-репорте:

http://sourceforge.net/tracker/index.ph ... tid=704519

А возможно что и нет.

Еще ndsad в упор не понимает vlan-ов.... патч состоит из одной строчки, но на оффициальном ресурсе им уже никто не занимается.

Раз продукт протух - рекомендую поискать какой-либо другой экспортер статистики по netflow. У меня вот тоже сейчас потребность статистику собирать не с циски а с PC роутера, начал ее прорабатывать с форума... потом пойду искать альтернативные продукты и пробовать.

К сожалению у Нетап даже ndsad и тот глючит :(

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

FreeBSD 6+/ng_netflow, ng_ipfw или ng_ether
Дают возможность на коллектор завернуть по совпадению с правилом или вообще весь трафик интерфейса, глюков меньше, настроек тоже. Хотя насчет настроек - это спорно

n0mad
Сообщения: 50
Зарегистрирован: Пт мар 16, 2007 12:11

Сообщение n0mad »

Ну в Linux есть flow_tools и fprobe/fprobe-ng/fprobe-ulog но пока я их еще не тестил и не прикидывал что лучше.

Если рассуждать логически то в циске самое правильное - трафик считается только в одном направлении - поэтому можно снимать общий поток со всех интерфейсов и не будет двойного аккаунтинга, хотя тут возникает другая проблема - в случае с NAT на одном и интерфейсов уже адрес подменен..... поэтому применяется ивестное извращение с виртуальным интерфейсом через который пропускается трафиу прежде чем попадет в исходящий интерфейс.

Соответственно ситуация такая что возможно лучшим решением будет fprobe-ulog, ведь оно считает на виртуальном интерфейсе в который заворачивают трафик iptables (если я конечно ничего не путаю).

В общем решение достаточно нетривиальное... у меня PC-роутер с которого планирую собирать netflow является еще и NAT-ом и на нем есть пиринговые линки, т.е. интерфейсов уже сейчас 3 и планируется еще пару интерфейсов завести.

Ответить