BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 27 апр 2024, 22:03

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 210 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 7  След.
Автор Сообщение
СообщениеДобавлено: 25 авг 2011, 14:54 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
Администратор писал(а):
Цитата:
Что делает скрипт поведения который весит на изменении сервиса договора?

Он генерирует логин сервиса, который состоит из remote и circuit id. Т.е. при сохранении сервиса он генерирует этот логин сервиса основываясь на привязке к устройству и порту.


1. Возьмите последний dictionary.xml в BGInetAccess или Accounting. 2352 это вендор Redback.
2. У вас к устройству типу редбека вероятнее всего не привязан динамический класс ru.bitel.bgbilling.inet.dyn.device.redback.SmartEdgeProtocolHandler - скрипт процессора протокола.
Он должен предобрабатывать RADIUS запросы и в запросе создавать атрибут User-Name c circuitId:remoteId.


Да, у меня последний dictionary.xml

Однако
Код:
08-25/15:44:45  INFO [radiusListener-p-10-t-4] RadiusListenerWorker - REQUEST:
Packet type: Access-Request
Identifier: 160
Authenticator: {EB A8 D2 01 5F E3 5A 45 E8 79 C3 7A C3 9D 38 3B}
Attributes:
  User-Name=00:30:67:54:91:d8
  NAS-Port-Id=2/2 clips 131233
  NAS-Identifier=Redback
  User-Password=Redback
  NAS-Port=33685504
  Service-Type=5
  NAS-Port-Type=5
  Platform-Type=4
  Medium-Type=11
  Agent-Remote-Id={00 06 00 22 B0 04 6F 64}
  UNKNOWN[2352-202]={3D 3D 07 01 00 30 67 54 91 D8}
  UNKNOWN[2352-202]={0C 0C 0B 64 69 6D 65 64 72 6F 6C 2D 70 63}
  Agent-Circuit-Id={00 04 00 16 00 01}
  OS-Version=6.4.1.1
  Mac-Addr=00-30-67-54-91-d8
  UNKNOWN[2352-125]={4D 53 46 54 20 35 2E 30}
  NAS-Real-Port=33685504
  UNKNOWN[3561--1]={02 0A 00 06 00 22 B0 04 6F 64}
  UNKNOWN[3561--1]={01 08 00 04 00 16 00 01}

08-25/15:44:45  INFO [radiusListener-p-10-t-4] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS:
Packet type: Access-Request
Identifier: 160
Authenticator: {EB A8 D2 01 5F E3 5A 45 E8 79 C3 7A C3 9D 38 3B}
Attributes:
  User-Name=00060022b0046f64:000400160001
  NAS-Port-Id=2/2 clips 131233
  NAS-Identifier=Redback
  User-Password=Redback
  NAS-Port=33685504
  Service-Type=5
  Calling-Station-Id=0030675491d8
  NAS-Port-Type=5
  Platform-Type=4
  Medium-Type=11
  Agent-Remote-Id={00 06 00 22 B0 04 6F 64}
  UNKNOWN[2352-202]={3D 3D 07 01 00 30 67 54 91 D8}
  UNKNOWN[2352-202]={0C 0C 0B 64 69 6D 65 64 72 6F 6C 2D 70 63}
  Agent-Circuit-Id={00 04 00 16 00 01}
  OS-Version=6.4.1.1
  Mac-Addr=00-30-67-54-91-d8
  UNKNOWN[2352-125]={4D 53 46 54 20 35 2E 30}
  NAS-Real-Port=33685504
  UNKNOWN[3561--1]={02 0A 00 06 00 22 B0 04 6F 64}
  UNKNOWN[3561--1]={01 08 00 04 00 16 00 01}

08-25/15:44:45 DEBUG [radiusListener-p-10-t-4] RadiusProcessor - Create new radius session.
08-25/15:44:45  INFO [radiusListener-p-10-t-4] InetRadiusProcessor - [username=00060022b0046f64:000400160001] InetServ not found.
08-25/15:44:45  INFO [radiusListener-p-10-t-4] InetRadiusProcessor - Return code=1
08-25/15:44:45  INFO [radiusListener-p-10-t-4] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS:
Packet type: Access-Reject
Identifier: 160
Authenticator: {}
Attributes:

Process time auth: 2

08-25/15:44:45 DEBUG [radiusListener-p-10-t-4] ProcessorRequest - Sending to /10.147.0.49:1812
08-25/15:44:45  INFO [radiusListener-p-10-t-4] InetRadiusListenerWorker - RESPONSE:
Packet type: Access-Reject
Identifier: 160
Authenticator: {70 B3 AD D1 EC CE E3 C9 C7 62 ED 70 82 3D 5C 07}
Attributes:


