Биллинговая система Nodeny
19 Апреля 2024, 19:38:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2 3 4
  Печать  
Автор Тема: netflow  (Прочитано 24005 раз)
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« : 22 Декабря 2013, 11:42:12 »

80 грн. Тестировался на Mikrotik
http://app.nodeny-plus.com.ua/docs/work/netflow.html

Обратите внимание на параметр ext_iface - номер внешнего интерфейса. Наш микротик показал, что номер = 0, хотя в netflow посылал его как №1.  Возможно это фича Микротика
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #1 : 23 Декабря 2013, 15:09:08 »

Хочу отметить, что в N+должна быть бОльшая производительность по сравнению с N50 по части  обработки netflow. Алгоритм работы N50:

1. Из ядра запускаем отдельный процесс:
  1.1 Создаем netflow_8888.pl (дергаем диск на запись)
  1.2 Посылаем сигнал flow-capture, происходит запись на диск потока (дергаем диск на запись)
  1.3. Считываем файл, преобразуем, записываем на диск  (дергаем диск на запись)
2. В ядре считываем файл и обрабатываем

Алгоритм N+:

1. Не запускаем отдельный процесс (не тратим ресурсы) т.к. коллектор работает в отдельном потоке, а передаем команду коллектору
  1.1.  Посылаем сигнал flow-capture, происходит запись на диск потока (дергаем диск на запись)
  1.2. netflow_8888.pl (созданный одноктратно при запуске) переименовывает поток в 8888.txt (очень маленькое дерганье диска)
  1.3. Обрабатываем файл и передаем ядру на обработку

В итоге: в N+ мы меньше задрачиваем диск и быстрей обрабатываем
Записан
vddav
Старожил
****

Карма: 3
Offline Offline

Сообщений: 251


Просмотр профиля Email
« Ответ #2 : 24 Октября 2014, 17:28:33 »

можно попросить инструкцию для настройки сенсора на freebsd. чего то не получается
что я делал:
создал ноду 100
Код:
 
/usr/sbin/ngctl -f- <<-SEQ
   mkpeer ipfw: netflow 100 iface0
   name ipfw:100 netflow
   msg netflow: setdlt { iface = 0 dlt = 12 }
   msg netflow: settimeouts {inactive=5 active=60}
   mkpeer netflow: ksocket export inet/dgram/udp
   msg netflow:export connect inet/192.168.20.254:8888
SEQ

что имею в итоге:
Код:
#ngctl list
There are 4 total nodes:
  Name: ipfw            Type: ipfw            ID: 00000001   Num hooks: 1
  Name: ngctl71879      Type: socket          ID: 00000012   Num hooks: 0
  Name: netflow         Type: netflow         ID: 00000003   Num hooks: 2
  Name: <unnamed>       Type: ksocket         ID: 00000004   Num hooks: 1

Код:
# ngctl msg netflow: info
Rec'd response "info" (805306369) from "[3]:":
Args: { IPv4 bytes=610047794231 IPv4 packets=820656471 IPv4 records used=42947 fibs allocated=1 Active expiries=7709521 Inactive expiries=43246582 Inactive timeout=5 Active timeout=60 }

в фаере добавил правило c ngtee 100, собственно пакеты летят в ноду, на коллекторе  делал по инструкции оф доки. фаил 8888.txt присутствует не нулевого размераю
По команде flow-print -f6 < /var/db/flows/8888.txt вываливает ипы, порты и т.д.
Код:
 192.168.21.153   194.50.125.67                    3                 144
 192.168.62.8     65.55.92.184                     2                 104
 178.92.171.183   192.168.29.2                     1                  44
 192.168.26.227   2.93.225.124                     3                 152
 192.168.24.121   94.103.226.191                   3                 152
 178.154.131.216  192.168.29.173                   3                 367
плюс в консоли коллектора постоянно лезет:
Код:
usr/local/bin/flow-export: Exported 214650 records
/usr/local/bin/flow-export: Exported 225232 records
/usr/local/bin/flow-export: Exported 221628 records
/usr/local/bin/flow-export: Exported 221506 records
/usr/local/bin/flow-export: Exported 209239 records
/usr/local/bin/flow-export: Exported 218953 records

при зауске коллектора  с параметром -v
Код:
Получили данные от netflow:

INSERT INTO X2014_10_24 (uid,iface,class,time,`in`,`out`) VALUES ... (rows: 4)

UPDATE users_trf SET traf1=in1+out1
Строк: 5206. Время выполнения sql: 0.0036 сек

