Ситуация следующая. Через один интерфейс сервера ходят несколько
подсетей в инет. НАТа нет. То есть трафик на интерфейсе выглядит так:10.129.1.129 --> 212.45.0.3
10.129.1.129 --> 195.14.50.1
82.233.4.123 --> 10.130.1.53
10.130.1.53 --> 221.224.129.140
10.130.1.53 --> 85.230.49.253Настроил ng_netflow на этом сервере. Пакеты шлет в больших количествах.
Но не вся информация в них содержится! Потерь нетфло пакетов нет,
проверяю по порядковому номеру. ng_netflow не всю статистику снимает
почемуто. Запускаю tcpdump на вышеуказанном интерфейсе и вижу все
свои пакеты. А по нетфло приходит только часть. Ничего не понимаю.
Вот мой скрипт, запускающий netflow на роутере:#!/bin/sh
kldload ng_netflow
kldload ng_ether
kldload ng_tee
kldload ng_one2manyngctl -f- <<-SEQ
mkpeer int0: tee lower left
connect int0: int0:lower upper right
mkpeer int0:lower one2many left2right many0
connect int0:lower.left2right int0:lower many1 right2left
name int0:lower.right2left o2m
mkpeer o2m: netflow one iface0
name o2m:one netflow
mkpeer netflow: ksocket export inet/dgram/udp
msg netflow:export connect inet/10.ххх.хх.хх:4444Заранее спасибо.
Кажется, немного разобрался. Походу инфа, которая не доходит до меня,
лежит в кеше. Возникает другой вопрос: как заставить ng_netflow сразу
сбрасывать все, не держа в кеше?
>Кажется, немного разобрался. Походу инфа, которая не доходит до меня,
>лежит в кеше. Возникает другой вопрос: как заставить ng_netflow сразу
>сбрасывать все, не держа в кеше?оно - всё, не в кеше, netflow экспортит только завершённые потоки или если они живут более 30 минут (по умолчанию), а если данные в каком соединении продолжают течь, то этот поток остаётся в таблице. Как только поток пакетов завершится, тот попадёт на коллектор в следующем-же пакете. Если ты не хочешь ждать пока этот поток завершится то установи active timeout меньше чем 1800.
http://freebsd.ru.ac.za/cgi-bin/man.cgi?topic=ng_netflow&sec...
я набираю:
flowctl netflow show
и вижу пакеты в _кэше_. Пускаю пинг и опять смотрю кэш.
Там пакетов ICMP от моего компа стало больше. Какие потоки могут быть у
ICMP?? Через некоторое время (довольно большое ~20-30 мин) все
сбрасывается нормально. Это мне никак не подходит. Может, из-за
большой нагрузки сервер складивает все в кэш?
Мне обязательно надо, чтобы тнформация _сразу_ доходила.
>я набираю:
> flowctl netflow show
>и вижу пакеты в _кэше_. Пускаю пинг и опять смотрю кэш.
>Там пакетов ICMP от моего компа стало больше. Какие потоки могут быть
>у
>ICMP??
В нетфлоу у icmp есть 'потоки'. И не только там.
> name o2m:one netflowmsg netflow: settimeouts { inactive=30 active=600 }
> mkpeer netflow: ksocket export inet/dgram/udp
>> name o2m:one netflow
>
> msg netflow: settimeouts { inactive=30 active=600 }
>
>> mkpeer netflow: ksocket export inet/dgram/udp
а если сделать msg netflow: settimeouts { inactive=10 active=10 }
это сильно нагрузить систему? Мне чем быстрее получить инфу тем лучше.
А если в netlow висит поток и в это время машину выключить, то поток просто потеряется или как?
Кстати, если кто хорошо знаком с netlow может мне пояснит такую вещь. Есть фильтрующий мост на FreeBSD 6.0 if_bridge. Куча правил ipfw как разрешающих так и запрещающих. На нём же же стоит ng_netflow+flow-capture висит на одном из интерфейсов и считает трафик в одну сторону. Так вот смотрю отчёт с помощью flow-stat и вижу всего из миллиона потоков примерно 90000 есть lost flows. Сервер абсолютно не загружен. Куда оно девается-то? И как это отражается на количестве трафика?