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

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

Карма: 0
Offline Offline

Сообщений: 72


Просмотр профиля Email
« : 07 Августа 2010, 21:22:13 »

Перечитал инструкцию по установке netflow но остались вопросы.

Подскажите обязательно ли устанавливать пакет
Код:
cd /usr/ports/net-mgmt/flow-tools && make install clean

Или достаточно опций в ядре
Код:
options		NETGRAPH
options NETGRAPH_SOCKET
options NETGRAPH_IPFW
options NETGRAPH_NETFLOW
options NETGRAPH_KSOCKET
Записан
Elisium
NoDeny
Старожил
*

Карма: 19
Offline Offline

Сообщений: 360


На форумах "спасибом" называется плюс к карме.


Просмотр профиля
« Ответ #1 : 07 Августа 2010, 22:06:43 »

Мдя.
Ну раз в доке написано, что надо, значит надо.
Этот пакет - прослойка между ядром и юзером, которая собирает нетфлов и приводит его в более/менее удобоваримый вид.

п.с. Без него биллинговые скрипты сбора трафика не работают.

п.п.с. Реально, половина вопросов пропадает, если ПОСЛЕ того как ничего не получилось, прочитать доку ЕЩЕ РАЗ.
Там есть некоторые места, в которых ВАЖНЫЕ вещи пишуццо одним/половинкой предложения.
« Последнее редактирование: 07 Августа 2010, 22:08:35 от Elisium » Записан
Kaylas
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 72


Просмотр профиля Email
« Ответ #2 : 07 Августа 2010, 22:12:01 »

Очень признателен за развернутый ответ.
Записан
Kaylas
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 72


Просмотр профиля Email
« Ответ #3 : 08 Августа 2010, 12:00:53 »

Все установил но статистика работает не правильно.

Поставил на закачку фильмы.

Скачал уже несколько гигабайт а на страничке статистики показывает какую то ерунду.

Канал у меня всего 100 мегабит закачка была на скорости 6 мегабайт а в статистике показывает 200 - 300 - 1600 мегабит
« Последнее редактирование: 08 Августа 2010, 12:06:18 от Kaylas » Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #4 : 08 Августа 2010, 12:18:21 »

какой реальный объем?
с какого интерфейса снимаешь статистику?
Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #5 : 08 Августа 2010, 12:46:28 »

Все установил но статистика работает не правильно.

Поставил на закачку фильмы.

Скачал уже несколько гигабайт а на страничке статистики показывает какую то ерунду.

Канал у меня всего 100 мегабит закачка была на скорости 6 мегабайт а в статистике показывает 200 - 300 - 1600 мегабит

конфиги в студию
Записан
Kaylas
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 72


Просмотр профиля Email
« Ответ #6 : 08 Августа 2010, 13:37:14 »

rc.conf
Код:
# cat rc.conf

# ---> LAN
ifconfig_em1="inet 10.4.1.3  netmask 255.255.252.0"

#ifconfig_em0_alias0="ether 00:50:FC:E6:B8:99"
ifconfig_em0="inet 109.86.106.179  netmask 255.255.255.0"

#defaultrouter="192.168.0.1"
defaultrouter="109.86.106.254"

hostname="server.i-net.in.ua"

keymap=ru.cp1251
# можно не использовать, by default клавиша "CAPS LOCK"
#keychange="61 ESC[K"
scrnmap="win2cpp866"
font8x16=cp866b-8x16
font8x14=cp866-8x14
font8x8=cp866-8x8

gateway_enable="YES"
sshd_enable="YES"
mysql_enable="YES"
apache22_enable="YES"
pf_enable="YES"
firewall_enable=YES
ngnetflow_enable="YES"



# --> Сервер времени
ntpd_enable="YES"
ntpd_sync_on_start="YES"
#ntpd_flags="-c /etc/ntp.conf -l /var/log/ntpd.log -p /var/run/ntpd.pid"


# -->
flow_capture_enable="YES"
flow_capture_profiles="nodeny"
flow_capture_nodeny_flags="-n1 -N0 -R /usr/local/nodeny/netflow_8888.pl"
# Ниже ип шлюза, отдающего нетфлов или 0.0.0.0, если не важна суперсекретность ))
flow_capture_nodeny_remoteip="0.0.0.0"
# Ниже ип биллинга, коллектора нетфлов или 0.0.0.0, если слушать на всех ифейсах
flow_capture_nodeny_localip="0.0.0.0"
flow_capture_nodeny_datadir="/var/db/flows"
flow_capture_nodeny_pid="/var/run/flow-capture/flow-capture.pid"
flow_capture_nodeny_port="8888"
flow_capture_nodeny_user="root"