Ругается только на
Код:
access 08-25/15:50:02  WARN [main] RadiusDictionary - Radius attribute Qos-Policy-Policing not found in dictionary!
access 08-25/15:50:02  WARN [main] RadiusDictionary - Radius attribute Qos-Policy-Metering not found in dictionary!
access 08-25/15:50:02  WARN [main] RadiusDictionary - Radius attribute Qos-Policy-Policing not found in dictionary!
access 08-25/15:50:02  WARN [main] RadiusDictionary - Radius attribute Qos-Policy-Metering not found in dictionary!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 авг 2011, 14:59 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
Администратор писал(а):
Автор статьи будет на следующей неделе только :(
Там есть нюансы с коммутаторами: они по-разному ставят опцию remoteId, как я понял.
Данный клиент почему-то сделал динамическим кодом предобработки так, что от remoteId остаётся только последний байт.
Т.к. в предобработке RADIUS пакета в UserName добавляется после : послений бай, а в предобработке DHCP пакета - remoteId опция также обрезается.
Вот код его процессора протокола.

А вот почему он так сделал - только на следующей неделе узнать можно. Но вам для теста критично не должно быть, на первых порах можно remoteId зашить в код динамических классов..


Да тут понятно, у автора разное оборудование на доступе, которое выдает разные remoteId, интересует в данном случае только номер порта.

У меня ru.bitel.bgbilling.inet.dyn.device.redback.SmartEdgeProtocolHandler этот не компилируется, со словами:
Код:
cannot find symbol
symbol  : class SmartEdgeServiceActivator
location: class ru.clink.bgbilling.module.inet.device.redback.SmartEdgeProtocolHandler   SmartEdgeProtocolHandler.java   12   56

Видать нужен сервис активатор соответствующий. Выложите ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 сен 2011, 12:55 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Код:
location: class ru.clink.bgbilling.module.inet.device.redback.SmartEdgeProtocolHandler   SmartEdgeProtocolHandler.java   12   56

Не нашёл вообще на 12ой строке там упоминание про активатор. Можете целиком выложить исходник вашего SmartEdgeProtocolHandler?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 сен 2011, 10:28 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
Администратор писал(а):
Код:
location: class ru.clink.bgbilling.module.inet.device.redback.SmartEdgeProtocolHandler   SmartEdgeProtocolHandler.java   12   56

Не нашёл вообще на 12ой строке там упоминание про активатор. Можете целиком выложить исходник вашего SmartEdgeProtocolHandler?

Я использовал выложенный вами ранее :), 12 строка в нем
Код:
private static final Logger log = Logger.getLogger( SmartEdgeServiceActivator.class );


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 сен 2011, 15:03 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Код активатора:
Код:
package ru.clink.bgbilling.module.inet.device.redback;

import java.net.InetAddress;
import java.util.Map;


import org.apache.log4j.Logger;

import ru.bitel.bgbilling.kernel.event.EventProcessor;
import ru.bitel.bgbilling.kernel.network.radius.RadiusAttributeSet;
import ru.bitel.bgbilling.kernel.network.radius.RadiusDictionary;
import ru.bitel.bgbilling.kernel.network.radius.RadiusPacket;
import ru.bitel.bgbilling.modules.inet.access.InetConnectionManager;
import ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorAdapter;
import ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorEvent;
import ru.bitel.bgbilling.modules.inet.api.common.bean.InetConnection;
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.radius.PodSupport;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.ParameterMap;