UPDATE users_trf SET traf2=in2+out2
Строк: 5206. Время выполнения sql: 0.0034 сек

UPDATE users_trf SET traf3=in3+out3
Строк: 5206. Время выполнения sql: 0.0034 сек

UPDATE users_trf SET traf4=in4+out4
Строк: 5206. Время выполнения sql: 0.0034 сек

SELECT g.grp_maxflow, u.id FROM user_grp g LEFT JOIN users u ON g.grp_id=u.grp WHERE g.grp_maxflow>0 AND u.state<>'off'
Строк: 0. Время выполнения sql: 0.0001 сек

{
  'no_usr_traf' => 0,
  'tm_save_traf' => '0.334206499159336',
  'lines' => 0,
  'tm_start' => '2618913.40391396',
  'size' => 0,
  'err_lines_c' => 0,
  'err_lines' => [],
  'tm_parse' => '4.49782237410545e-05'
};


Получили данные от ipcad:192.168.20.250
в итоге трафика в биллинге нету(.
Записан
vddav
Старожил
****

Карма: 3
Offline Offline

Сообщений: 251


Просмотр профиля Email
« Ответ #3 : 25 Октября 2014, 11:55:31 »

победил!)))
в общем особое внимание на параметр ext_iface в настройках коллектора! у меня он оказался 52)) система с кучей вланов)
по команде ifconfig считаем до интерфейса, либо :
Цитировать
Создаём файл с расширением .c например if_nametoindex.c. В пустой if_nametoindex.c файл добавляем:

#include <sys/socket.h>

#include <net/if.h>

using namespace std;

#include <iostream>

int main(int argc, char **argv)

    {  for (int i = 1; i < argc; i++)

        {  cout << argv << " = " << if_nametoindex(argv) << "\n";

        }

        return 0;

    }

ПЕРЕВОД СТРОКИ В КОНЦЕ ФАЙЛА ОБЯЗАТЕЛЕН

 

Находясь в тойже директории, что и if_nametoindex.c выполняем компиляцию:

# c++ -o if_nametoindex if_nametoindex.c

Появится исполняемый файл, который зелёный если через mc-light на него смотреть. Далее запускаем исполняемый файл:

# ./if_nametoindex "re1" "re2" "lo0"

re1 = 3

re2 = 4

lo0 = 7

Запускается одним или несколькими параметрами через пробел. В качестве параметра в main передаётся имя/имена сетевого/ых интерфейса/ов и в ответ выдаётся соответствующий номер

взято с anteh.ru/notes/freebsd/notes_netflow.html
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #4 : 25 Октября 2014, 12:07:36 »

победил!)))
в общем особое внимание на параметр ext_iface в настройках коллектора! у меня он оказался 52)) система с кучей вланов)
по команде ifconfig считаем до интерфейса, либо :
Цитировать
Создаём файл с расширением .c например if_nametoindex.c. В пустой if_nametoindex.c файл добавляем:

#include <sys/socket.h>

#include <net/if.h>

using namespace std;

#include <iostream>

int main(int argc, char **argv)

    {  for (int i = 1; i < argc; i++)

        {  cout << argv << " = " << if_nametoindex(argv) << "\n";

        }

        return 0;

    }

ПЕРЕВОД СТРОКИ В КОНЦЕ ФАЙЛА ОБЯЗАТЕЛЕН

 

Находясь в тойже директории, что и if_nametoindex.c выполняем компиляцию:

# c++ -o if_nametoindex if_nametoindex.c

Появится исполняемый файл, который зелёный если через mc-light на него смотреть. Далее запускаем исполняемый файл:

# ./if_nametoindex "re1" "re2" "lo0"

re1 = 3

re2 = 4

lo0 = 7

Запускается одним или несколькими параметрами через пробел. В качестве параметра в main передаётся имя/имена сетевого/ых интерфейса/ов и в ответ выдаётся соответствующий номер

взято с anteh.ru/notes/freebsd/notes_netflow.html
+ в карму за труды праведные  Улыбающийся
Записан
vddav
Старожил
****

Карма: 3
Offline Offline

Сообщений: 251


Просмотр профиля Email
« Ответ #5 : 25 Октября 2014, 16:22:06 »

еще обнаружился нюанс, когда два и более устройств надо менять рабочую директорию на другую уникальную, ибо поочередно вываливаются копии flow-capture, получаются одинаковые копии дампов, и одна копия не может ее перезаписать в итоге валиться. в стартовом конфиге изменить параметр, например:
Код:
-w /var/db/flows/8889
и в netflow_8889.pl также подправить откуда переименовывать.
ЗЫ заработало тока таким образом)
« Последнее редактирование: 25 Октября 2014, 20:21:43 от Efendy » Записан
bill
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 5