rc.firewall
Код:
# cat rc.firewall
#!/bin/sh -

f='/sbin/ipfw'

# Настройки сети маси и IP адреса
iflan="em1"             # интерфейс смотрящий в ЛС
netlan="10.4.0.0/22"    # nod_net=  Локальная сеть Доступ в эту сеть будет проис ходить без авторизации.

# Настройки сети маси и IP адреса
ifOut_citi="em0"        # внешний интерфейс смотрит на Ситинет

# Настройки сети маси и IP адреса
# ifOut_ukr="tun0"      # внешний интерфейс Укртелекома

my_out_nets='127.0.0.1' # клиентская реальная сеть, не подлежащая трансляции адресов.
                        # Вы не должны  здесь указывать локальную сеть!
                        # Если клиентам не выдаются внешние адреса, укажите 127.0.0.1.

nod_kernel='10.4.1.3'   # ip сервера с ядром NoDeny, этому ip разрешим получать статистику о трафике от коллектора ipcad.
ipcad_port='1'  # этот порт «слушает» ipcad,  в него будем направлять трафик подлежащий учету

# Сети, в/из которых трафик блокируем
${f} table 120 flush
${f} table 120 add 224.0.0.0/4
#${f} table 120 add 192.168.0.0/16
${f} table 120 add 172.16.0.0/12
${f} table 120 add 194.185.200.0/24
${f} table 120 add 93.89.101.0/24
${f} table 120 add 119.254.1.0/24

${f} -f flush

# Tcp-соединения на 445-й порт настолько «вирусны», что этот порт проще закрыть.
${f} add 100 deny tcp from any to any 445

# Разрешаем внутренний трафик
${f} add 110 allow ip from any to any via lo0

# Все пакеты от сервера направляем на правило 1000
${f} add 120 skipto 1000 ip from me to any

