Next Pool
-
- Сообщения: 18
- Зарегистрирован: Вт июн 02, 2015 6:51 am
Next Pool
Приветствую!
Созданы два пула:
pool1 - с реальными адресами
pool2 - с серыми
в pool1 прописан в поле "Next Pool" id пула pool2
Но по исчерпании адресов из pool1 адреса из pool2 не выдаются, пользователи получают 0.0.0.0
Пулы привязаны к NAS'у.
Созданы два пула:
pool1 - с реальными адресами
pool2 - с серыми
в pool1 прописан в поле "Next Pool" id пула pool2
Но по исчерпании адресов из pool1 адреса из pool2 не выдаются, пользователи получают 0.0.0.0
Пулы привязаны к NAS'у.
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Next Pool
обновитесь к последнему снепшотуuncleVALERA писал(а):Приветствую!
Созданы два пула:
pool1 - с реальными адресами
pool2 - с серыми
в pool1 прописан в поле "Next Pool" id пула pool2
Но по исчерпании адресов из pool1 адреса из pool2 не выдаются, пользователи получают 0.0.0.0
Пулы привязаны к NAS'у.
-
- Сообщения: 18
- Зарегистрирован: Вт июн 02, 2015 6:51 am
Re: Next Pool
Здравствуйте!
Появилась аналогичная проблема, но она носит периодический характер (т.е. под одним и тем же пользователем адрес может выдаться с одного из двух пулов, а могут выдаться нули)
Проблема появилась после изменений в тарифах проведенных в вэб-интерфейсе. До этого все проработало 3 месяца.
Замечено, что при этом в таблице dv_calls появляются записи этих пользователе со статусом 11, которые висят там около минуты (субъективно)
где framed_ip_address может быть равен нулю а может и иметь реальное значение (при этом pptp имеет IP 0.0.0.0 ).
В общем теряюсь в догадках. Подскажите куда копать.
NAS - Mikrotik 6.30.2
FreeRADIUS Version 2.2.7
Билинг обновлял.
Появилась аналогичная проблема, но она носит периодический характер (т.е. под одним и тем же пользователем адрес может выдаться с одного из двух пулов, а могут выдаться нули)
Проблема появилась после изменений в тарифах проведенных в вэб-интерфейсе. До этого все проработало 3 месяца.
Замечено, что при этом в таблице dv_calls появляются записи этих пользователе со статусом 11, которые висят там около минуты (субъективно)
где framed_ip_address может быть равен нулю а может и иметь реальное значение (при этом pptp имеет IP 0.0.0.0 ).
В общем теряюсь в догадках. Подскажите куда копать.
NAS - Mikrotik 6.30.2
FreeRADIUS Version 2.2.7
Билинг обновлял.
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Next Pool
11 - это выделение ип после него сразу же должен идти аккаунтингuncleVALERA писал(а):Здравствуйте!
Появилась аналогичная проблема, но она носит периодический характер (т.е. под одним и тем же пользователем адрес может выдаться с одного из двух пулов, а могут выдаться нули)
Проблема появилась после изменений в тарифах проведенных в вэб-интерфейсе. До этого все проработало 3 месяца.
Замечено, что при этом в таблице dv_calls появляются записи этих пользователе со статусом 11, которые висят там около минуты (субъективно)
где framed_ip_address может быть равен нулю а может и иметь реальное значение (при этом pptp имеет IP 0.0.0.0 ).
В общем теряюсь в догадках. Подскажите куда копать.
NAS - Mikrotik 6.30.2
FreeRADIUS Version 2.2.7
Билинг обновлял.
если такие висят больше минуты нужно смотреть почему не приходит аккаунтинг
список статусов
http://abills.net.ua/wiki/doku.php/abil ... :dv_online
-
- Сообщения: 18
- Зарегистрирован: Вт июн 02, 2015 6:51 am
Re: Next Pool
Собственно по этим статусам и ориентировался.
В логах радиуса обнаружил вот такое:
Т.е. при авторизации не формируется Framed-IP-Address
соответственно при старте получаем Framed-IP-Address = 0.0.0.0
Не могут ли это быть блокировки в базе?
Ну и конечно же смущает
В логах радиуса обнаружил вот такое:
Код: Выделить всё
Use of uninitialized value $v in concatenation (.) or string at /usr/abills/libexec/../Abills/mysql/Auth.pm line 1646.
Cleartext-Password := "1234"Cleartext-Password := "4321"Use of uninitialized value $v in concatenation (.) or string at /usr/abills/libexec/../Abills/mysql/A
uth.pm line 1646.
Use of uninitialized value $v in concatenation (.) or string at /usr/abills/libexec/../Abills/mysql/Auth.pm line 1646.
Fri Sep 4 11:36:51 2015 : Debug: Waking up in 0.2 seconds.
Fri Sep 4 11:36:51 2015 : Debug: Thread 33 got semaphore
Fri Sep 4 11:36:51 2015 : Debug: Thread 33 handling request 8991, (236 handled so far)
Fri Sep 4 11:36:51 2015 : Info: # Executing section authorize from file /usr/local/freeradius/etc/raddb/sites-enabled/abills_default
Fri Sep 4 11:36:51 2015 : Info: +group authorize {
Fri Sep 4 11:36:51 2015 : Info: ++[preprocess] = ok
Fri Sep 4 11:36:51 2015 : Info: [mschap] Found MS-CHAP attributes. Setting 'Auth-Type = mschap'
Fri Sep 4 11:36:51 2015 : Info: ++[mschap] = ok
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair NAS-Port-Type = Virtual
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair NAS-Port = 15753224
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Service-Type = Framed-User
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair NAS-Identifier = NAS
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair MS-CHAP-Challenge = 0x13ffcb2c6a453b17c10552f3a5210d67
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Called-Station-Id = 192.168.200.2
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair User-Name = vpn210
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Calling-Station-Id = 192.168.109.18
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Framed-Protocol = PPP
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair MS-CHAP2-Response = 0x01008d3f7939508baa73c73dc7bb39eebf8f000000000000000014190c766bb7f09ecf6d3e7f6f02
2b2fecbac80c9e00f384
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair NAS-IP-Address = 192.168.225.2
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Acct-Interim-Interval = 300
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Mikrotik-Rate-Limit = 1048k/3144k
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Session-Timeout = 2290990
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Cleartext-Password = 2222
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Auth-Type = MSCHAP
Fri Sep 4 11:36:51 2015 : Info: ++[perl] = ok
Fri Sep 4 11:36:51 2015 : Info: [auth_log] expand: %{Packet-Src-IP-Address} -> 192.168.225.2
Fri Sep 4 11:36:51 2015 : Info: [auth_log] expand: /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%
d -> /var/log/freeradius/radacct/192.168.225.2/auth-detail-20150904
Fri Sep 4 11:36:51 2015 : Info: [auth_log] /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d expands to
/var/log/freeradius/radacct/192.168.225.2/auth-detail-20150904
Fri Sep 4 11:36:51 2015 : Info: [auth_log] expand: %t -> Fri Sep 4 11:36:51 2015
Fri Sep 4 11:36:51 2015 : Info: ++[auth_log] = ok
Fri Sep 4 11:36:51 2015 : Info: +} # group authorize = ok
Fri Sep 4 11:36:51 2015 : Info: Found Auth-Type = MSCHAP
Fri Sep 4 11:36:51 2015 : Info: # Executing group from file /usr/local/freeradius/etc/raddb/sites-enabled/abills_default
Fri Sep 4 11:36:51 2015 : Info: +group MS-CHAP {
Fri Sep 4 11:36:51 2015 : Info: [mschap] Creating challenge hash with username: vpn210
Fri Sep 4 11:36:51 2015 : Info: [mschap] Client is using MS-CHAPv2 for vpn210, we need NT-Password
Fri Sep 4 11:36:51 2015 : Info: [mschap] adding MS-CHAPv2 MPPE keys
Fri Sep 4 11:36:51 2015 : Info: ++[mschap] = ok
Fri Sep 4 11:36:51 2015 : Info: +} # group MS-CHAP = ok
Fri Sep 4 11:36:51 2015 : Info: # Executing section post-auth from file /usr/local/freeradius/etc/raddb/sites-enabled/abills_default
Fri Sep 4 11:36:51 2015 : Info: +group post-auth {
Fri Sep 4 11:36:51 2015 : Info: [reply_log] expand: %{Packet-Src-IP-Address} -> 192.168.225.2
Fri Sep 4 11:36:51 2015 : Info: [reply_log] expand: /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/reply-detail-%Y%m
%d -> /var/log/freeradius/radacct/192.168.225.2/reply-detail-20150904
Fri Sep 4 11:36:51 2015 : Info: [reply_log] /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/reply-detail-%Y%m%d expands
to /var/log/freeradius/radacct/192.168.225.2/reply-detail-20150904
Fri Sep 4 11:36:51 2015 : Info: [reply_log] expand: %t -> Fri Sep 4 11:36:51 2015
Fri Sep 4 11:36:51 2015 : Info: ++[reply_log] = ok
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair NAS-Port-Type = Virtual
Fri Sep 4 11:36:51 2015 : Info: +} # group post-auth = ok
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair NAS-Port = 15753224
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Service-Type = Framed-User
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair NAS-Identifier = NAS
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Called-Station-Id = 192.168.200.2
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair User-Name = vpn210
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Acct-Delay-Time = 0
Fri Sep 4 11:36:51 2015 : Info: Finished request 8991.
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: ERROR: Failed to create pair Event-Timestamp = Сен 4 2015 11:36:51 MSK
Fri Sep 4 11:36:51 2015 : Debug: Going to the next request
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Calling-Station-Id = 192.168.109.18
Fri Sep 4 11:36:51 2015 : Debug: Thread 33 waiting to be assigned a request
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Acct-Session-Id = 81705f0d
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Acct-Authentic = RADIUS
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Framed-Protocol = PPP
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Framed-IP-Address = 0.0.0.0
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair NAS-IP-Address = 192.168.225.2
Fri Sep 4 11:36:51 2015 : Debug: rlm_perl: Added pair Acct-Status-Type = Start
Fri Sep 4 11:36:51 2015 : Info: ++[perl] = ok
Fri Sep 4 11:36:51 2015 : Info: +} # group accounting = ok
Fri Sep 4 11:36:51 2015 : Info: Finished request 8992.
Fri Sep 4 11:36:51 2015 : Debug: Going to the next request
Fri Sep 4 11:36:51 2015 : Debug: Thread 37 waiting to be assigned a request
Fri Sep 4 11:36:51 2015 : Debug: Waking up in 0.2 seconds.
соответственно при старте получаем Framed-IP-Address = 0.0.0.0
Не могут ли это быть блокировки в базе?
Ну и конечно же смущает
Код: Выделить всё
Use of uninitialized value $v in concatenation (.) or string at /usr/abills/libexec/../Abills/mysql/Auth.pm line 1646.
Cleartext-Password := "1234"Cleartext-Password := "4321"Use of uninitialized value $v in concatenation (.) or string at /usr/abills/libexec/../Abills/mysql/A
uth.pm line 1646.
Use of uninitialized value $v in concatenation (.) or string at /usr/abills/libexec/../Abills/mysql/Auth.pm line 1646.
-
- Сообщения: 18
- Зарегистрирован: Вт июн 02, 2015 6:51 am
Re: Next Pool
Прошу прощения
в это строчке я добавлял отладку:
в это строчке я добавлял отладку:
Код: Выделить всё
while(my ($k, $v) = each %insert_hash) {
`echo "$self->{USER_NAME} : $k, $v " >> /tmp/auth.log`;
if($k eq 'framed_ip_address' && $v) {
-
- Сообщения: 18
- Зарегистрирован: Вт июн 02, 2015 6:51 am
Re: Next Pool
Дальнейшие исследования показали, что функция get_ip возвращает 0 (напомню, что проблема проявляет себя не при каждом подключении)
Таким образом мы попадаем в условие elsif ($ip eq '0') {
Копаем дальше
Код: Выделить всё
# Return radius attr
if ($self->{IP} ne '0') {
$RAD_PAIRS->{'Framed-IP-Address'} = "$self->{IP}";
if (! $self->{REASSIGN}) {
$self->online_add({ %$attr,.
NAS_ID => $NAS->{NAS_ID},
FRAMED_IP_ADDRESS => "INET_ATON('$self->{IP}')",
NAS_IP_ADDRESS => $RAD->{NAS_IP_ADDRESS},
});
}
delete $self->{REASSIGN};
}
else {
my $ip = $self->get_ip($NAS->{NAS_ID}, "$RAD->{NAS_IP_ADDRESS}", { TP_IPPOOL => $self->{TP_IPPOOL} });
`echo " -- get_ip : $ip " >> /tmp/auth.log`;
if ($ip eq '-1') {
$RAD_PAIRS->{'Reply-Message'} = "Rejected! There is no free IPs in address pools (USED: $self->{USED_IPS})";
return 1, $RAD_PAIRS;
}
elsif ($ip eq '0') {
#$RAD_PAIRS->{'Reply-Message'}="$self->{errstr} ($NAS->{NAS_ID})";
#return 1, $RAD_PAIRS;
$RAD_PAIRS->{'Framed-IP-Address'} = "1.1.1.1";
}
else {
$RAD_PAIRS->{'Framed-IP-Address'} = "$ip";
}
}
Копаем дальше
-
- Сообщения: 18
- Зарегистрирован: Вт июн 02, 2015 6:51 am
Re: Next Pool
В общем проблема все таки возникает тогда, когда первый пул занят и делается попытка получить адрес из второго пула.
Причем иногда адрес все таки выдаются.
Оба пула привязаны к серверу доступа.
Причем иногда адрес все таки выдаются.
Оба пула привязаны к серверу доступа.
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Next Pool
нужно поставить дебаг вот тут
и тогда станет ясно появляется или нет условие перехода по пулам
Код: Выделить всё
if($next_pool_id) {
$self->get_ip($nas_num, $nas_ip, { TP_IPPOOL => $next_pool_id });
}
и тогда станет ясно появляется или нет условие перехода по пулам
-
- Сообщения: 18
- Зарегистрирован: Вт июн 02, 2015 6:51 am
Re: Next Pool
Как раз добрался до этого места.
Условия соблюдаются...
Однако :
И все работает.
В противном случае доходим до конца функции и получаем return 0;
Все верно?
Условия соблюдаются...
Однако :
Код: Выделить всё
if($next_pool_id) {
my $tmp123 = $self->get_ip($nas_num, $nas_ip, { TP_IPPOOL => $next_pool_id });
return $tmp123;
}
В противном случае доходим до конца функции и получаем return 0;
Все верно?
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Next Pool
uncleVALERA писал(а):Как раз добрался до этого места.
Условия соблюдаются...
Однако :
И все работает.Код: Выделить всё
if($next_pool_id) { my $tmp123 = $self->get_ip($nas_num, $nas_ip, { TP_IPPOOL => $next_pool_id }); return $tmp123; }
В противном случае доходим до конца функции и получаем return 0;
Все верно?
да все правильно
странно куда возвраты делись