Перейти к содержимому
Калькуляторы

FreeBSD + ipcad = panic

Привет всем.

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

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

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

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

 

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

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

 

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

 

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

ЗЗЫ. фря 7.2.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем XeonVs

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем photon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а зачем 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

Изменено пользователем Andriuxa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если хочется славить на два и более порта, два и более хоста надо пользовать 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 систем.

Изменено пользователем XeonVs

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

Изменено пользователем Andriuxa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А для использования 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 отзеркалирован с ближайшего коммутатора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Код

options NETGRAPH #

options NETGRAPH_PPP

options NETGRAPH_PPTPGRE

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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 года, можно ли мне это как-то обойти? т.е. не хранить нетфлоу, а использовать что-то другое?

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

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

 

 

Изменено пользователем Andriuxa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

настроить 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"

 

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

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

Изменено пользователем Andriuxa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а по моему вопросу никто не ответит? :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нашел косяк.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

По 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 что-то считает.

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

Изменено пользователем Andriuxa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Скажите?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.