public class SmartEdgeServiceActivator
   extends ServiceActivatorAdapter
{
   private static final Logger log = Logger.getLogger( SmartEdgeServiceActivator.class );
   
   private PodSupport pod;
   private RadiusAttributeSet lockAttributes;
   private Map<Integer, RadiusAttributeSet> optionSets;
   
   private RadiusAttributeSet serviceCloseAttributes;

   @Override
    public Object init( Setup setup, int moduleId, InetDevice device, InetDeviceType deviceType, ParameterMap deviceParams )
        throws Exception
    {
      String nasHost = deviceParams.get( "nas.radius.host", device.getHost() );
      InetAddress nasHostAddr = InetAddress.getByName( nasHost );
      int nasPort = deviceParams.getInt( "nas.radius.port", 1700 );

      byte[] nasSecret = deviceParams.get( "nas.secret", device.getSecret() ).getBytes();

      pod = new PodSupport( nasHostAddr, nasPort, nasSecret );

      log.info( "Init script for device: " + device.getId() );

      // атрибуты отправляются в CoA при необходимости сброса
      lockAttributes = RadiusAttributeSet.newRadiusAttributeSet( deviceParams.get( "redirect.attributes", "" ) );

      // RADIUS атрибуты по ключу опции
      optionSets = RadiusAttributeSet.newRadiusAttributeSetMap( deviceParams, "option.", "attributes" );
      
      serviceCloseAttributes = RadiusAttributeSet.newRadiusAttributeSet( deviceParams.get( "close.attributes", "Deactivate-Service-Name:1=RSE-SVC-EXT" ) );

      log.info( "Options map size: " + optionSets.size() );
      
      return null;      
    }

   @Override
    public Object destroy()
        throws Exception
    {
      pod.destroy();
      return null;
    }

   @Override
    public Object connectionClose( ServiceActivatorEvent event )
        throws Exception
    {
      log.info( "Connection close!" );

      InetConnection connection = event.getConnection();
      RadiusPacket packet = pod.createModifyRequest();
      
      preparePacket( packet, connection );

      packet.addAttributes( lockAttributes );

      // убрать из DHCP, чтобы выдало NaK
      EventProcessor.getInstance().request( new InetConnectionManager.ConnectionRemoveEvent( connection ) );

      log.info( "Send CoA lock: \n" + packet );

      return pod.sendAsync( packet );
    }
   
   @Override
    public Object connectionModify( ServiceActivatorEvent event )
        throws Exception
    {
      log.info( "Connection modify!" );
      log.info( "oldState: " + event.getOldState() + "; newState: " + event.getNewState() + "; oldOptionSet: " + event.getOldOptions() + "; newOptionSet: " + event.getNewOptions() );

      InetConnection connection = event.getConnection();

      // это Reject-To-Accept коннект, нужно сбросить для инициации нормального коннекта
      if( event.getOldState() == InetServ.STATE_DISABLE && event.getNewState() == InetServ.STATE_ENABLE )
      {
         // убрать из DHCP, чтобы выдало NaK
         EventProcessor.getInstance().request( new InetConnectionManager.ConnectionRemoveEvent( connection ) );
         
         return null;
      }
      else
      {
         /*RadiusPacket packet = pod.createModifyRequest();
      
         preparePacket( packet, connection );

         for( Integer optionId : event.getNewOptions() )
         {
            RadiusAttributeSet attrs = optionSets.get( optionId );
            if( attrs != null )
            {
               ByteBuffer rse = attrs.getAttribute(2352, 190).getData();
               attrs.removeAttributes(2352, 191);
               attrs.removeAttributes(2352, 190);
               //String rse = attrs.getStringAttribute(2352, 190, "");
               //RadiusAttribute.RadiusAttributeString rsn =  new RadiusAttribute.RadiusAttributeString(2352, 204, 1, "RSE-SVC-EXT");
               RadiusAttribute.RadiusAttributeString rsn =  new RadiusAttribute.RadiusAttributeString(2352, 204, rse);
               attrs.addAttribute(rsn);
               packet.addAttributes( attrs );
            }
         }

         log.info( "Send CoA: \n" + packet );

         return pod.sendAsync( packet );*/
         RadiusPacket packet = pod.createModifyRequest();
         packet.addAttributes( serviceCloseAttributes );
         preparePacket( packet, connection );

         log.info( "Send CoA: \n" + packet );

         pod.send( packet );   

         packet = pod.createModifyRequest();
      
         preparePacket( packet, connection );

         for( Integer optionId : event.getNewOptions() )
         {
            RadiusAttributeSet attrs = optionSets.get( optionId );
            if( attrs != null )
            {
               packet.addAttributes( attrs );
            }
         }

         log.info( "Send CoA: \n" + packet );

         return pod.sendAsync( packet );   
      }
    }
   
   private void preparePacket( RadiusPacket packet, InetConnection connection )
   {
      packet.setStringAttribute( -1, RadiusDictionary.Acct_Session_Id, connection.getAcctSessionId() );
   }   
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 сен 2011, 12:01 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
В логах access сервера вот такие слова:


Код:
root@TestBGBilling:/usr/local/BGInetAccess/log# cat error.log
access 09-09/13:00:43 ERROR [main] InetDeviceRuntime - java.lang.ClassNotFoundException: ru.bitel.bgbilling.inet.dyn.device.redback.SmartEdgeProtocolHandler
ru.bitel.bgbilling.common.BGException: java.lang.ClassNotFoundException: ru.bitel.bgbilling.inet.dyn.device.redback.SmartEdgeProtocolHandler
        at ru.bitel.bgbilling.kernel.dynamic.server.DynamicClassManager.loadClass(DynamicClassManager.java:113)
        at ru.bitel.bgbilling.kernel.dynamic.server.DynamicClassManager.newInstance(DynamicClassManager.java:149)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime.reloadScripts(InetDeviceRuntime.java:170)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime.<init>(InetDeviceRuntime.java:117)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntimeMap.loadDevice(InetDeviceRuntimeMap.java:263)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntimeMap.loadDevice(InetDeviceRuntimeMap.java:278)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntimeMap.load(InetDeviceRuntimeMap.java:190)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntimeMap.init(InetDeviceRuntimeMap.java:50)
        at ru.bitel.bgbilling.modules.inet.runtime.InetApplication.<init>(InetApplication.java:129)
        at ru.bitel.bgbilling.modules.inet.access.Access.<init>(Access.java:64)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
        at ru.bitel.bgbilling.kernel.application.server.Application.processBean(Application.java:337)
        at ru.bitel.bgbilling.kernel.application.server.Application.process(Application.java:227)
        at ru.bitel.bgbilling.kernel.application.server.Application.processChildren(Application.java:528)
        at ru.bitel.bgbilling.kernel.application.server.Application.application(Application.java:197)
        at ru.bitel.bgbilling.kernel.application.server.Application.<init>(Application.java:152)
        at ru.bitel.bgbilling.kernel.application.server.Application.main(Application.java:582)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at ru.bitel.common.bootstrap.Boot.boot(Boot.java:129)
        at ru.bitel.common.bootstrap.Boot.main(Boot.java:178)
Caused by: java.lang.ClassNotFoundException: ru.bitel.bgbilling.inet.dyn.device.redback.SmartEdgeProtocolHandler
        at ru.bitel.bgbilling.kernel.dynamic.server.DatabaseClassLoader.findClass(DatabaseClassLoader.java:44)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
        at ru.bitel.bgbilling.kernel.dynamic.server.DynamicClassManager.loadClass(DynamicClassManager.java:106)
        ... 25 more
access 09-09/13:00:43 ERROR [main] InetDeviceRuntime - java.lang.ClassNotFoundException: ru.bitel.bgbilling.inet.dyn.device.redback.SmartEdgeServiceActivator
ru.bitel.bgbilling.common.BGException: java.lang.ClassNotFoundException: ru.bitel.bgbilling.inet.dyn.device.redback.SmartEdgeServiceActivator
        at ru.bitel.bgbilling.kernel.dynamic.server.DynamicClassManager.loadClass(DynamicClassManager.java:113)
        at ru.bitel.bgbilling.kernel.dynamic.server.DynamicClassManager.newInstance(DynamicClassManager.java:149)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime.reloadScripts(InetDeviceRuntime.java:198)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime.<init>(InetDeviceRuntime.java:117)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntimeMap.loadDevice(InetDeviceRuntimeMap.java:263)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntimeMap.loadDevice(InetDeviceRuntimeMap.java:278)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntimeMap.load(InetDeviceRuntimeMap.java:190)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntimeMap.init(InetDeviceRuntimeMap.java:50)
        at ru.bitel.bgbilling.modules.inet.runtime.InetApplication.<init>(InetApplication.java:129)
        at ru.bitel.bgbilling.modules.inet.access.Access.<init>(Access.java:64)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
        at ru.bitel.bgbilling.kernel.application.server.Application.processBean(Application.java:337)
        at ru.bitel.bgbilling.kernel.application.server.Application.process(Application.java:227)
        at ru.bitel.bgbilling.kernel.application.server.Application.processChildren(Application.java:528)
        at ru.bitel.bgbilling.kernel.application.server.Application.application(Application.java:197)
        at ru.bitel.bgbilling.kernel.application.server.Application.<init>(Application.java:152)
        at ru.bitel.bgbilling.kernel.application.server.Application.main(Application.java:582)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at ru.bitel.common.bootstrap.Boot.boot(Boot.java:129)
        at ru.bitel.common.bootstrap.Boot.main(Boot.java:178)
Caused by: java.lang.ClassNotFoundException: ru.bitel.bgbilling.inet.dyn.device.redback.SmartEdgeServiceActivator
        at ru.bitel.bgbilling.kernel.dynamic.server.DatabaseClassLoader.findClass(DatabaseClassLoader.java:44)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
        at ru.bitel.bgbilling.kernel.dynamic.server.DynamicClassManager.loadClass(DynamicClassManager.java:106)
        ... 25 more


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 сен 2011, 13:35 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Вы скомпилировали динамический код? Ошибок не дало?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 сен 2011, 13:56 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
Администратор писал(а):
Вы скомпилировали динамический код? Ошибок не дало?

Да, если компилировать все сразу ошибок нет, но если по отдельности, то выдает ошибку о которой я писал выше.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 сен 2011, 10:24 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Ну после того как всё скомпилировали в логах акцесс сервера ошибки пропали?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 сен 2011, 12:09 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
Администратор писал(а):
Ну после того как всё скомпилировали в логах акцесс сервера ошибки пропали?

Дак в том то и дело, что нет.
Компилируется все нормально, а в логах access сервера такие ошибки.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 сен 2011, 13:12 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2009, 15:28
Сообщения: 185
Откуда: Магнитогорск
Карма: 6
Кажется нужно перезапустить Access, либо нажать "Перечитать конфигурацию на серверах". Пробовали?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 сен 2011, 13:43 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
rush писал(а):
Кажется нужно перезапустить Access, либо нажать "Перечитать конфигурацию на серверах". Пробовали?

Да.
Еще раз перезапустил все сервера. Ошибка так и болтается.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 сен 2011, 10:26 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
Подергал в Типах устройств обработчики, все заработало, ошибок нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 сен 2011, 14:30 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
Подскажите пожалуйста, что означают такие сообщения:


Код:
09-19/14:46:08  INFO [radiusListener-p-10-t-10] SmartEdgeServiceActivator - circID
09-19/14:46:08  INFO [radiusListener-p-10-t-10] SmartEdgeServiceActivator - 00040028000D
09-19/14:46:08  INFO [radiusListener-p-10-t-10] SmartEdgeServiceActivator - Format of Option 82 is D-link
09-19/14:46:08  INFO [radiusListener-p-10-t-10] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS:
Packet type: Access-Request
Identifier: 245
Authenticator: {79 E7 BC E7 4D F9 1D B1 95 24 A4 18 CA AD 74 89}
Attributes:
  User-Name=0022b0046f64:0d
  NAS-Port-Id=2/1 vlan-id 4 clips 135335
  NAS-Identifier=Redback
  User-Password=Redback
  NAS-Port=33619968
  Service-Type=5
  Calling-Station-Id=0030675491d8
  NAS-Port-Type=5
  Called-Station-Id=10.147.0.123
  Platform-Type=4
  UNKNOWN[2352-201]={01 0A 93 00 7B}
  Medium-Type=11
  Agent-Remote-Id={00 06 00 22 B0 04 6F 64}
  UNKNOWN[2352-202]={3D 3D 07 01 00 30 67 54 91 D8}
  UNKNOWN[2352-202]={0C 0C 0B 64 69 6D 65 64 72 6F 6C 2D 70 63}
  Agent-Circuit-Id={00 04 00 28 00 0D}
  OS-Version=6.4.1.1
  Mac-Addr=00-30-67-54-91-d8
  UNKNOWN[2352-125]={4D 53 46 54 20 35 2E 30}
  NAS-Real-Port=553648132
  UNKNOWN[3561--1]={02 0A 00 06 00 22 B0 04 6F 64}
  UNKNOWN[3561--1]={01 08 00 04 00 28 00 0D}

09-19/14:46:08 DEBUG [radiusListener-p-10-t-10] RadiusProcessor - Create new radius session.
09-19/14:46:08 DEBUG [radiusListener-p-10-t-10] RadiusUtils - try checkDigestMD5Password
09-19/14:46:08 DEBUG [radiusListener-p-10-t-10] RadiusUtils - digestAttributes=null
09-19/14:46:08 DEBUG [radiusListener-p-10-t-10] RadiusUtils - digestResponse=null
09-19/14:46:08 DEBUG [radiusListener-p-10-t-10] RadiusUtils - user =null realm =null nonce = null method = null uri = null
09-19/14:46:08 DEBUG [radiusListener-p-10-t-10] RadiusUtils - try all in one string
09-19/14:46:08 DEBUG [radiusListener-p-10-t-10] RadiusUtils - digestAttribute=null
09-19/14:46:08  INFO [radiusListener-p-10-t-10] InetRadiusProcessor - [username=0022b0046f64:0d] Login password error.
09-19/14:46:08  INFO [radiusListener-p-10-t-10] InetRadiusProcessor - Return code=2
09-19/14:46:08  INFO [radiusListener-p-10-t-10] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS:
Packet type: Access-Reject
Identifier: 245
Authenticator: {}
Attributes:

Process time auth



На договоре который был создан в этом стенде все работает, а в новом, созданном мною договоре, вот такая ругань.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 сен 2011, 14:32 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Ну пароль у сервиса не тот. "Redback" должен быть.
В мониторе модуля есть ошибка, что пароль не верен?
Вы логин-пароль сервиса ручками создаёте или сделали скрипт генерации на события изменения сервиса?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 сен 2011, 15:21 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
Администратор писал(а):
В мониторе модуля есть ошибка, что пароль не верен?
Вы логин-пароль сервиса ручками создаёте или сделали скрипт генерации на события изменения сервиса?

Да, в мониторе ошибка, что неверный пароль.
Логин пароль из скрипта поведения:

Код:
GENERATE_TIME: 19.09.11 14:14:34
EXECUTION_STOP_TIME: 19.09.11 14:14:34
PROCESS_TIME: 4

OUT:
Setting userName:0022b0046f64:0c


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 сен 2011, 16:29 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
А сам скрипт покажите, какой пароль-то ставится юзеру..


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2011, 08:49 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
Администратор писал(а):
А сам скрипт покажите, какой пароль-то ставится юзеру..

Скрипт я не трогал, пароль насколько я вижу там вообще никакой не подставляется.


Код:
import bitel.billing.server.util.*;
import ru.bitel.bgbilling.modules.inet.api.common.bean.*;
import ru.bitel.bgbilling.modules.inet.api.server.bean.*;


String REMOTE_ID_PREFIX = "";
String CIRCUIT_ID_PREFIX = "";

public void onEvent( event, setup, con, conSlave )
{
   InetServ inetServ = event.getInetServ();
   int deviceId = inetServ.getDeviceId();

   InetDevice device = new InetDeviceDao( con, event.getModuleId() ).get( deviceId );
   if( device == null )
   {
      event.setError( "Устройство не найдено!" );
      return;
   }

   int port = inetServ.getInterfaceId();
   if( port <= 0 )
   {
      event.setError( "Порт не указан!" );
      return;
   }   

   String userName = REMOTE_ID_PREFIX + device.getIdentifier().toLowerCase() + ":" + CIRCUIT_ID_PREFIX + String.format( "0%1$x", new Object[]{ port } );
   inetServ.setLogin( userName );

   print( "Setting userName:" + userName );
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2011, 10:09 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2009, 15:28
Сообщения: 185
Откуда: Магнитогорск
Карма: 6
После
Код:
inetServ.setLogin( userName );


добавьте

Код:
netServ.setPassword( "Redback" );


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2011, 10:43 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
rush писал(а):
После
Код:
inetServ.setLogin( userName );


добавьте

Код:
netServ.setPassword( "Redback" );

Да я пробовал, все тоже самое.

Какая связь, в одном договоре работает ... в другом нет?, скрипт один и тот же стоит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2011, 11:22 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Нужно посмотреть, что в базе забито в качестве пароля.. Сделайте выборку из таблицы inet_serv_<mid>.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2011, 11:49 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
Администратор писал(а):
Нужно посмотреть, что в базе забито в качестве пароля.. Сделайте выборку из таблицы inet_serv_<mid>.


Код:
id   contractId   typeId   deviceId   interfaceId   vlan   ipResourceId   addressFrom   addressTo   login   password   dateFrom   dateTo   status
sessionCountLimit   deviceState   accessCode   deviceOptions   comment   title
                                                         
1   1   1   2   1   0   0   ¬\u16\u23\u11      0022b0046f64:01   Redback   10.02.2011      0   2   1   0   4      LOGIN:0022b0046f64:01
6   6   1   2   12   0   0   ¬\u16\u23\u5      0022b0046f64:0c   redback   15.09.2011      0   2   1   0         LOGIN:0022b0046f64:0c


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2011, 12:01 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
niceone писал(а):
Администратор писал(а):
Нужно посмотреть, что в базе забито в качестве пароля.. Сделайте выборку из таблицы inet_serv_<mid>.


Код:
id   contractId   typeId   deviceId   interfaceId   vlan   ipResourceId   addressFrom   addressTo   login   password   dateFrom   dateTo   status
sessionCountLimit   deviceState   accessCode   deviceOptions   comment   title
                                                         
1   1   1   2   1   0   0   ¬\u16\u23\u11      0022b0046f64:01   Redback   10.02.2011      0   2   1   0   4      LOGIN:0022b0046f64:01
6   6   1   2   12   0   0   ¬\u16\u23\u5      0022b0046f64:0c   redback   15.09.2011      0   2   1   0         LOGIN:0022b0046f64:0c

Первая R большая, теперь все ок.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2011, 18:34 
Не в сети

Зарегистрирован: 13 сен 2011, 22:55
Сообщения: 17
Откуда: Коряжма/Северо-Запад
Карма: 0
Всем привет.

Схема сети:
Клиент - 3Сom SuperStack 3 - .. - D-Link DGS3120-24 - RedBackSE100 - Мир
|
Сервер биллинга

Такая задача: RADIUS авторизация абонента с выдачей ему IP (IP выдается по dhcp, но жестко привязан к абоненту).
SE100 практически настроен, на коммутаторах настроен dhcp-relay на интерфейс SE100, SE связан с сервером по отдельному интерфейсу, осталось настроить биллинг.

Прочитал ветки форума, доки по биллингу .. но голова гудит, а идей мало.

Может кто оказать посильную информационную помощь по конфигурации Inet модуля?
До меня не совсем доходит:
  • по какому принципу в "редакторе устройств" добавляется устройство - Название и Интерфейсы. По своему усмотрению или есть правило.
  • в устройствах - Идентификатор? Необходимо ли добавлять в конфигурации какие-либо параметры
  • дерево устройств, а так понял, необходимо строить относительно реальной иерархии в сети
  • "типы сервисов" - какие параметры необходимы в конфигурации
  • настройки BGInetAccounting и BGInetAccess - нужно ли их в автозапуск запихивать или биллинг сам запустит.

У меня есть конечно пробелы в знаниях по сетям, но не все так печально. Документации имеют свойства быть поверхностными. Для тех кто в теме, все понятно, но для других возникает куча вопросов.

Если кто может помочь, и поделиться рабочими конфигами, что бы можно было проштудировать и сопоставить с теорией, то одним счастливым человеком станет больше :oops:

P.S. Сервер биллинга установлен 5,2 + BGInetAccounting + BGInetAccess. Все запускается и ошибок в логах нет.
Прочитаны по теме на сайте http://wiki.bgbilling.ru/index.php/RedBack_CLIPS и http://wiki.bgbilling.ru/index.php/DHCP.82_%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%81_%D0%B2%D1%8B%D0%B4%D0%B0%D1%87%D0%B5%D0%B9_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BE%D0%B2


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2011, 08:22 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
fmndkn писал(а):
Всем привет.

Схема сети:
Клиент - 3Сom SuperStack 3 - .. - D-Link DGS3120-24 - RedBackSE100 - Мир
|
Сервер биллинга

Такая задача: RADIUS авторизация абонента с выдачей ему IP (IP выдается по dhcp, но жестко привязан к абоненту).
SE100 практически настроен, на коммутаторах настроен dhcp-relay на интерфейс SE100, SE связан с сервером по отдельному интерфейсу, осталось настроить биллинг.

Прочитал ветки форума, доки по биллингу .. но голова гудит, а идей мало.

Может кто оказать посильную информационную помощь по конфигурации Inet модуля?
До меня не совсем доходит:
  • по какому принципу в "редакторе устройств" добавляется устройство - Название и Интерфейсы. По своему усмотрению или есть правило.
  • в устройствах - Идентификатор? Необходимо ли добавлять в конфигурации какие-либо параметры
  • дерево устройств, а так понял, необходимо строить относительно реальной иерархии в сети
  • "типы сервисов" - какие параметры необходимы в конфигурации
  • настройки BGInetAccounting и BGInetAccess - нужно ли их в автозапуск запихивать или биллинг сам запустит.

У меня есть конечно пробелы в знаниях по сетям, но не все так печально. Документации имеют свойства быть поверхностными. Для тех кто в теме, все понятно, но для других возникает куча вопросов.

Если кто может помочь, и поделиться рабочими конфигами, что бы можно было проштудировать и сопоставить с теорией, то одним счастливым человеком станет больше :oops:

P.S. Сервер биллинга установлен 5,2 + BGInetAccounting + BGInetAccess. Все запускается и ошибок в логах нет.
Прочитаны по теме на сайте http://wiki.bgbilling.ru/index.php/RedBack_CLIPS и http://wiki.bgbilling.ru/index.php/DHCP.82_%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%81_%D0%B2%D1%8B%D0%B4%D0%B0%D1%87%D0%B5%D0%B9_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BE%D0%B2

Так тебе дамп этого стенда не достался чтоли ?:)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2011, 13:19 
Не в сети

Зарегистрирован: 13 сен 2011, 22:55
Сообщения: 17
Откуда: Коряжма/Северо-Запад
Карма: 0
niceone писал(а):
Так тебе дамп этого стенда не достался чтоли ?:)


