forum.bitel.ru http://forum.bitel.ru/ |
|
radius, не работает checkDuplicate http://forum.bitel.ru/viewtopic.php?f=44&t=8267 |
Страница 1 из 1 |
Автор: | borisk [ 13 июл 2013, 14:28 ] |
Заголовок сообщения: | radius, не работает checkDuplicate |
Добрый день! Есть SE100, обеспечивающий доступ пользователям по PPPoE. Устройство использует SmartEdgeServiceActivator и SmartEdgeProtocolHandler. Настроено: Код: # Вендор атрибута, где хранится MAC-адрес radius.macAddress.vendor=2352 # Код атрибута, где хранится MAC-адрес radius.macAddress.type=145 # Префикс атрибута (если есть), где хранится MAC-адрес. Например, для cisco avpair radius.macAddress.prefix= radius.connection.checkDuplicate=3 Но, увы, получаем следующее. Почему же не работает checkDuplicate? Очень надо, дикие проблемы в сети. Код: Authenticator: {57 D0 23 65 A2 AA C6 83 72 21 B5 2E 25 D1 29 51} Attributes: User-Name=viktorm NAS-Port-Id=2/16 vlan-id 100 pppoe 10242 NAS-Identifier=bras0 User-Password=123456 NAS-IP-Address=91.217.108.128 NAS-Port=536881154 Service-Type=2 Framed-Protocol=1 NAS-Port-Type=5 Platform-Type=4 Medium-Type=11 OS-Version=11.1.2.6 Mac-Addr=c8-60-00-49-07-af NAS-Real-Port=536871012 07-13/11:58:35 INFO [rdsLstnr-p-8-t-364] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS: Packet type: Access-Request Identifier: 78 Authenticator: {57 D0 23 65 A2 AA C6 83 72 21 B5 2E 25 D1 29 51} Attributes: User-Name=viktorm NAS-Port-Id=2/16 vlan-id 100 pppoe 10242 NAS-Identifier=bras0 User-Password=123456 NAS-IP-Address=91.217.108.128 NAS-Port=536881154 Service-Type=2 Framed-Protocol=1 Calling-Station-Id=c8-60-00-49-07-af NAS-Port-Type=5 Platform-Type=4 Medium-Type=11 OS-Version=11.1.2.6 Mac-Addr=c8-60-00-49-07-af NAS-Real-Port=536871012 Common options: {macAddress=c8-60-00-49-07-af} 07-13/11:58:35 INFO [rdsLstnr-p-8-t-364] InetNas - Search by username=viktorm 07-13/11:58:35 INFO [rdsLstnr-p-8-t-364] InetRadiusProcessor - [username=viktorm] Authenticated as inetServId:946 07-13/11:58:35 INFO [rdsLstnr-p-8-t-364] InetApplication - inetServ[id=946] balance ok: -98.20 [-300.00] 07-13/11:58:35 INFO [rdsLstnr-p-8-t-364] InetApplication - Too many sessions. 07-13/11:58:35 INFO [rdsLstnr-p-8-t-364] InetRadiusProcessor - Return code=3 07-13/11:58:35 INFO [rdsLstnr-p-8-t-364] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS: Packet type: Access-Reject Identifier: 78 Authenticator: {} Attributes: Reply-Message=3 Process time auth: 3 Код: Информация о версии:
Клиент: вер. 5.2 сборка 1183 от 29.06.2013 11:05:32 os: Windows XP; java: Java HotSpot(TM) Client VM, v.1.6.0_37 Сервер: вер. 5.2 сборка 1517 от 03.07.2013 02:14:48 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_43 card вер. 5.2 сборка 203 от 21.06.2013 20:24:27 enaza вер. 5.2 сборка 47 от 26.12.2012 17:59:24 gorod вер. 5.2 сборка 155 от 25.03.2013 14:32:28 inet вер. 5.2 сборка 1201 от 27.06.2013 15:50:26 mps вер. 5.2 сборка 169 от 24.04.2013 11:02:52 npay вер. 5.2 сборка 203 от 27.05.2013 16:59:08 rentsoft вер. 5.2 сборка 45 от 26.12.2012 17:59:45 |
Автор: | snark [ 13 июл 2013, 16:38 ] |
Заголовок сообщения: | Re: radius, не работает checkDuplicate |
borisk писал(а): Код: 07-13/11:58:35 INFO [rdsLstnr-p-8-t-364] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS: Packet type: Access-Reject Identifier: 78 Authenticator: {} Attributes: Reply-Message=3 Вроде все нормально, т.к. для повторной сессии RADIUS отвечает Access-Reject. |
Автор: | borisk [ 13 июл 2013, 17:55 ] |
Заголовок сообщения: | Re: radius, не работает checkDuplicate |
Как нормально? ![]() Код: radius.connection.checkDuplicate=3 Должен сбросить предыдущую сессию и пустить новую. IMHO и AFAIK ![]() |
Автор: | borisk [ 14 июл 2013, 17:49 ] |
Заголовок сообщения: | Re: radius, не работает checkDuplicate |
Еще дополнительная информация, Calling-Station-Id устанавливается моим классом, вот таким: Код: package ru.usinsknet.modules.inet.dyn.redback;
import ru.bitel.bgbilling.modules.inet.dyn.device.redback.*; import org.apache.log4j.Logger; import ru.bitel.bgbilling.kernel.network.dhcp.DhcpProtocolHandler; import ru.bitel.bgbilling.kernel.network.radius.RadiusDictionary; import ru.bitel.bgbilling.kernel.network.radius.RadiusPacket; import ru.bitel.bgbilling.kernel.network.radius.RadiusProtocolHandler; import ru.bitel.bgbilling.modules.inet.api.common.bean.InetDevice; import ru.bitel.bgbilling.modules.inet.api.common.bean.InetDeviceType; import ru.bitel.bgbilling.modules.inet.api.common.bean.InetServ; import ru.bitel.bgbilling.modules.inet.dyn.device.radius.AbstractRadiusProtocolHandler; import ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor; import ru.bitel.bgbilling.server.util.Setup; import ru.bitel.common.ParameterMap; import ru.bitel.common.Utils; import ru.bitel.common.sql.ConnectionSet; import bitel.billing.server.radius.RadiusStandartAttributes; public class SmartEdgeProtocolHandler extends ru.bitel.bgbilling.modules.inet.dyn.device.redback.SmartEdgeProtocolHandler implements RadiusProtocolHandler, DhcpProtocolHandler { private static final Logger logger = Logger.getLogger( SmartEdgeProtocolHandler.class ); @Override public void preprocessAccessRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet ) throws Exception { super.preprocessAccessRequest( request, response, connectionSet ); setCallingStationId( request ); } @Override public void preprocessAccountingRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet ) throws Exception { super.preprocessAccountingRequest( request, response, connectionSet ); setCallingStationId( request ); } /** * Установка MAC-адреса из RADIUS-атрибута. * @param request */ protected void setCallingStationId( final RadiusPacket request ) { final Object macAddress = getAttributeValue( request, 2352, 145, null ); if( macAddress != null ) { if( macAddress instanceof String ) { request.setStringAttribute( -1, RadiusStandartAttributes.Calling_Station_Id, (String)macAddress); } else { logger.error( "Unknown type for macAddress attribute." ); } } } } |
Автор: | Amir [ 14 июл 2013, 22:39 ] |
Заголовок сообщения: | Re: radius, не работает checkDuplicate |
Сейчас все режимы закрывают/сбрасывают старую сессию, т.е. пустить должен только при следующей авторизации (как и в Dialup). |
Автор: | borisk [ 14 июл 2013, 22:48 ] |
Заголовок сообщения: | Re: radius, не работает checkDuplicate |
Не понял? Так в том то и дело что не пускает. Пользователь долбится до посинения, пока вручную сессию не прибьешь. |
Автор: | borisk [ 15 июл 2013, 14:45 ] |
Заголовок сообщения: | Re: radius, не работает checkDuplicate |
Amir, еще бы вот эту проблемку решить. |
Автор: | Amir [ 15 июл 2013, 16:28 ] |
Заголовок сообщения: | Re: radius, не работает checkDuplicate |
Выложили обновление, не забудьте сделать бэкап старых библиотек. Цитата: Inet: radius.connection.checkDuplicate=2|3 отрабатывал некорректно.
Inet: radius.connection.checkDuplicate=4 (попытаться закрыть, подождать 5с и завершить), 5 (попытаться закрыть, завершить и пустить), 6 (завершить и пустить). |
Автор: | borisk [ 15 июл 2013, 16:29 ] |
Заголовок сообщения: | Re: radius, не работает checkDuplicate |
Не совсем понял, то есть старые параметры 1-3 нельзя использовать? Или в чем тонкая разница между 3 и 6? |
Автор: | Amir [ 15 июл 2013, 16:35 ] |
Заголовок сообщения: | Re: radius, не работает checkDuplicate |
Цитата: Не совсем понял, то есть старые параметры 1-3 нельзя использовать? Можно, те исправили и добавили новые. Цитата: Или в чем тонкая разница между 3 и 6? 1-3 (и теперь 4), как писал ранее, возвращают ошибку при авторизации, т.е. первый раз абонента не пустит, на второй должно пустить. 5 и 6 тоже самое, что 2 и 3, только должно пустить абонента сразу (как-будто нет ошибки "превышено кол-во соединений").
|
Автор: | borisk [ 15 июл 2013, 16:42 ] |
Заголовок сообщения: | Re: radius, не работает checkDuplicate |
Понял, спасибо! Сейчас будем тестировать. |
Автор: | borisk [ 15 июл 2013, 17:55 ] |
Заголовок сообщения: | Re: radius, не работает checkDuplicate |
Спасибо, работает! |
Автор: | borisk [ 30 июл 2013, 21:25 ] |
Заголовок сообщения: | Re: radius, не работает checkDuplicate |
Возник странный эффект. Пока не могу понять связано это или нет. В момент когда сессия у пользователя уже есть (например подвисла), а на сервисе назначен статический IP, то система сессию старую заканчивает, но выдает IP из динамического пула ![]() Цитата: radius.connection.checkDuplicate=5 Цитата: Клиент: вер. 5.2 сборка 1185 от 15.07.2013 15:12:43
os: Windows XP; java: Java HotSpot(TM) Client VM, v.1.6.0_37 Сервер: вер. 5.2 сборка 1519 от 15.07.2013 15:13:06 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_43 card вер. 5.2 сборка 203 от 21.06.2013 20:24:27 enaza вер. 5.2 сборка 47 от 26.12.2012 17:59:24 gorod вер. 5.2 сборка 155 от 25.03.2013 14:32:28 inet вер. 5.2 сборка 1206 от 15.07.2013 16:17:21 mps вер. 5.2 сборка 169 от 24.04.2013 11:02:52 npay вер. 5.2 сборка 203 от 27.05.2013 16:59:08 rentsoft вер. 5.2 сборка 45 от 26.12.2012 17:59:45 |
Автор: | a.vozny [ 11 дек 2013, 13:43 ] |
Заголовок сообщения: | Re: radius, не работает checkDuplicate |
как в логах отражается срабатывание radius.connection.checkDuplicate ? |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |