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

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

Карма: 0
Offline Offline

Сообщений: 33


Просмотр профиля
« Ответ #15 : 01 Августа 2011, 14:18:51 »

день блокировки по умолчанию 1 стоит
Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #16 : 01 Августа 2011, 16:10:58 »

Посмотреть лог скрипта  перехода на след месяц, запустить ядро и сервер доступа в дебаг режиме с ключиком -v. Похоже проблема в линуксах только. Надо локализировать проблему.
Записан
blackjack
NoDeny
Старожил
*

Карма: 24
Offline Offline

Сообщений: 352


Просмотр профиля Email
« Ответ #17 : 01 Августа 2011, 16:16:43 »

а noserver.pl запущен?
Записан
Dimension
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 33


Просмотр профиля
« Ответ #18 : 01 Августа 2011, 19:03:43 »

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

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #19 : 01 Августа 2011, 19:18:43 »

Так, давайте уточним ситуацию, ответьте на вопросы:
1) баланс клиента минус стоимость услуг меньше границы отключения? (т.е. клиент должен быть заблокирован по отсутствию финансов)
2) учетная запись находится в состоянии заблокирован или нет? имеется ввиду перевело ли ядро состояние "доступ в интернет" в положение "заблокирован"?
3) клиент авторизуется и при этом какой статус в админке возле его ключика? (если подвести курсор к ключику, то напишет)
4) кто делал правила для iptables, к нему вопрос: в вышеприведенных правилах для 10.0.1.9 должен блокироваться инет или нет? Т.е. фаервол правильно отображает текущую ситуацию или нет?
Записан
Dimension
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 33


Просмотр профиля
« Ответ #20 : 01 Августа 2011, 20:19:56 »

1) совершенно верно, "с услугами" меньше границы отключения
2) Да, ядро пишет что доступ запрещен.
3) Статус авторизации подробно описал в этом посте http://forum.nodeny.com.ua/index.php?topic=1157.msg12467#msg12467
В общем списке пользователей ключ напротив человека зеленый и доступ пишет на нем разрешен. но если зайти непосредственно в сами настройки юзера, то вверху ключик горит красным и написано что доступ запрещен.
4) фаервол настраивал slava. Получается что фаервол не правильно отображает ситуацию, так как разрешает инет тогда, когда биллинг говорит, что нельзя

Может быть выложить содержимое каких то скриптов ? например nofire.pl
« Последнее редактирование: 01 Августа 2011, 20:23:34 от Dimension » Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #21 : 01 Августа 2011, 20:31:22 »

дай скрин самого абонента и тарифа, на котором он сидит
Записан
slava
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 26


Просмотр профиля Email
« Ответ #22 : 01 Августа 2011, 22:04:14 »

Цитировать
4) кто делал правила для iptables, к нему вопрос: в вышеприведенных правилах для 10.0.1.9 должен блокироваться инет или нет? Т.е. фаервол правильно отображает текущую ситуацию или нет?

Инет должен блокироваться, и блокировался при отключении, что и происходило до перехода на новый месяц: при отключении клиент авторизатором или разрыве ppp соединения.

Из nofire.pl
Код:
sub Deny
{
my $p=$_[0];
my ($auth,$dop_param,$i,$id,$ip,$mid,$n,$num,$num1,$num2,$opt,$options,$chnl);
my ($paket,$pipe2,$pipe_in,$pipe_out,$speed2,$speed_in,$speed_out,$name,$chnl);

$ip=$p->{ip};
$id=$p->{id};                
$num=$p->{num};              
$mid=$p->{mid};            
$auth=$p->{auth};          
$paket=$p->{paket};
$pr=$p->{speed2};      
$options=$p->{options};      
$main_num=$p->{main_num};    
$speed_in=$p->{speed_in};    
$speed_out=$p->{speed_out};


&Add_Tbl_Rule(0,$ip);
#Удаляем правила добавленые в Allow
while (!system("$IPT -t filter -D FORWARD -s $ip -d ! 10.0.0.0/8 -j ACCEPT")) {};
while (!system("$IPT -t filter -D FORWARD -d $ip -s ! 10.0.0.0/8 -j ACCEPT")) {};
while (!system("iptables -D FORWARD -s $ip -j ULOG --ulog-nlgroup 15 ")) {};
while (!system("iptables -D FORWARD -d $ip -j ULOG --ulog-nlgroup 15 ")) {};

}


В Allow
Код:
........

 ###### контрольная подчистка перед добавлением
 while (!system("$IPT -t filter -D FORWARD -s $ip -d ! 10.0.0.0/8 -j ACCEPT")) {};
 while (!system("$IPT -t filter -D FORWARD -d $ip -s ! 10.0.0.0/8 -j ACCEPT")) {};
 while (!system("iptables -D FORWARD -s $ip -j ULOG --ulog-nlgroup 15 ")) {};
 while (!system("iptables -D FORWARD -d $ip -j ULOG --ulog-nlgroup 15 ")) {};
 ######