Просмотр профиля Email
« Ответ #6 : 07 Мая 2015, 12:05:40 »

Привет!
Вводит в заблуждение параметр ext_iface что там указывать? Где посмотреть номер в сенсоре ? Господин vddav указывал на то что он зависит от количества интерфейсов ?! Если у меня pppoe и количество интерфейсов всегда разное?!
Если не сложно поясните.
Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 369


Просмотр профиля
« Ответ #7 : 07 Мая 2015, 14:13:09 »

Привет!
Вводит в заблуждение параметр ext_iface что там указывать?
указавать номер внешнего интерфейса.
Записан
bill
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 5


Просмотр профиля Email
« Ответ #8 : 07 Мая 2015, 14:53:55 »

Привет!
Вводит в заблуждение параметр ext_iface что там указывать?
указавать номер внешнего интерфейса.

Какой номер? Порядковый или еще какой-нибудь? Где его посмотреть? Если внешних интерфейсов много?
Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 369


Просмотр профиля
« Ответ #9 : 07 Мая 2015, 15:40:22 »

Какой номер? Порядковый или еще какой-нибудь? Где его посмотреть? Если внешних интерфейсов много?
выше ведь написано:
Цитировать
в общем особое внимание на параметр ext_iface в настройках коллектора! у меня он оказался 52)) система с кучей вланов)
по команде ifconfig считаем до интерфейса
Как может быть много внешних интерфейсов? Внешний интерфейс - это тот, что приходящий.
Записан
bill
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 5


Просмотр профиля Email
« Ответ #10 : 07 Мая 2015, 15:45:47 »

Какой номер? Порядковый или еще какой-нибудь? Где его посмотреть? Если внешних интерфейсов много?
выше ведь написано:
Цитировать
в общем особое внимание на параметр ext_iface в настройках коллектора! у меня он оказался 52)) система с кучей вланов)
по команде ifconfig считаем до интерфейса
Как может быть много внешних интерфейсов? Внешний интерфейс - это тот, что приходящий.
Обычно, несколько аплинков. У меня сенсор и коллектор на одной машине.
Записан
hardman
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 15


Просмотр профиля Email
« Ответ #11 : 16 Февраля 2016, 13:07:32 »

Обратите внимание на параметр ext_iface - номер внешнего интерфейса. Наш микротик показал, что номер = 0, хотя в netflow посылал его как №1.  Возможно это фича Микротика

1. народ научите как определять номер интерфейса в случае с микротиком,  я методом перебора номеров подобрал ,  на тестовом микротике у меня всего 5 интерфейсов быстро и наверняка ,  а на боевом 31. , а если еще конфиги наменяю надо научиться выявлять.
вот смотрю вывод flow-printflow-print -f5 < /var/db/flows/8888.txt  если часто вижу Sif  Dif  эти номера и подбирал.

2. можно ли написать 
Код:
ext_iface   => '3,4'  
  если два WAN  интефейса.
Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 369


Просмотр профиля
« Ответ #12 : 16 Февраля 2016, 16:13:50 »

1. можно по snmp посмотреть.. ifDescr
у меня так:
IF-MIB::ifDescr.521 = STRING: xe-0/0/0.612
следовательно номер интерфейса 521
2. хз
Записан
incokeeper
Пользователь
**

Карма: 2
Offline Offline

Сообщений: 33


Просмотр профиля
« Ответ #13 : 17 Февраля 2016, 22:03:44 »

Столкнулся с аналогичной проблемой.
С микротика упорно отказывается снимать трафик, перебрал все возможные номера интерфейсов.

Подскажите, такая вот конфигурация:
физический интерфейс (sfp2) на нем 4 влана (два фула и два уаикса)
команда interface print говорит, что у sfp2 номер 1 (трафика 170-210 Мбит\с)  но рисует 10-20 мегабит
пробовал вписывать номера вланов - не рисует.

что не так? ))) 
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #14 : 17 Февраля 2016, 23:41:54 »

номер интерфейса можно вычислить логически посмотрев  на дамп нетфлоу, судя по моей доке для н50:

Код:
flow-print < /var/db/flows/ft-v05.2008-12-17.141129+0000

приведите кусок результата здесь и я подскажу
Записан
Страниц: [1] 2 3 4
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!