Jump to content
Калькуляторы

FreeBSD + ipcad = panic

Привет всем.

Столкнулся с такой проблемой.

на сервере доступа поднят mpd5, который сливает статистику на биллинг - эта часть работает нормально, но есть проблема.

Для логирования того откуда и куда пошли пакеты от абонентов (снятие flow-статистики) использую flow-capture + ipcad.

При длительном использовании серв виснет и только ребутом спасаюсь. может работать неделю, а может и за 2 дня 3 раза зависнуть.

 

В vmcore есть описание, что из-за появления ng происходит такая проблема.

сервер держит от 140 до 160 сессий. Число постоянно растет. подскажите как решить проблему.

 

заранее благодарю за ответ.

 

ЗЫ. Может кто предложит другое ПО?

ЗЗЫ. фря 7.2.

Share this post


Link to post
Share on other sites

а зачем ipcad? mpd умеет прекрасно и сам генерить нетфлоу.

Edited by XeonVs

Share this post


Link to post
Share on other sites

У flow-capture утечки памяти на 64-разрядной платформе. Вероятно из-за них сервер и вырубается. Используйте другой коллектор, например http://www.mindrot.org/projects/flowd/ . Генерировать Netflow можно средствами ng_netflow.

Edited by photon

Share this post


Link to post
Share on other sites
а зачем ipcad? mpd умеет прекрасно и сам генерить нетфлоу.
Он же вроде не умеет сливать статистику на 2 ip (2 port'а), а 2 демона на 1 порт я не могу повесить.

set netflow peer 10.10.0.2 9997 # куда сливать
set netflow self 10.10.2.2 65500 #с какого ифейсаи порта от себя

set netflow peer 10.10.2.3 9996 # Эта запись возможна помимо 2х предыдущих?

 

 

 

У flow-capture утечки памяти на 64-разрядной платформе. Вероятно из-за них сервер и вырубается.
у меня Xeon:

CPU: Intel(R) Xeon(TM) CPU 3.00GHz (2992.71-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf41  Stepping = 1
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFL
USH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x641d<SSE3,DTES64,MON,DS_CPL,CNXT-ID,CX16,xTPR>
  AMD Features=0x20100000<NX,LM>
  Logical CPUs per core: 2

Фря в i386 версии.

 

Используйте другой коллектор, например http://www.mindrot.org/projects/flowd/
Это который:

Port:   flowd-0.9.1_1
Path:   /usr/ports/net-mgmt/flowd
Info:   The flowd is a small, fast and secure NetFlow collector
Maint:  janos.mohacsi@bsd.hu
B-deps: gettext-0.17_1 gmake-3.81_3 libiconv-1.13.1
R-deps:
WWW:    http://www.mindrot.org/flowd.html

На сколько единовременных сессий/ kpps его хватит?

 

Генерировать Netflow можно средствами ng_netflow.
Я так понимаю, что это отдельное ПО? надо ли пересобирать ядрос NETGRAPH_NETFLOW параметром? Если нет, то как настроить?

Чем еще можно снифить трафик?

 

ЗЫ. Может я в опциях ядра не все включил? Сейчас собрано так:

options         NETGRAPH        #
options         NETGRAPH_PPP
options         NETGRAPH_PPTPGRE

Edited by Andriuxa

Share this post


Link to post
Share on other sites

если хочется славить на два и более порта, два и более хоста надо пользовать flow-fanout( nfreplay из комплекта nfdump)

 

 

/usr/local/bin/flow-fanout 127.0.0.1/127.0.0.1/4444 127.0.0.1/127.0.0.1/4445 10.10.0.254/10.10.0.1/4444

 

т.е. трафик с /127.0.0.1/4444

реплицируется на 127.0.0.1/4445 и 10.10.0.1/4444

 

я вообще использую nfdump-1.6, его научили аггрегированные фловы писать в файл с компрессией, утечек не наблюдаю.

 

у ng_netflow кстати если поток данных большой(у меня гигабит на 170Кpps) надо править в исходниках размер хеш-таблицы.

 

под flow-tools были патчи для amd64 систем.

Edited by XeonVs

Share this post


Link to post
Share on other sites

А для использования flow-fanout нужен ng_netflow или нет?

И насколько грузит он конечную систему?

 

Заранее спасибо.

Edited by Andriuxa

Share this post


Link to post
Share on other sites
А для использования flow-fanout нужен ng_netflow или нет?

И насколько грузит он конечную систему?

 

Заранее спасибо.

нет не нужен, это просто репликатор нетфлоу потока.

 

175kpps дает 39.36% irq257: bge1

 

общая загрузка системы(CPU: Intel® Xeon® CPU 3060 @ 2.40GHz (2400.10-MHz K8-class CPU)):

CPU: 0.9% user, 0.0% nice, 0.0% system, 17.9% interrupt, 81.2% idle

 

 

трафик на bge1 отзеркалирован с ближайшего коммутатора.

Share this post


Link to post
Share on other sites
ЗЫ. Может я в опциях ядра не все включил? Сейчас собрано так:

Код

options NETGRAPH #

options NETGRAPH_PPP

options NETGRAPH_PPTPGRE

kldstat - узнаете много нового :)

Share this post


Link to post
Share on other sites
kldstat - узнаете много нового :)
Эт я знаю. :)

 

