UTM5-2.1 Не считает трафик
-
- Сообщения: 7
- Зарегистрирован: Пт апр 30, 2010 18:06
UTM5-2.1 Не считает трафик
Здравствуйте
Стоит задача настроить UTM5 для подсчёта трафика без Radius аутентификации.
Вот архитектура тестовой лабы:
1. Сервер (Шлюз) 2 интерфейса:
- RHEL5.4
- eth1: 172.16.0.2/24
- eth2: 192.168.1.2/24
- UTM5-2.1
- MySQL5.0.77
- dhcpd (pool 192.168.1.x)
- iptables
2. FTP Сервер windows
ip: 172.16.0.1
mask: 255.255.255.0
gw: 172.16.0.2
3. Клиентская машина windows
ip: 192.168.1.100
mask: 255.255.255.0
gw: 192.168.1.1
RHEL - настроен, нат работает, проверял что с 192.168.1.100 я могу заходить на FTP 172.16.0.1 и качать файлы.
Вот настройка IPTABLES и работающие процессы:
[root@appser ~]# iptables -t nat -n -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 192.168.1.0/24 172.16.0.0/24 to:172.16.0.2
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@appser ~]# iptables -t filter -n -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 7
Chain FORWARD (policy ACCEPT)
target prot opt source destination
LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 7
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@appser ~]# ps -ef | grep utm
root 3209 1 0 11:56 ? 00:00:00 /bin/sh /netup/utm5/bin/safe_utm5_core start
root 3224 3209 0 11:56 ? 00:00:00 /netup/utm5/bin/utm5_core
root 3516 3439 0 12:51 pts/2 00:00:00 grep utm
[root@appser ~]# ps -ef | grep mysql
root 3090 1 0 11:56 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --user=mysql
mysql 3143 3090 0 11:56 ? 00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock
root 3520 3439 0 12:52 pts/2 00:00:00 grep mysql
[root@appser ~]# ps -ef | grep dhcpd
root 3565 1 0 12:54 ? 00:00:00 /usr/sbin/dhcpd
root 3568 3439 0 12:54 pts/2 00:00:00 grep dhcpd
В UTM созданы классы трафика:
incomming 0.0.0.0/0.0.0.0 192.168.1.0/255.255.255.0
outgoing 192.168.1.0/255.255.255.0 0.0.0.0/0.0.0.0
internal 192.168.1.0/255.255.255.0 192.168.1.0/255.255.255.0
Создал Услугу:
Передача IP трафика.
В границы тарификации поставил Incoming
Создал ip-зону 192.168.1.0/192.168.1.0
Создал ip-пул 192.168.1.0/255.255.255.0
В UTM создан пользователь client c ip: 192.168.1.100
С компа 192.168.1.100 я с фтп 172.16.0.1 файлы качаю, но по отчётам UTM никакого трафика нет. Точнее когда в UTM делаю отчёт по трафику за месяц, то ничего не происхлодит.
Кто может подсказать, скорее всего я что-то не монимаю. Может UTMу нужно получать статистику в netflow, тогда вопрос как мне это сделать?
Стоит задача настроить UTM5 для подсчёта трафика без Radius аутентификации.
Вот архитектура тестовой лабы:
1. Сервер (Шлюз) 2 интерфейса:
- RHEL5.4
- eth1: 172.16.0.2/24
- eth2: 192.168.1.2/24
- UTM5-2.1
- MySQL5.0.77
- dhcpd (pool 192.168.1.x)
- iptables
2. FTP Сервер windows
ip: 172.16.0.1
mask: 255.255.255.0
gw: 172.16.0.2
3. Клиентская машина windows
ip: 192.168.1.100
mask: 255.255.255.0
gw: 192.168.1.1
RHEL - настроен, нат работает, проверял что с 192.168.1.100 я могу заходить на FTP 172.16.0.1 и качать файлы.
Вот настройка IPTABLES и работающие процессы:
[root@appser ~]# iptables -t nat -n -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 192.168.1.0/24 172.16.0.0/24 to:172.16.0.2
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@appser ~]# iptables -t filter -n -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 7
Chain FORWARD (policy ACCEPT)
target prot opt source destination
LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 7
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@appser ~]# ps -ef | grep utm
root 3209 1 0 11:56 ? 00:00:00 /bin/sh /netup/utm5/bin/safe_utm5_core start
root 3224 3209 0 11:56 ? 00:00:00 /netup/utm5/bin/utm5_core
root 3516 3439 0 12:51 pts/2 00:00:00 grep utm
[root@appser ~]# ps -ef | grep mysql
root 3090 1 0 11:56 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --user=mysql
mysql 3143 3090 0 11:56 ? 00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock
root 3520 3439 0 12:52 pts/2 00:00:00 grep mysql
[root@appser ~]# ps -ef | grep dhcpd
root 3565 1 0 12:54 ? 00:00:00 /usr/sbin/dhcpd
root 3568 3439 0 12:54 pts/2 00:00:00 grep dhcpd
В UTM созданы классы трафика:
incomming 0.0.0.0/0.0.0.0 192.168.1.0/255.255.255.0
outgoing 192.168.1.0/255.255.255.0 0.0.0.0/0.0.0.0
internal 192.168.1.0/255.255.255.0 192.168.1.0/255.255.255.0
Создал Услугу:
Передача IP трафика.
В границы тарификации поставил Incoming
Создал ip-зону 192.168.1.0/192.168.1.0
Создал ip-пул 192.168.1.0/255.255.255.0
В UTM создан пользователь client c ip: 192.168.1.100
С компа 192.168.1.100 я с фтп 172.16.0.1 файлы качаю, но по отчётам UTM никакого трафика нет. Точнее когда в UTM делаю отчёт по трафику за месяц, то ничего не происхлодит.
Кто может подсказать, скорее всего я что-то не монимаю. Может UTMу нужно получать статистику в netflow, тогда вопрос как мне это сделать?
-
- Сообщения: 7
- Зарегистрирован: Пт апр 30, 2010 18:06
Да спасибо за ответ Pulse. Только что проверил посылая netflow пакет генератором,Pulse писал(а):да, netflow вас спасёт. почитайте документацию
/netup/utm5/bin/utm5_flowgen -c 1 -s 172.16.0.1 -d 192.168.1.100 -b 52428800
Однако отчёты по пользователю неправельные.
Во вкладке детальный отчёт по трафику я вижу все пакеты которые я слал генератором, суммарно там больше чем на 100 Гб трафика.
Пару строк:
Дата 20.05.2010 15:57:15
ID_связки - 3
Лицевой_счет - 1
Класс_трафика - [класс не определен] 0
Источник - 172.16.0.1
Получатель - 192.168.1.100
Пакетов - 1662928914
Байт - 1048576
Порт_ист - 59306
Порт_получ. - 1469
TCP-флаги - 235
протокол - 152
Tos - 130
Но вот во вкладке отчёты по трафику я вижу:
Account - 1
Логин - 1
класс трафика - не определён
Кол-во МБ - 1
Цена за единицу - 0
Сумма - 0
Цена за единицу правельная, поскольку я моделирую безлимитный тариф, но почему у меня Количество - 1 МБ и класс трафика - не определён
-
- Сообщения: 7
- Зарегистрирован: Пт апр 30, 2010 18:06
Проблема решилась при использовании команды
/netup/utm5/bin/utm5_flowgen -c 1 -s 172.16.0.1 -d 192.168.1.100 -b 10000 -h 192.168.1.2
Т.е. я ещё добавил хост от которого генериться нетфлоу, хотя 192.168.1.2 и 127.0.0.1 это один и тот же сервер. После этого в отчётах трафик класифицируется как Incoming.
Это очень странно, поскольку данная опция вносит изменения только на уровень IP Layer 3. т.е. при команде
/netup/utm5/bin/utm5_flowgen -c 1 -s 172.16.0.1 -d 192.168.1.100 -b 10000
Layer 3:
ip.src=127.0.0.1
ip.dst=127.0.0.1
/netup/utm5/bin/utm5_flowgen -c 1 -s 172.16.0.1 -d 192.168.1.100 -b 10000 -h 192.168.1.2
Layer 3:
ip.src=192.168.1.2
ip.dst=192.168.1.2
/netup/utm5/bin/utm5_flowgen -c 1 -s 172.16.0.1 -d 192.168.1.100 -b 10000 -h 192.168.1.2
Т.е. я ещё добавил хост от которого генериться нетфлоу, хотя 192.168.1.2 и 127.0.0.1 это один и тот же сервер. После этого в отчётах трафик класифицируется как Incoming.
Это очень странно, поскольку данная опция вносит изменения только на уровень IP Layer 3. т.е. при команде
/netup/utm5/bin/utm5_flowgen -c 1 -s 172.16.0.1 -d 192.168.1.100 -b 10000
Layer 3:
ip.src=127.0.0.1
ip.dst=127.0.0.1
/netup/utm5/bin/utm5_flowgen -c 1 -s 172.16.0.1 -d 192.168.1.100 -b 10000 -h 192.168.1.2
Layer 3:
ip.src=192.168.1.2
ip.dst=192.168.1.2
-
- Сообщения: 7
- Зарегистрирован: Пт апр 30, 2010 18:06
dk Спасибо.
Проверил, всё верно, если не указывать в классах трафика IP маршрутезатора. Т.е. оставить 0.0.0.0, то он воспринимает /netup/utm5/bin/utm5_flowgen -c 1 -s 172.16.0.1 -d 192.168.1.100 -b 10000
Тоже как incoming.
Спасибо.
Теперь дело осталось за малым понять как я буду считать трафик.
- Либо использовать netflow генератор типа ndsad или ipcad.
- Либо вопрос, можно ли использовать информацию из каунтеров iptables, без установки доп. пакетов.
Ещё один вопрос, я так и не пойму, вебинтерфейс в utm5 как на него зайти? нужна сторонняя программа, потому как в доке кроме что он 127.0.0.1 сидит больше ничего не нашёл.
Проверил, всё верно, если не указывать в классах трафика IP маршрутезатора. Т.е. оставить 0.0.0.0, то он воспринимает /netup/utm5/bin/utm5_flowgen -c 1 -s 172.16.0.1 -d 192.168.1.100 -b 10000
Тоже как incoming.
Спасибо.
Теперь дело осталось за малым понять как я буду считать трафик.
- Либо использовать netflow генератор типа ndsad или ipcad.
- Либо вопрос, можно ли использовать информацию из каунтеров iptables, без установки доп. пакетов.
Ещё один вопрос, я так и не пойму, вебинтерфейс в utm5 как на него зайти? нужна сторонняя программа, потому как в доке кроме что он 127.0.0.1 сидит больше ничего не нашёл.
Нельзя.maksim_kravchenk писал(а): - Либо вопрос, можно ли использовать информацию из каунтеров iptables, без установки доп. пакетов.
Нужна сторонняя программа (веб-сервер).Ещё один вопрос, я так и не пойму, вебинтерфейс в utm5 как на него зайти? нужна сторонняя программа, потому как в доке кроме что он 127.0.0.1 сидит больше ничего не нашёл.
-
- Сообщения: 7
- Зарегистрирован: Пт апр 30, 2010 18:06
Не списывается абонентская плата
Здравствуйте
Теперь всё настроено, но почему-то не списывается абонентская плата, при наступлении расчётного периода. Вот описание:
Настроен тариф:
Передача IP тарфика
Периодическая стоимость - 300р
Метод снятия - в конце расчётного периода
Обнулять предоплаченый трафик - да
Границы тарификации Incomming, стоимость - 0
+----+------+-----------------+------------+-------------+-----------------------+------------+
| id | cost | discount_method | start_date | expire_date | radius_sessions_limit | is_deleted |
+----+------+-----------------+------------+-------------+-----------------------+------------+
| 15 | 300 | 2 | 1274904000 | 1909771200 | 0 | 0 |
+----+------+-----------------+------------+-------------+-----------------------+------------+
Настроен расчётный период, для теста взял период в 1 час
+----+------------+------------+---------------+-------------------------+-------------------+---------------+------------+-----------------+-----------+
| id | start_date | end_date | periodic_type | next_discount_period_id | discount_interval | canonical_len | is_expired | custom_duration | static_id |
+----+------------+------------+---------------+-------------------------+-------------------+---------------+------------+-----------------+-----------+
| 5 | 1274991000 | 1274994600 | 1048576 | 0 | 0 | 3600 | 0 | 3600 | 2 |
+----+------------+------------+---------------+-------------------------+-------------------+---------------+------------+-----------------+-----------+
Настроил пользователя
баланс - 251
+----+---------+--------------+--------+-------+------------+----------+---------------+------------+-------------------+----------------------+-----------+------------+
| id | balance | account_name | credit | flags | is_blocked | vat_rate | sale_tax_rate | int_status | block_recalc_abon | block_recalc_prepaid | unlimited | is_deleted |
+----+---------+--------------+--------+-------+------------+----------+---------------+------------+-------------------+----------------------+-----------+------------+
| 1 | 251 | | 0 | 3 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
+----+---------+--------------+--------+-------+------------+----------+---------------+------------+-------------------+----------------------+-----------+------------+
и сделал сервисную связку, в связке привезал пользоватеся, к услуге и расчётному периоду:
Не списыват абонентскую плату - нет (галочку не ставил)
+----+------------+--------------------+---------------------------+------------+------------+-------------+----------+---------------+-----------------+--------------------+----------------------+----------------+------------+
| id | is_blocked | discount_period_id | discounted_in_curr_period | start_date | is_planned | expire_date | need_del | unabon_period | unprepay_period | start_block_unabon | start_block_unprepay | is_invoice_set | is_deleted |
+----+------------+--------------------+---------------------------+------------+------------+-------------+----------+---------------+-----------------+--------------------+----------------------+----------------+------------+
| 7 | 0 | 5 | 0 | 1274990400 | 0 | 2130706431 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+----+------------+--------------------+---------------------------+------------+------------+-------------+----------+---------------+-----------------+--------------------+----------------------+----------------+------------+
Вот почему discounted_in_curr_period = 0, не в этом ли пролема. И если в этом, то может кто знает в чём причина этого, ведь дожно быть 300.
Вот как отрабатывает биллинг при окончании расчётного периода
100528 0:10:34 10 Query BEGIN
10 Query UPDATE periodic_service_links SET discounted_in_curr_period='300' WHERE id='7'
4 Query INSERT INTO dtagg_periodic(slink_id, discounted,discounted_without_tax) VALUES('7','0.000000','0.000000')
10 Query UPDATE accounts SET balance='251' WHERE id = '1'
10 Query INSERT INTO discount_transactions_all(account_id,incoming_rest,outgoing_rest,discount,discount_with_tax,service_id,service_type,slink_id,discount_date,charge_type,discount_period_id) VALUES('1','251','251','0','0','15','3','7','1274990999','2','4')
10 Query COMMIT
4 Query INSERT INTO balance_history (account_id,accounting_period_id,out_balance,date) VALUES('1','4','251','1274991000')
4 Query UPDATE dtagg_periodic SET discounted='0.000000',discounted_without_tax='0.000000' WHERE id='7'
9 Query UPDATE periodic_service_links SET discounted_in_curr_period=0,unabon_period=0,unprepay_period=0 WHERE id='7'
9 Query INSERT INTO discount_periods(start_date,end_date,periodic_type,canonical_len,custom_duration,discount_interval,static_id,next_discount_period_id) VALUES('1274991000','1274994600','1048576','3600','3600','0','2','0')
9 Query UPDATE discount_periods SET next_discount_period_id='5' WHERE id='4'
9 Query UPDATE periodic_service_links SET discount_period_id='5', is_invoice_set='0' WHERE id='7'
9 Query UPDATE discount_periods set is_expired=1 WHERE id='4'
4 Query SELECT login, password, basic_account, create_date, last_change_date,who_create, who_change, is_juridical, full_name, juridical_address, actual_address,work_telephone, home_telephone, mobile_telephone, web_page, icq_number, tax_number,kpp_number, bank_id, bank_account, comments, email, house_id, flat_number, entrance,floor, district, building, passport, personal_manager, connect_date, is_send_invoice,advance_payment FROM users WHERE id='1' AND is_deleted=0
4 Query SELECT group_id FROM users_groups_link WHERE user_id='1'
4 Query SELECT paramid, value FROM user_additional_params WHERE userid='1'
100528 0:13:35 8 Query select * from dtagg_periodic
Почему:
10 Query UPDATE accounts SET balance='251' WHERE id = '1'
Почему апдейт баланса опять таже сумма 251
Если кто сталкивался напишите. Если решу отпишу сам
Теперь всё настроено, но почему-то не списывается абонентская плата, при наступлении расчётного периода. Вот описание:
Настроен тариф:
Передача IP тарфика
Периодическая стоимость - 300р
Метод снятия - в конце расчётного периода
Обнулять предоплаченый трафик - да
Границы тарификации Incomming, стоимость - 0
+----+------+-----------------+------------+-------------+-----------------------+------------+
| id | cost | discount_method | start_date | expire_date | radius_sessions_limit | is_deleted |
+----+------+-----------------+------------+-------------+-----------------------+------------+
| 15 | 300 | 2 | 1274904000 | 1909771200 | 0 | 0 |
+----+------+-----------------+------------+-------------+-----------------------+------------+
Настроен расчётный период, для теста взял период в 1 час
+----+------------+------------+---------------+-------------------------+-------------------+---------------+------------+-----------------+-----------+
| id | start_date | end_date | periodic_type | next_discount_period_id | discount_interval | canonical_len | is_expired | custom_duration | static_id |
+----+------------+------------+---------------+-------------------------+-------------------+---------------+------------+-----------------+-----------+
| 5 | 1274991000 | 1274994600 | 1048576 | 0 | 0 | 3600 | 0 | 3600 | 2 |
+----+------------+------------+---------------+-------------------------+-------------------+---------------+------------+-----------------+-----------+
Настроил пользователя
баланс - 251
+----+---------+--------------+--------+-------+------------+----------+---------------+------------+-------------------+----------------------+-----------+------------+
| id | balance | account_name | credit | flags | is_blocked | vat_rate | sale_tax_rate | int_status | block_recalc_abon | block_recalc_prepaid | unlimited | is_deleted |
+----+---------+--------------+--------+-------+------------+----------+---------------+------------+-------------------+----------------------+-----------+------------+
| 1 | 251 | | 0 | 3 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
+----+---------+--------------+--------+-------+------------+----------+---------------+------------+-------------------+----------------------+-----------+------------+
и сделал сервисную связку, в связке привезал пользоватеся, к услуге и расчётному периоду:
Не списыват абонентскую плату - нет (галочку не ставил)
+----+------------+--------------------+---------------------------+------------+------------+-------------+----------+---------------+-----------------+--------------------+----------------------+----------------+------------+
| id | is_blocked | discount_period_id | discounted_in_curr_period | start_date | is_planned | expire_date | need_del | unabon_period | unprepay_period | start_block_unabon | start_block_unprepay | is_invoice_set | is_deleted |
+----+------------+--------------------+---------------------------+------------+------------+-------------+----------+---------------+-----------------+--------------------+----------------------+----------------+------------+
| 7 | 0 | 5 | 0 | 1274990400 | 0 | 2130706431 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+----+------------+--------------------+---------------------------+------------+------------+-------------+----------+---------------+-----------------+--------------------+----------------------+----------------+------------+
Вот почему discounted_in_curr_period = 0, не в этом ли пролема. И если в этом, то может кто знает в чём причина этого, ведь дожно быть 300.
Вот как отрабатывает биллинг при окончании расчётного периода
100528 0:10:34 10 Query BEGIN
10 Query UPDATE periodic_service_links SET discounted_in_curr_period='300' WHERE id='7'
4 Query INSERT INTO dtagg_periodic(slink_id, discounted,discounted_without_tax) VALUES('7','0.000000','0.000000')
10 Query UPDATE accounts SET balance='251' WHERE id = '1'
10 Query INSERT INTO discount_transactions_all(account_id,incoming_rest,outgoing_rest,discount,discount_with_tax,service_id,service_type,slink_id,discount_date,charge_type,discount_period_id) VALUES('1','251','251','0','0','15','3','7','1274990999','2','4')
10 Query COMMIT
4 Query INSERT INTO balance_history (account_id,accounting_period_id,out_balance,date) VALUES('1','4','251','1274991000')
4 Query UPDATE dtagg_periodic SET discounted='0.000000',discounted_without_tax='0.000000' WHERE id='7'
9 Query UPDATE periodic_service_links SET discounted_in_curr_period=0,unabon_period=0,unprepay_period=0 WHERE id='7'
9 Query INSERT INTO discount_periods(start_date,end_date,periodic_type,canonical_len,custom_duration,discount_interval,static_id,next_discount_period_id) VALUES('1274991000','1274994600','1048576','3600','3600','0','2','0')
9 Query UPDATE discount_periods SET next_discount_period_id='5' WHERE id='4'
9 Query UPDATE periodic_service_links SET discount_period_id='5', is_invoice_set='0' WHERE id='7'
9 Query UPDATE discount_periods set is_expired=1 WHERE id='4'
4 Query SELECT login, password, basic_account, create_date, last_change_date,who_create, who_change, is_juridical, full_name, juridical_address, actual_address,work_telephone, home_telephone, mobile_telephone, web_page, icq_number, tax_number,kpp_number, bank_id, bank_account, comments, email, house_id, flat_number, entrance,floor, district, building, passport, personal_manager, connect_date, is_send_invoice,advance_payment FROM users WHERE id='1' AND is_deleted=0
4 Query SELECT group_id FROM users_groups_link WHERE user_id='1'
4 Query SELECT paramid, value FROM user_additional_params WHERE userid='1'
100528 0:13:35 8 Query select * from dtagg_periodic
Почему:
10 Query UPDATE accounts SET balance='251' WHERE id = '1'
Почему апдейт баланса опять таже сумма 251
Если кто сталкивался напишите. Если решу отпишу сам