Все бы ничего, но дамп перезаписал данные. Хоть машинка тестовая но тем не менее.

Дальше при запуске вылезали ошибки в клиенте по поводу отсутствия таблиц в базе.
Обновил биллинг через update .. ошибок не было. Но Сервер биллинга перестал запускаться.

BGBillingServer/log/server.log
Код:
09-23/14:42:28  INFO [main] DefaultServerSetup - Binding javax.jms.ConnectionFactory[org.apache.activemq.ActiveMQConnectionFactory@1428ea] to java:comp/env/mq/connecti$
09-23/14:42:28  INFO [main] DefaultServerSetup - Init DB connection pools
09-23/14:42:28  INFO [main] DefaultServerSetup - Binding JDBC pool "master" to java:comp/env/jdbc/master
09-23/14:42:29  INFO [main] DefaultServerSetup - Init trash pools..
09-23/14:42:32  INFO [main] Server - Starting BGBillingServer..
09-23/14:42:33  INFO [main] Server - HTTP Connector: *:8080
09-23/14:42:33  INFO [main] Server - Starting HTTP connector...
09-23/14:42:33  INFO [main] Server - HTTPS Connector: null
09-23/14:42:33  INFO [main] Server - Browsing installed modules and plugins...
09-23/14:42:33  INFO [main] Server - inet v.5.2 build 496 from 20.09.2011 16:59:30
09-23/14:42:33  INFO [main] InetDeviceRuntimeMap - (Re)loading InetDeviceRuntimeMap
09-23/14:42:34  INFO [main] InetDeviceMap - (Re)loading InetDeviceMap
09-23/14:42:34 ERROR [main] Server - HTTP server start alarm: null exiting..
09-23/14:42:34 ERROR [main] LoggingPrintStream - java.lang.NullPointerException
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at java.util.regex.Matcher.quoteReplacement(Matcher.java:598)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.common.Preferences.insertVariablesValues(Preferences.java:236)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.common.Preferences.loadDataEntry(Preferences.java:219)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.common.Preferences.loadData(Preferences.java:195)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.common.Preferences.<init>(Preferences.java:88)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.bgbilling.modules.inet.api.server.bean.InetDeviceMap.loadDevice(InetDeviceMap.java:127)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.bgbilling.modules.inet.api.server.bean.InetDeviceMap.loadDevice(InetDeviceMap.java:155)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.bgbilling.modules.inet.api.server.bean.InetDeviceMap.loadDevice(InetDeviceMap.java:155)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.bgbilling.modules.inet.api.server.bean.InetDeviceMap.load(InetDeviceMap.java:99)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.bgbilling.modules.inet.api.server.bean.InetDeviceMap.get(InetDeviceMap.java:168)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntimeMap.loadDevice(InetDeviceRuntimeMap.java:261)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntimeMap.load(InetDeviceRuntimeMap.java:190)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntimeMap.init(InetDeviceRuntimeMap.java:50)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.bgbilling.modules.inet.api.server.Module.start(Module.java:104)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at bitel.billing.server.Server.initModules(Server.java:169)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at bitel.billing.server.Server.<init>(Server.java:439)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at bitel.billing.server.Server.main(Server.java:258)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at java.lang.reflect.Method.invoke(Method.java:597)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.common.bootstrap.Boot.boot(Boot.java:129)
09-23/14:42:34 ERROR [main] LoggingPrintStream -        at ru.bitel.common.bootstrap.Boot.main(Boot.java:178)
09-23/14:42:34  INFO [Thread-5] EventProcessor - Shutdown EventProcessor...