#добавляем правила разрешающие доступ в инет
 system("$IPT -t filter -A FORWARD -s $ip -d ! 10.0.0.0/8 -j ACCEPT");
 system("$IPT -t filter -A FORWARD -d $ip -s ! 10.0.0.0/8 -j ACCEPT");
 system("iptables -I FORWARD 1 -s $ip -j ULOG --ulog-nlgroup 15 ");
 system("iptables -I FORWARD 1 -d $ip -j ULOG --ulog-nlgroup 15 ");
.....

После перехода на новый месяц решил перезагрузить билинг. И вот что он выдал в логе
Цитировать
01.08.2011 12:24:57 kernel: ! Остановка ядра
01.08.2011 12:24:59 kernel: ! ====== -  СТАРТ ЯДРА NODENY - ======
01.08.2011 12:24:59 kernel:  783 записей в базе и 290 доступ в инет блокирован, 257 не нужна авторизация
01.08.2011 12:24:59 kernel:  Для 1 записей включен режим детального сохранения трафика.
DBI connect('database=bill;host=localhost;mysql_connect_timeout=6;','bill_kernel',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) at /usr/local/nodeny/nodeny.pl line 1808
DBD::mysql::db do failed: MySQL server has gone away at /usr/local/nodeny/nodeny.pl line 512.
DBI connect('database=bill;host=localhost;mysql_connect_timeout=6;','bill_kernel',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) at /usr/local/nodeny/nodeny.pl line 488
DBD::mysql::st execute failed: MySQL server has gone away at /usr/local/nodeny/nodeny.pl line 1308.
Can't call method "do" on an undefined value at /usr/local/nodeny/nodeny.pl line 1965.
После перезагрузки сервера все заработало.
Записан
slava
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 26


Просмотр профиля Email
« Ответ #23 : 01 Августа 2011, 22:14:13 »

Похожая конфигурация работает с версией Nodeny 49.32.5 С тем же nofire.pl
Отличия только в версии iptables ядра Linux и верси perl и mysql

Система (64Bit) с Nodeny 49.32.5  работает без проблем
kernel-2.6.38-gentoo-r6
iptables v1.4.10
Mysql 5.1.51
perl 5.12.3

Система (32Bit) с Nodeny 50.32  С которой и есть проблемы
perl 5.8.8
Kernel-2.6.34-gentoo-r6
iptables v1.4.2
Mysql 5.0.54

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

Карма: 0
Offline Offline

Сообщений: 33


Просмотр профиля
« Ответ #24 : 01 Августа 2011, 22:19:51 »

 скрин самого абонента и тарифа, на котором он сидит
Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #25 : 01 Августа 2011, 23:19:36 »

Код:
df -h
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #26 : 02 Августа 2011, 01:54:36 »

Много информации, которая к делу не относится, а только путает. Насколько я понял, переход на новый месяц никакого отношения к проблеме не имеет, поскольку ядро блокирует клиента. Скорее всего, с новым месяцем вносятся какие-то изменения в логику/настройки биллинга, которые требуют перезагрузки noserver. Но данных мне недостаточно. Непонятно, имеет ли проблема массовый характер или связана конкретно с каким-то клиентом. Могут быть ситуации, когда Iptables при каких-то условиях может не создать правило? Например, ipfw в случае ошибочного правила, не выполняет остальные в потоке.
Также, я неоднократно об этом говорил: зачем приводить левую инфу? У клиента сейчас положительный баланс, зачем нам видеть его скриншоты? Нужна инфа по проблеме, а не просто побольше всего "авось поможет".
Записан
slava
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 26


Просмотр профиля Email
« Ответ #27 : 02 Августа 2011, 06:30:03 »

to: versus
места на диске хватает, на системном 4,1Гб, на разделе для баз 99Гб
to: Efendy
Проблема действительно имеет массовый характер. Такая же проблема со всеми пользователями.
В iptables в случае ошибочного правила не выполнится именно это одно или несколько ошибочных правил, все остальные, которые без ошибок выполнятся.

Привожу скрин одного из пользователей, который успел сделать до перезагрузки сервера.
« Последнее редактирование: 02 Августа 2011, 06:32:27 от slava » Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #28 : 02 Августа 2011, 23:03:49 »

Что значит до перезагрузки сервера ?  После перезагрузки все нормализовалось ?
Записан
slava
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 26


Просмотр профиля Email
« Ответ #29 : 03 Августа 2011, 06:29:45 »

Да до перезагрузки сервера командой reboot так как рестарт Nodeny выдавал ошибку mysql о которой я писал выше.
Записан
Страниц: 1 [2] 3
  Печать  
 
Перейти в:  

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