общая загрузка системы(CPU: Intel® Xeon® CPU 3060 @ 2.40GHz (2400.10-MHz K8-class CPU)):

CPU: 0.9% user, 0.0% nice, 0.0% system, 17.9% interrupt, 81.2% idle

Все это хорошо, но на биллинге стоит 1266 PIII. так что тут вопрос уже в другом.

У меня при 160 VPN-сессиях на машине с биллингом был полный ступор, что в УТМ начинали меняться расчетные периоды и с безлимитных тарифных планов начинали списываться деньги. Интересно насколько загрузится проц.

 

Кстати, мне тут один провайдер сказал, что они не работают по нетфлоу.

Вопрос такой, в ФЗ о телеграфной связи сказано, что логи доступа надо хранить 3 года, можно ли мне это как-то обойти? т.е. не хранить нетфлоу, а использовать что-то другое?

Может я должен хранить что-то другое?

Заранее благодарен.

 

 

Edited by Andriuxa

Share this post


Link to post
Share on other sites

Печально если так плохо с железом. :(

храни что хочешь и как хочешь, но чтобы по запросу было: "кто, куда, когда, сколько".

Share this post


Link to post
Share on other sites

решил сделать некоторый финт ушами. :)

настроить flow-fanout на сервере доступа, и отдавать статистику сначала на flow-fanout, а затем, чтобы flow-fanout сливал на flow-caprute, который на этом же сервере и на биллинг. Только проблема - не могу разобраться с конфигом.

Мне надо сливать на 127.0.0.1:9997 порт flow-fanout'a, а тот в свою очередь кидает на flow-capture - 127.0.0.1:9998 и на 10.10.0.2:9997.

Конфиг получается такой:

flow_fanout_enable="YES"
flow_fanout_ip="127.0.0.1"
flow_fanout_remoteip="10.10.0.2"
flow_fanout_port="9997"
flow_fanout_export="127.0.0.1/127.0.0.1/9998 127.0.0.1/10.10.0.2/9997"

 

Проверьте, если не трудно, где у меня проблема.

Заранее благодарен.

Edited by Andriuxa

Share this post


Link to post
Share on other sites
У flow-capture утечки памяти на 64-разрядной платформе. Вероятно из-за них сервер и вырубается.
Как здесь уже обсуждалось, есть два разных flowtools:

/usr/ports/net-mgmt/flow-tools-ng -- хостится на code.google.com

/usr/ports/net-mgmt/flow-tools

 

По отзывам, в "-ng" версии утечки нет.

Share this post


Link to post
Share on other sites
А для использования flow-fanout нужен ng_netflow или нет?
Желателен :)

ng_netflow - это счётчик (probe) на шлюзе, который передаёт по сети netflow-поток на указанный узел.

flow-fanout - это приёмник-распределитель (т.е. proxy collector) где угодно, например, на биллинге.

 

И насколько грузит он конечную систему?
ng_netflow работает целиком в ядре, поэтому нагрузка от него минимальная из возможных.

Share this post


Link to post
Share on other sites

спасибоо за ответ, только я про параметры для flow-fanout.

Share this post


Link to post
Share on other sites

Нашел косяк.

flow_fanout_export="... 127.0.0.1/10.10.0.2/9997"

следует заменить на:

flow_fanout_export="... 10.10.2.2/10.10.0.2/9997"

где 10.10.2.2 - ифейс сервера смотрящий на 10.10.0.2

Share this post


Link to post
Share on other sites

Не получилось завязать эту связку.

По Lo0 данные ходят нормально,а на биллинг ничего не отсылается. Вот текущий конфиг:

flow_fanout_enable="YES"
flow_fanout_ip="127.0.0.1"
flow_fanout_remoteip="127.0.0.1"
flow_fanout_port="9997"
flow_fanout_export="127.0.0.1/127.0.0.1/9998 10.10.2.2/10.10.0.2/9997"

 

в tcpdump видно только пакеты идущие по 127.0.01:9997 (от mpd5 к flow_fanout) остальных пакетов нет, хотя flow-capture что-то считает.

Это нормально?

Edited by Andriuxa

Share this post


Link to post
Share on other sites

Несколько общих советов:

1) пока отлаживаете, запускайте flow-fanout вручную, а не через /usr/local/etc/rc.d,

2) используйте ключ "-d",

3) попробуйте для начала отправлять только на один внешний адрес,

4) когда запускаете через rc.d, какую командную строку показывает "ps -axw | grep fanout | grep -vw grep"?

Возможно, /etc/rc.conf содержит неверные настройки.

Share this post


Link to post
Share on other sites

Текущие настройки я привел.

/usr/local/etc/rc.d/flow-fanout status показывает что демон запущен.

пока отлаживаете, запускайте flow-fanout вручную, а не через /usr/local/etc/rc.d,
Почему? Если настройки все в принципе ясно, то почему так не пустить.

Мне больше интересно почему он работать не хочет.

Скажите?

Share this post


Link to post
Share on other sites

В общем что-то не ладное с ipcad.

Запускал ipcad с явным выделением памяти буффера 64к. В итоге не протянул 2х дней.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this