Конфигурация Сервера биллинга стандартная
Код:
Java Runtime: Sun Microsystems Inc. Java HotSpot(TM) Server VM [1.6.0_27] /usr/java/jdk1.6.0_27/jre
  Runtime name: 1493@severlink.local
  Java endorsed dirs: ./lib/endorsed:/opt/java/lib/endorsed
  OS: Linux 2.6.32-71.29.1.el6.centos.plus.i686 [i386], file.encoding: UTF-8, user.name: root
  Heap sizes: current=61248k  free=60607k  max=233024k


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2011, 13:39 
Не в сети

Зарегистрирован: 29 окт 2008, 15:17
Сообщения: 140
Карма: 0
Администратор писал(а):
Нужно посмотреть, что в базе забито в качестве пароля.. Сделайте выборку из таблицы inet_serv_<mid>.

Я что-то окончательно запутался.
Откуда access сервер должен узнать что пароль именно "Redback"?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 сен 2011, 10:08 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Цитата:
Откуда access сервер должен узнать что пароль именно "Redback"?

Этот пароль скриптом записывается в сервисе при сохранении. Акцесс ничего не знает - просто проверяет пароль.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 окт 2011, 14:21 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
В dictionary.xml не хватает таких параметров (и не только) для RedBack, хотя в wiki они используются:

Код:
                        <attribute name="Service-Name" type="string" code="190"/>
                        <attribute name="Service-Options" type="integer" code="191"/>
                        <attribute name="Service-Parameter" type="string" code="192"/>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 окт 2011, 08:21 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Поправка - это тегированные атрибуты. Нужно добавлять:
Код:
                        <attribute name="Service-Name" tag="1" type="string" code="190"/>
                        <attribute name="Service-Options" tag="1" type="integer" code="191"/>
                        <attribute name="Service-Parameter" tag="1" type="string" code="192"/>


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 210 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 7  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.107s | 78 Queries | GZIP : On ]