# Запрещаем
${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${f} add 140 deny ip from any to "table(120)"
${f} add 150 deny ip from "table(120)" to any

#${f} add 156 deny log ip from any to "table(122)" via stge0
#${f} add 157 deny log ip from "table(124)" to any via stge0

# Разрешаем доступ по SSH
${f} add 160 allow tcp from any to me 50022
${f} add 161 allow tcp from me 50022 to any

# FTP
#ipfw add 162 allow tcp from any to 20,21
#ipfw add 163 allow tcp from 20,21 to any

# Все входящие пакеты отправленые мне отправляем на правило 2000
${f} add 190 skipto 2000 ip from any to me

# пакеты пришедшие на внешний интерфейс отправляем на правило 500
${f} add 200 skipto 500 ip from any to any via ${ifOut_citi}
#${f} add 210 skipto 500 ip from any to any via ${ifOut_ukr}
#${f} add 220 skipto 500 ip from any to any via tun0

# Все ВХОДЯЩИЕ пакеты отправляем на правило 4500
${f} add 300 skipto 4500 ip from any to any in


# Исходящие пакеты попадают в netflow на ноду 100 Собераем статистику
${f} add 400 ngtee 100 ip from any to any

# Исходящие пакеты направляются на правило 450
#${f} add 401 skipto 450 ip from any to any recv ${ifOut_citi}
#${f} add 402 skipto 450 ip from any to any recv ${ifOut_ukr}
# Заворачиваем трафик на порт статистики
#${f} add 420 divert 1 ip from any to any
#${f} add 450 divert 2 ip from any to any
# Разрешает прохождение любых пакетов
${f} add 490 allow ip from any to any

####################################################################

${f} add 500 skipto 32500 ip from any to any in
#${f} add 510 divert 1 ip from any to any
${f} add 510 ngtee 100 ip from any to any
${f} add 540 allow ip from any to any

# -> Все пакеты от сервера выпускаем без проверок
${f} add 1000 allow udp from any 53,7723 to any
${f} add 1010 allow tcp from any to any setup keep-state
${f} add 1020 allow udp from any to any keep-state
${f} add 1100 allow ip from any to any

# -> Все пакеты пришедшие на сервер
${f} add 2000 check-state
${f} add 2010 allow icmp from any to any
${f} add 2050 allow tcp from any to any 80
${f} add 2051 allow tcp from any to any 443
${f} add 2053 allow udp from any to any 53
${f} add 2061 deny ip from any to any via ${ifOut_siti}
${f} add 2082 allow udp from any to any 53,7723

# запретить любые пакеты.
${f} add 2100 deny ip from any to any
# запретить любые пакеты.
${f} add 32490 deny ip from any to any
# запретить любые пакеты.
${f} add 65530 deny ip from any to any

/usr/local/nodeny/netflow.txt
Код:
# cat netflow.txt
mkpeer ipfw: netflow 100 iface0
name ipfw:100 netflow
msg netflow: setdlt { iface = 0 dlt = 12 }
mkpeer netflow: ksocket export inet/dgram/udp
msg netflow:export connect inet/127.0.0.1:8888

/usr/local/nodeny/netflow_8888.pl - создался автоматически.
Код:
# cat netflow_8888.pl
#!/usr/bin/perl
$lines=`/usr/local/bin/flow-export -f2 -mdoctets,srcaddr,dstaddr,input,output,srcport,dstport,prot < /var/db/flows/$ARGV[0] 2>/dev/null`;
$out_int=',1,';
$out="";
foreach $line (split /\n/,$lines)
 {
  ($bytes,$src,$dst,$src_if,$dst_if,$src_port,$dst_port,$prot)=split /,/,$line;
  next if $prot<1;
  $h="$src\t$dst\t1\t$bytes\t$src_port\t$dst_port\t$prot\t";
  $out.=$h."2\n" if $out_int=~/,$src_if,/;
  $out.=$h."1\n" if $out_int=~/,$dst_if,/;
 }
exit unless open (F,'>/usr/local/nodeny/sql/1-1281267079_temp');
print F $out;
close(F);
rename '/usr/local/nodeny/sql/1-1281267079_temp','/usr/local/nodeny/sql/1-1281267079';
unlink "/var/db/flows/$ARGV[0]";

/usr/local/etc/rc.d/ngnetflow.sh Как в руководстве
Код:
cat /usr/local/etc/rc.d/ngnetflow.sh
#!/bin/sh
. /etc/rc.subr

name="ngnetflow"
rcvar=`set_rcvar`

load_rc_config $name
: ${ngnetflow_enable="YES"}

start_cmd="ngnetflow_start"
stop_cmd="ngnetflow_stop"

ngnetflow_start() {

/usr/sbin/ngctl -f /usr/local/nodeny/netflow.txt

}

ngnetflow_stop() {
/usr/sbin/ngctl -f- <<-NODENY
shutdown netflow:
NODENY
}

run_rc_command "$1"

Ядро
Код:
options KVA_PAGES=512                           # Увеличение адресного пространства ядра до 2Gb.
#options VM_KMEM_SIZE=1073741824
#options VM_KMEM_SIZE_MAX=1073741824

#options MAXPHYS=(1024*1024)                    # ?
#options DFLTPHYS=(128*1024)                    # ?
#device carp                                    # позволяет нескольким компьютерам, находящимся в одной сети, использовать один IP адрес.

options PANIC_REBOOT_WAIT_TIME=16               # В случаае паники ядра перегрузится через 16 секунд
options SC_DISABLE_REBOOT                       # Опция отключает перезагрузку по ctrl-alt-del

# Настройка консоли.
options VESA                                    # - для включения расширенного видеорежима:
options SC_PIXEL_MODE
options VGA_WIDTH90                             # - подгоним под себя режим vga
options SC_NORM_ATTR=(FG_GREEN|BG_BLACK)        # - сделаем обычный вывод зеленый на черном
options SC_KERNEL_CONS_ATTR=(FG_YELLOW|BG_BLACK)# - а сообщения ядра желтый на черном

# IPFW
options IPFIREWALL                              # Опции для поддержки фаерволла IPFW.
options IPFIREWALL_VERBOSE                      # - включаем логирование
options IPFIREWALL_VERBOSE_LIMIT=100            # - ограничение на размер лога
options IPFIREWALL_FORWARD                      # - включаем опции перенапрвления
options IPFIREWALL_DEFAULT_TO_ACCEPT            # - По умолчанию пропускать все.
options DUMMYNET                                # - включение поддержки dummynet - искусственная задержка пакетов
options IPDIVERT                                # - дайверт - для поддержки NAT
options IPFIREWALL_NAT                          # - NAT в ядре без использования Дивере
options LIBALIAS                                # - Нужно для работі IPFIREWALL_NAT


# Если нужна поддержка фаерволла PF, раскомментируем опции ниже.
#device pf
#device pflog                                   # - включаем логирование
#device pfsync
# - включаем очереди - аналог dummynet
#options ALTQ
#options ALTQ_CBQ # Class Bases Queuing (CBQ)
#options ALTQ_RED # Random Early Detection (RED)
#options ALTQ_RIO # RED In/Out
#options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
#options ALTQ_PRIQ # Priority Queuing (PRIQ)
#options ALTQ_NOPCC # Required for SMP build


#options QUOTA                                  # Поддержка квот файловых систем. Желательно, если будет много юзеров и у каждого свой файлосборник

# IPSec
options IPSEC
options IPSEC_DEBUG
# crypto system
device crypto
device cryptodev




# Если нужна поддержка NETGRAPH в ядре
options NETGRAPH
options NETGRAPH_NETFLOW                        # + для посчета трафика
options NETGRAPH_IPFW
options NETGRAPH_NAT

# --> MPD
options NETGRAPH_SPLIT
options NETGRAPH_KSOCKET
options NETGRAPH_SOCKET
options NETGRAPH_BPF
options NETGRAPH_IFACE
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE
options NETGRAPH_TCPMSS
options NETGRAPH_VJC
options NETGRAPH_TEE
options NETGRAPH_CAR

options NETGRAPH_ONE2MANY
options NETGRAPH_ETHER
options NETGRAPH_PPPOE

ifconfig
Код:
 ifconfig
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
        ether 00:15:17:dd:b0:0e
        inet 109.86.106.179 netmask 0xffffff00 broadcast 109.86.106.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
        ether 00:15:17:dd:b0:0f
        inet 192.168.5.5 netmask 0xffffff00 broadcast 192.168.5.255
        inet 10.4.1.3 netmask 0xfffffc00 broadcast 10.4.3.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
re0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 48:5b:39:43:43:b8
        media: Ethernet autoselect (10baseT/UTP <half-duplex>)
        status: no carrier
fwe0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 02:1e:8c:d5:45:a1
        ch 1 dma -1
fwip0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        lladdr 0.1e.8c.0.0.d5.45.a1.a.2.ff.fe.0.0.0.0
ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet 127.0.0.1 netmask 0xff000000
Записан
Kaylas
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 72


Просмотр профиля Email
« Ответ #7 : 08 Августа 2010, 16:47:38 »

В папке /var/db/flows всего один файл. скажите так и должно быть?

Код:
# ls /var/db/flows
tmp-v05.2010-08-08.175005+0300
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #8 : 08 Августа 2010, 16:50:16 »

если все нормально работает - то да
flowcapture туда ложит файлы, а ноденай выгребает и парсит
Записан
Kaylas
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 72


Просмотр профиля Email
« Ответ #9 : 08 Августа 2010, 17:46:14 »

Все вроде работает но както неправильно. Ставлю качаться файл, а график загрузки канал этого не отображает. Пишет что загрузка меньше мегабайта.

В файл  /usr/local/nodeny/netflow.txt добавил в него строчку: msg netflow: settimeouts { inactive=30 active=600 } но ситуация непоменялась

Поставил на закачку фильм в 18:35 в 18:37 прервал закачку а загрузка канала отобразилась только в 18:43 и вдобавок неправильная.

Подскажите где может быть бок, куда копать?
« Последнее редактирование: 08 Августа 2010, 17:48:38 от Kaylas » Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #10 : 08 Августа 2010, 18:06:23 »

а если поставить msg netflow: settimeouts { inactive=20 active=40 }
Записан
Kaylas
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 72


Просмотр профиля Email
« Ответ #11 : 08 Августа 2010, 18:41:06 »

а если поставить msg netflow: settimeouts { inactive=20 active=40 }

ситуация значительно улучшилась но все равно скорость отображается неправильно.

Записан
Kaylas
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 72


Просмотр профиля Email
« Ответ #12 : 08 Августа 2010, 20:10:09 »

а если поставить msg netflow: settimeouts { inactive=20 active=40 }
Все таки эта строчка оказалась спасительной. был неправ просматривал график загрузки канала в Мегабайтах, а нажно было Мбайт/сек, переключился и получил адекватный результат. VitalVas лучший +1  Улыбающийся

Чистой воды любопытство как узнал, что нужно прописать именно "inactive=20" и "active=40"? И может есть какие нибудь соображения почему предведущие настройки работали у других и не заработали у меня?
Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #13 : 08 Августа 2010, 20:50:02 »

Чистой воды любопытство как узнал, что нужно прописать именно "inactive=20" и "active=40"? И может есть какие нибудь соображения почему предведущие настройки работали у других и не заработали у меня?
личная практика показала, если "плющит" нетфлов, то иногда так можна решить проблему
эта строка снята с работающего сервера
Записан
cnsh
Новичок
*

Карма: 0
Offline Offline

Сообщений: 4


Просмотр профиля Email
« Ответ #14 : 05 Октября 2010, 01:56:08 »

Подскажите есть разница: скомпилировать ядро с netgraph или подгружать модулем?  Непонимающий
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

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