forum.bitel.ru
http://forum.bitel.ru/

Решение SmartEdge 100 с авторизацией по порту коммутатора
http://forum.bitel.ru/viewtopic.php?f=44&t=5361
Страница 3 из 7

Автор:  Amir [ 10 мар 2012, 16:33 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

В wiki возращается
Код:
Acct-Interim-Interval=900
  Framed-IP-Address=193.106.88.119
  # Атрибут, необходимый для получения абонентом IP-адреса
  DHCP-Max-Leases=1
  # Атрибуты для включения сервиса для абонента. Устанавливают скорость соединения и включают посервисный аккаунтинг.
  Service-Name:1=RSE-SVC-EXT
  Service-Options:1=1
  Service-Parameter:1=Rate=6000 Burst=750000
  # Обязательный атрибут, указывает, к какому IP-интерфейсу "привязать" абонента
  IP-Interface-Name=CLIENTS
Может быть нужно обязательно указывать какой-нибудь сервис?

Автор:  Alex-XXI [ 10 мар 2012, 17:15 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Пробовали и с указанием сервисов, результат такой же, мистика какая-то.
Периодически редбек дропает приходящие с биллинга access-accept пакеты:
Код:
%AAA-7-EXCEPT: rad_response_sanity_check: Authenticator check failed. Dropping the request.
%AAA-7-EXCEPT: rad_process_received_pkt: Sanity check fail, drop this packet.

Не может ли быть причиной ошибка в вычислении радиусом атрибута Authenticator ?

Причиной оказалось, что биллинг по какой-то причине не использует секрет из параметра "radius.secret" конфига устройства. В свойствах устройства поле секрет было пустым, биллинг использовал это значение.
Не смотря на это ошибка с DHCP осталась, IP-адрес не выдется

Автор:  Amir [ 10 мар 2012, 22:34 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Цитата:
Причиной оказалось, что биллинг по какой-то причине не использует секрет из параметра "radius.secret" конфига устройства.
Да, секрет брался только из поля Секрет/community устройства. Выложили новый билд модуля, где параметр конфига radius.secret будет переопределять это значение.

Автор:  Alex-XXI [ 10 мар 2012, 22:52 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Проблема с DHCP была в том, что использовался InetDhcpProcessor вместо InetDhcpHelperProcessor, с последним все сразу заработало.

Автор:  sergey-xxi [ 13 мар 2012, 20:53 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

пытаемся сейчас настроить qos policy, куска конфига в вики нет.
вот наш конфиг
Код:
policy access-list SUB-IN
  seq 10 permit ip any 10.0.0.0 0.255.255.255 class INTERNAL
  seq 20 permit ip any 192.168.0.0 0.0.255.255 class INTERNAL
  seq 30 permit ip any ххх.ххх.ххх.0 0.0.3.255 class INTERNAL
  seq 40 permit ip any any class EXTERNAL
!
 policy access-list SUB-OUT
  seq 10 permit ip 10.0.0.0 0.255.255.255 any class INTERNAL
  seq 20 permit ip ххх.ххх.ххх.0 0.0.3.255 any class INTERNAL
  seq 30 permit ip any any class EXTERNAL
 

subscriber default
   qos policy policing DEF-IPOE-IN
   qos policy metering DEF-IPOE-OUT
   dhcp max-addrs 1
 
 radius service profile RSE-SVC-EXT
  parameter value Rate 100000
  parameter value Burst 12500000
  accounting in qos EXTERNAL
  accounting out qos EXTERNAL
  seq 10 attribute Dynamic-Policy-Filter "ip in forward class EXTERNAL qos"
  seq 20 attribute Dynamic-Policy-Filter "ip out forward class EXTERNAL qos"
  seq 30 attribute Dynamic-Qos-Parameter "meter-class-rate EXTERNAL rate-absolute $Rate"
  seq 40 attribute Dynamic-Qos-Parameter "meter-class-burst EXTERNAL $Burst"
  seq 50 attribute Dynamic-Qos-Parameter "police-class-rate EXTERNAL rate-absolute $Rate"
  seq 60 attribute Dynamic-Qos-Parameter "police-class-burst EXTERNAL $Burst"
  seq 70 attribute Service-Interim-Accounting 900
 

qos policy DEF-IPOE-IN policing
 ip access-group SUB-IN local
  class INTERNAL
   rate 1000 burst 125000
  class EXTERNAL
   rate 2000 burst 250000
 rate-calculation exclude layer-2-overhead
!
qos policy DEF_IPOE-OUT metering
 ip access-group SUB-OUT local
  class INTERNAL
   rate 1000 burst 125000
  class EXTERNAL
   rate 2000 burst 250000
 rate-calculation exclude layer-2-overhead


при этом redback перестает слать dhcp запросы, идет только радиус
как только из subscriber default убираем qos policy:
Код:
qos policy policing DEF-IPOE-IN
   qos policy metering DEF-IPOE-OUT

redback начинает слать dhcp запросы и пользватель получает ip и начинает работать
кто может подсказать что не так с конфигом ?
проблему решили сами, ошибка в конфиге qos policy DEF_IPOE-OUT metering заменили на - все стало работать

Автор:  Alex-XXI [ 16 мар 2012, 21:44 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Подскажите в чем может быть проблема с аккаунтингом. Пакеты приходят в такой последовательности:
    Accounting-Request Start
    Accounting-Request Update
    Accounting-Request Service Start
    проходит 15 минут
    Accounting-Request Update
    Accounting-Request Service Update
В апдейт пакетах трафик есть, а в биллинге трафика нет.
Код:
radius 03-16/19:30:25  INFO [rdsLstnr-p-6-t-4] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS:
Packet type: Accounting-Request
Identifier: 71
Authenticator: {0F 6C D5 6C 54 92 A9 06 7C 9B 38 1B F7 C9 C8 8F}
Attributes:
  User-Name=0012cff2a740:0f
  User-Password=RedBack
  NAS-Identifier=RedBack
  NAS-IP-Address=192.168.12.247
  NAS-Port=33751040
  Service-Type=5
  Framed-IP-Address=192.168.4.2
  Acct-Input-Octets=21000
  Acct-Output-Octets=21334
  Acct-Status-Type=3
  Acct-Session-Time=900
  Acct-Input-Packets=350
  Acct-Session-Id=0102FFFF78006C90-4F6358C1
  Acct-Authentic=1
  Acct-Multi-Session-Id=0102FFFF78006C90-4F6358C1
  NAS-Port-Id=2/3 clips 158864
  Acct-Output-Packets=351
  Event-Timestamp=1331911750
  Acct-Output-Gigawords=0
  Acct-Input-Gigawords=0
  Calling-Station-Id=000c42823fd4
  NAS-Port-Type=5
  Called-Station-Id=192.168.4.1
  Acct-Mcast-Out-Packets-64={00 00 00 00 00 00 00 00}
  DHCP-Max-Leases=1
  DHCP-Field={01 C0 A8 04 01}
  DHCP-Option={3D 3D 07 01 00 0C 42 82 3F D4}
  DHCP-Option={0C 0C 08 4D 69 6B 72 6F 54 69 6B}
  Acct-Output-Octets-64={00 00 00 00 00 00 53 56}
  Acct-Input-Octets-64={00 00 00 00 00 00 52 08}
  Acct-Output-Packets-64={00 00 00 00 00 00 01 5F}
  Acct-Input-Packets-64={00 00 00 00 00 00 01 5E}
  Acct-Mcast-In-Octets-64={00 00 00 00 00 00 00 00}
  Service-Parameter=Rate=10000 Burst=1250000
  Assigned-IP-Address=192.168.4.2
  Acct-Mcast-In-Packets-64={00 00 00 00 00 00 00 00}
  Acct-Mcast-Out-Octets-64={00 00 00 00 00 00 00 00}
  Acct-Update-Reason=26
  Acct-Mcast-In-Octets=0
  Acct-Mcast-Out-Octets=0
  Acct-Mcast-In-Packets=0
  Acct-Mcast-Out-Packets=0
  Platform-Type=4
  Medium-Type=11
  Agent-Remote-Id={00 06 00 12 CF F2 A7 40}
  Agent-Circuit-Id={00 04 00 03 01 0F}
  IP-Interface-Name=clients
  Service-Name=SE
  Service-Options:0=1
  OS-Version=6.5.1.4
  NAS-Real-Port=33751040
  UNKNOWN[3561--1]={02 0A 00 06 00 12 CF F2 A7 40}
  UNKNOWN[3561--1]={01 08 00 04 00 03 01 0F}

radius 03-16/19:30:25  INFO [rdsLstnr-p-6-t-4] InetRadiusProcessor - Session 0102FFFF78006C90-4F6358C1 found.
radius 03-16/19:30:25 DEBUG [rdsLstnr-p-6-t-4] connection - 941:919 Add time 300
radius 03-16/19:30:25 DEBUG [rdsLstnr-p-6-t-4] connection - 941:919 Add traffic 0=300
radius 03-16/19:30:25 DEBUG [rdsLstnr-p-6-t-4] connection - 941:919 Add traffic 0=300

Автор:  Amir [ 16 мар 2012, 22:45 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Возможно что-то с привязкой трафика не так. Можно скриншот?

Автор:  Alex-XXI [ 17 мар 2012, 00:07 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Вот

Вложения:
traf2.gif
traf2.gif [ 46.67 КБ | Просмотров: 16732 ]
traf1.gif
traf1.gif [ 15.76 КБ | Просмотров: 16732 ]
traf.gif
traf.gif [ 15.53 КБ | Просмотров: 16732 ]

Автор:  Amir [ 17 мар 2012, 00:39 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Сервисная сессия создается? Имя сервиса в сервисном радиус пакете точно SE?

Автор:  Alex-XXI [ 17 мар 2012, 00:57 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Amir писал(а):
Сервисная сессия создается? Имя сервиса в сервисном радиус пакете точно SE?

Предполагаю, что нет. В мониторе сессий сессия есть, но если выбрать у нее сервисные сессии, то там пусто. В договоре в отчете сессии есть, но сервисных сессий также нет. В приложении лог InetAccounting при старте сессии.

Вложения:
all.log [13.99 КБ]
Скачиваний: 534

Автор:  Amir [ 17 мар 2012, 02:22 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

В типе устройства SE прописан SmartedgeClipsProtocolHandler как обработчик процессора протокола?

Автор:  Alex-XXI [ 17 мар 2012, 13:39 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

В качестве обработчика протокола прописан класс ru.clink.bgbilling.module.inet.serv.SmartEdgeProtocolHandler, вот его содержимое:
Код:
package ru.clink.bgbilling.module.inet.serv;

import org.apache.log4j.Logger;
import ru.bitel.bgbilling.kernel.network.dhcp.*;
import ru.bitel.bgbilling.kernel.network.radius.*;
import ru.bitel.bgbilling.modules.inet.access.sa.*;
import ru.bitel.common.*;
import ru.bitel.common.sql.*;
 
public class SmartEdgeProtocolHandler
   extends ProtocolHandlerAdapter
 implements RadiusProtocolHandler, DhcpProtocolHandler
{
   private static final Logger log = Logger.getLogger( SmartEdgeServiceActivator.class );
   @Override
    public void preprocessAccessRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
        throws Exception
    {
      String macAddr = request.getStringAttribute( 2352, 145, null );
      byte[] remoteId = request.getByteAttribute( 2352, 96, null );
      byte[] circuitId = request.getByteAttribute( 2352, 97, null );
 
      if( macAddr != null && remoteId != null && circuitId != null )
      {
         String callingStation = macAddr.replaceAll( "\\-", "" );
 
         String userName = "";
 
         
            log.info( "Format of Option 82 is D-link" );
            userName = Utils.bytesToHexString( remoteId ).substring(4, 16) + ":" + Utils.bytesToHexString( circuitId ).substring(10, 12);
         
 
         userName = userName.toLowerCase();
         request.setStringAttribute( -1, 1, userName );
         request.setStringAttribute( -1, 2, "RedBack" );
         request.setStringAttribute( -1, 31, callingStation );
      }
    }
 
   @Override
    public void postprocessAccessRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
        throws Exception
    {
      response.removeAttributes( -1, 8 );      
    }
 
 
   @Override
    public void preprocessAccountingRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
        throws Exception
    {
 int acctStatusType = request.getIntAttribute( -1, 40, 0 );
      // старты получается не обрабатываем, сессия стартует по апдейту
      if( acctStatusType != 1 && acctStatusType != 101 && acctStatusType != 2)
      {
         preprocessAccessRequest( request, response, connectionSet );

         Integer ipaddr = request.getIntAttribute( 2352, 132, null );
         if( ipaddr != null )
         {   
            request.setIntAttribute( -1, 8, ipaddr );   
         }
      }
      if ( acctStatusType == 3 ) {
         // обнуляем общие счетчики трафика (нас интересуют только посервисные)
         request.setIntAttribute(-1, 42, 0);
         request.setIntAttribute(-1, 43, 0);
      }
//      if ( acctStatusType == 1 ) {
//         preprocessAccessRequest( request, response, connectionSet );
//      }
      if ( acctStatusType == 103 || acctStatusType == 102) {
         String sessionID = request.getStringAttribute(-1, 50, null);
         request.setStringAttribute(-1, 44, sessionID);
      }
     
      /*if ( acctStatusType == 102) {
         request.setIntAttribute(-1, 40, 2);
      }*/
     
      if ( acctStatusType == 103 || acctStatusType == 102) {
         request.setIntAttribute(-1, 40, 3);
      }

    }
 
 
   @Override
    public void preprocessDhcpRequest( DhcpPacket request, DhcpPacket response )
        throws Exception
    {
      //String userName = Utils.bytesToHexString( remoteId ).substring(4, 16) + ":" + Utils.bytesToHexString( circuitId ).substring(10, 12);
      try {
         byte[] circuitId = request.getSubOption( (byte)1 ).value;
         byte[] remoteId = request.getSubOption( (byte)2 ).value;
            byte[] mac = new byte[6];
            byte[] port = new byte[1];
            System.arraycopy(circuitId, 5, port, 0, 1);
            System.arraycopy(remoteId, 2, mac, 0, 6);
            request.setSubOption( (byte)1, port);
            request.setSubOption( (byte)2, mac);
         
      } catch (java.lang.NullPointerException e) {
         return;
      }
    }
}


Автор:  Amir [ 17 мар 2012, 15:25 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Поменяйте обработчики на ru.bitel.bgbilling.modules.inet.dyn...

Автор:  Alex-XXI [ 17 мар 2012, 15:58 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Поменять название не проблема, проблема, что в этом классе должно быть. Для метода preprocessAccountingRequest в вики 2 варианта, а еще в биллинге есть 3 варианта. Какой все-таки нужно использовать?

Автор:  Amir [ 17 мар 2012, 16:36 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Нужно использовать те, что в биллинге уже есть, в ru.bitel.bgbilling.modules.dyn.device.redback.

Автор:  sergey-xxi [ 24 мар 2012, 03:33 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

поменяли обработчики, на те что в на ru.bitel.bgbilling.modules.inet.dyn...
вот хеандлер
Код:
package ru.bitel.bgbilling.modules.inet.dyn.device.redback;

import ru.bitel.bgbilling.kernel.network.dhcp.DhcpPacket;
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.common.Utils;
import ru.bitel.common.sql.ConnectionSet;
import ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor;

public class SmartEdgeClipsProtocolHandler
    extends SmartEdgeProtocolHandler
    implements RadiusProtocolHandler, DhcpProtocolHandler
{
   /**
    * Установка username
    * @param request
    */
   private void setUsername( RadiusPacket request )
   {
      String macAddr = request.getStringAttribute( 2352, 145, null );
      byte[] remoteId = request.getByteAttribute( 2352, 96, null );
      byte[] circuitId = request.getByteAttribute( 2352, 97, null );

        String realm = request.getStringAttribute(30);

                if( macAddr != null && remoteId != null && circuitId != null )
                {
                        String callingStation = macAddr.replaceAll( "\\-", "" );

                        String userName = Utils.bytesToHexString( remoteId ).substring(4, 16) + ":" + Utils.bytesToHexString( circuitId ).substring(10, 12);
                        userName = userName.toLowerCase();
                        request.setStringAttribute( -1, 1, userName );
                        request.setStringAttribute( -1, 31, callingStation );
                }
   }

   @Override
   public void preprocessAccessRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
       throws Exception
   {
      super.preprocessAccessRequest( request, response, connectionSet );
      // устанавливаем поле username
      setUsername( request );
   }

   @Override
   public void postprocessAccessRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
       throws Exception
   {
      super.postprocessAccessRequest( request, response, connectionSet );

      response.removeAttributes( -1, RadiusDictionary.Framed_IP_Address );
   }

   @Override
   protected void preprocessAccountingRequestImpl( int acctStatusType, RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
       throws Exception
   {
      acctStatusType = request.getIntAttribute( -1, 40, 0 );
      // старты получается не обрабатываем, сессия стартует по апдейту
      if( acctStatusType != 1 && acctStatusType != 101 )
      {
         preprocessAccessRequest( request, response, connectionSet );
 
         Integer ipaddr = request.getIntAttribute( 2352, 132, null );
         if( ipaddr != null )
         {   
            request.setIntAttribute( -1, 8, ipaddr );   
         }
      }
      if ( acctStatusType == 3 || acctStatusType == 2) {
         // обнуляем общие счетчики трафика (нас интересуют только посервисные)
         request.setIntAttribute(-1, 42, 0);
         request.setIntAttribute(-1, 43, 0);
      }
 
      if ( acctStatusType == 103 || acctStatusType == 102) {
         String sessionID = request.getStringAttribute(-1, 50, null);
         request.setStringAttribute(-1, 44, sessionID);
      }
 
 
      if ( acctStatusType == 103 || acctStatusType == 102) {
         request.setIntAttribute(-1, 40, 3);
      }      
        setUsername( request );

   }



   @Override
   public void preprocessDhcpRequest( DhcpPacket request, DhcpPacket response )
       throws Exception
   {
      // подмена
      try
      {
         byte[] circuitId = request.getSubOption( (byte)1 ).value;
         byte[] remoteId = request.getSubOption( (byte)2 ).value;
         byte[] mac = new byte[6];
         byte[] port = new byte[1];
         System.arraycopy( circuitId, 5, port, 0, 1 );
         System.arraycopy( remoteId, 2, mac, 0, 6 );
         request.setSubOption( (byte)1, port );
         request.setSubOption( (byte)2, mac );
      }
      catch( java.lang.NullPointerException e )
      {
         return;
      }
   }

   @Override
   public void postprocessDhcpRequest( DhcpPacket request, DhcpPacket response )
       throws Exception
   {
   }
}

создается только родительская сессия, сервисной все равно нет.
пакет сервисной сесии
Код:
radius 03-24/01:16:01  INFO [rdsLstnr-p-6-t-7] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS:
Packet type: Accounting-Request
Identifier: 38
Authenticator: {30 64 11 F4 88 40 CD 07 B5 EE 70 AD B8 C0 67 44}
Attributes:
  User-Name=0012cff2a740:0f
  NAS-Identifier=RedBack
  NAS-IP-Address=192.168.1.247
  NAS-Port=33751040
  Service-Type=5
  Framed-IP-Address=192.168.4.105
  Acct-Input-Octets=197208
  Acct-Output-Octets=334
  Acct-Status-Type=3
  Acct-Session-Time=900
  Acct-Input-Packets=594
  Acct-Session-Id=0102FFFF78007140-4F6CE42B
  Acct-Authentic=1
  Acct-Multi-Session-Id=0102FFFF78007140-4F6CE42B
  NAS-Port-Id=2/3 clips 160064
  Acct-Output-Packets=1
  Event-Timestamp=1332537263
  Acct-Output-Gigawords=0
  Acct-Input-Gigawords=0
  Calling-Station-Id=000c42823fd4
  NAS-Port-Type=5
  Called-Station-Id=192.168.4.1
  Acct-Mcast-Out-Packets-64={00 00 00 00 00 00 00 00}
  DHCP-Max-Leases=1
  UNKNOWN[2352-201]={01 C0 A8 04 01}
  UNKNOWN[2352-202]={3D 3D 07 01 00 0C 42 82 3F D4}
  UNKNOWN[2352-202]={0C 0C 08 4D 69 6B 72 6F 54 69 6B}
  Acct-Output-Octets-64={00 00 00 00 00 00 01 4E}
  Acct-Input-Octets-64={00 00 00 00 00 03 02 58}
  Acct-Output-Packets-64={00 00 00 00 00 00 00 01}
  Acct-Input-Packets-64={00 00 00 00 00 00 02 52}
  Acct-Mcast-In-Octets-64={00 00 00 00 00 00 00 00}
  Service-Parameter=Rate=10000 Burst=1250000
  Assigned-IP-Address=192.168.4.105
  Acct-Mcast-In-Packets-64={00 00 00 00 00 00 00 00}
  Acct-Mcast-Out-Octets-64={00 00 00 00 00 00 00 00}
  Acct-Update-Reason=26
  Mac-Addr=00-0c-42-82-3f-d4
  Acct-Mcast-In-Octets=0
  Acct-Mcast-Out-Octets=0
  Acct-Mcast-In-Packets=0
  Acct-Mcast-Out-Packets=0
  Platform-Type=4
  Medium-Type=11
  Agent-Remote-Id={00 06 00 12 CF F2 A7 40}
  Agent-Circuit-Id={00 04 00 03 01 0F}
  IP-Interface-Name=clients
  Service-Name=SE
  Service-Options:0=1
  OS-Version=6.5.1.4
  NAS-Real-Port=33751040
  UNKNOWN[3561--1]={02 0A 00 06 00 12 CF F2 A7 40}
  UNKNOWN[3561--1]={01 08 00 04 00 03 01 0F}


radius 03-24/01:16:01  INFO [rdsLstnr-p-6-t-7] InetRadiusProcessor - Session 0102FFFF78007140-4F6CE42B found.
radius 03-24/01:16:01 DEBUG [rdsLstnr-p-6-t-7] connection - 1038:1247 Add time 300
radius 03-24/01:16:01 DEBUG [rdsLstnr-p-6-t-7] connection - 1038:1247 Add traffic 0=300
radius 03-24/01:16:01 DEBUG [rdsLstnr-p-6-t-7] connection - 1038:1247 Add traffic 0=300
radius 03-24/01:16:01 DEBUG [rdsLstnr-p-6-t-7] ProcessorRequest - Sending to /192.168.1.247:1812
radius 03-24/01:16:01  INFO [rdsLstnr-p-6-t-7] RadiusListenerWorker - RESPONSE:
Packet type: Accounting-Response
Identifier: 38
Authenticator: {42 5B B9 8F F1 2B B0 85 15 9F F7 68 72 86 24 5C}
Attributes:
343

accounting 03-24/01:16:01 DEBUG [accwrkr-3-p-10-t-1] SessionFinishManager - Run SessionFinishManager...
accounting 03-24/01:16:01 DEBUG [worker-p-13-t-1] InetLogProccessor - Run InetLogProcessor...
accounting 03-24/01:16:01 DEBUG [accwrkr-3-p-10-t-1] SessionFinishManager - Finished 0 auto (checked 0) sessions for 0 ms.
accounting 03-24/01:16:01 DEBUG [worker-p-13-t-1] InetLogProccessor - Proccesed 0 hours for 3 ms.
accounting 03-24/01:16:01 DEBUG [worker-p-13-t-1] InetLogProccessor - InetLogProcessor finished
mq 03-24/01:16:02 DEBUG [evpool-pblsh-p-4-t-2] EventProcessor - Publish: Event[pool:ru.bitel.bgbilling.modules.inet.accounting.event.InetAccountingEvent] timestamp: 1332537362106; moduleId: 1; pluginId: -1; cid: -1; scid: -1; userId: -1
accounting 03-24/01:16:11 DEBUG [accwrkr-1-p-12-t-1] connection - 1038:1247 Before calc inetOptions: 1
accounting 03-24/01:16:11  INFO [accwrkr-1-p-12-t-1] SessionTarifficationManager - Calculate for 24.03.2012 01:01:01
accounting 03-24/01:16:11  INFO [accwrkr-1-p-12-t-1] SessionTarifficationManager - TariffOptionMap: {}
accounting 03-24/01:16:11 DEBUG [accwrkr-1-p-12-t-1] connection - 1038:1247 TariffRequest:
PARAMS: mid: 1; cid: 2
ServiceCost [serviceId: -3; date1: ; date2: ; serviceStart: ; serviceEnd: ; accountingPeriodDays: 0; amount: 0; cost: null]
 

имя сервиса передает правильно "SE"
вот статус сессии из редбэка
Код:
Session state Up
        Circuit   2/3 clips 160064
        Internal Circuit   2/3:511:63:31/7/2/28992
        Interface bound  clients
        Current port-limit unlimited
        Protocol Stack IPV4
        dhcp max-addrs 1 (applied)
        ip interface clients (applied)
        dhcp option client id 0x3d0701000c42823fd4 (applied)
        dhcp option hostname 0x0c084d696b726f54696b (applied)
        qos-policing-policy DEF-IPOE-IN (applied from sub_default)
        qos-metering-policy DEF-IPOE-OUT (applied from sub_default)
        service  (applied)
           [svc id: 0] SE (acct enabled)
        service-parameter  (applied)
           [svc id: 0] Rate=10000 Burst=1250000
        dynamic policy acl  [svc mask: 0x0001] (applied in: qos out: qos)
           [svc id: 0] ip out forward class EXTERNAL qos
           [svc id: 0] ip in forward class EXTERNAL qos
        qos-dynamic-param  [svc mask: 0x0001] (applied)
           [svc id: 0] meter-class-rate EXTERNAL rate-absolute 10000 (applied)
           [svc id: 0] meter-class-burst EXTERNAL 1250000 (applied)
           [svc id: 0] police-class-rate EXTERNAL rate-absolute 10000 (applied)
           [svc id: 0] police-class-burst EXTERNAL 1250000 (applied)
        service-acct (in)  [svc mask: 0x0001] (applied)
           [svc id: 0] qos class-mask 0x02
        service-acct (out)  [svc mask: 0x0001] (applied)
           [svc id: 0] qos class-mask 0x02
        service-interim-acct-interval  [svc mask: 0x0001] (applied)
           [svc id: 0] 900
          IP host entries installed by DHCP: (max_addr 1 cur_entries 1)
                192.168.4.105    00:0c:42:82:3f:d4

на редбэке debug aaa exception
%AAA-7-EXCEPT: aaa_process_dhcp_iphost_del: DHCP DEL lookup failed for pvc slot 1 port 2 channel 0xffff ip_addr 192.168.4.105 : drop
что не так может быть ?

Автор:  babay951 [ 11 апр 2012, 06:54 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Ну так кто-нибудь уже ввёл эту железяку в реальную работу или нет?

В wiki не увидел как же netflow снимать.

Автор:  akornilov [ 23 апр 2012, 14:38 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Коллеги, а где можно найти специалистов, которые за деньги донастроят нам BGBill версии 5.2 и интегрируют с SE100?
А то у нас все в зависшем состоянии, плюс до конца не ясно, как Inet настроить с SE, нужно переносить весь код управления им из примеров для IPN для 5.1?

Автор:  babay951 [ 27 апр 2012, 09:01 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Поддерживаю вопрос, может тоже нанимать будем на интеграцию.

Автор:  Amir [ 27 апр 2012, 19:09 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Биллинг и мы можем настроить. Железки - нет.
Работает у нескольких клиентов. Можно и по netflow собирать, но зачем, если она, насколько помню, в посервисном аккаунтинге может сама разделять трафик на виды?
Цитата:
как Inet настроить с SE, нужно переносить весь код управления им из примеров для IPN для 5.1?
Скорее всего, вам хватит того, что уже есть в модуле inet. Какие скрипты у вас были в ipn?

Автор:  babay951 [ 11 май 2012, 12:31 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Думаю с настройка биллинга будут минимальные проблемы. Больше интересует как ведет себе данная железка. Будет ли успевать натить, шейпить и собирать статистику с 8000 абонентов, как заявлено? Вот и интересно, есть ли опыт.
А то в рекламе одно пишут, а в реале получаешь кота в мешке. Типа ну да расчитано на 8000 абонентов, но мы же не говорили что одновременно она натить и шейпить будет. В такой конфигурации только 3000.

Автор:  Yarlan Zey [ 11 май 2012, 15:02 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

это на наге. если железка есть, то даже пустят в закрытый раздел

Автор:  akornilov [ 29 май 2012, 12:35 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Коллеги, задали вопрос на наге, решили и сюда продублировать, т.к. пока не ясно, в какую сторону смотреть. Вот он:

====
Вопрос из разряда "странного хочется":
Можно ли "сэмулировать" выдачу клиенту серой подсети?
Тоесть к примеру есть сеть 10.0.0.0/8 из которой мы хотим каждому клиенту выдать /24 сетку. При этом SmartEdge должен быть с адресом 10.xxx.yyy.1/24 в каждой подсети.
DHCP сервер выдал клиенту нужные параметры (ip-адрес, маску, шлюз, ДНС). Собственно вопрос: как SmartEdge-у присвоить адрес 10.xxx.yyy.1/24? Или как-то убедить клиента что у SE есть этот адрес... Или как-то извернуться через proxy-arp...
====

По идее, после аутентификации и авторизации пользователя, биллинг что-то должен передать какими-то атрибутами на SE100, чтобы он прописал себе адрес из этой сети.
Вопрос: возможно ли это и как это сделать?

Спасибо.

Автор:  skyb [ 29 май 2012, 13:07 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

akornilov
Событие изменение сервиса, вешается скрипт который заходит на se и делает что нужно

Автор:  akornilov [ 29 май 2012, 13:17 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Ну может все-таки SE может по атрибутам как-то сам понять, что этот адрес его и ему его нужно прописать самому себе?

Автор:  snark [ 20 июн 2012, 17:21 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

babay951 писал(а):
интересует как ведет себе данная железка

Я на наге спрашивал, да и тут, где-то, тоже (с ходу не нашел - поищите).

babay951 писал(а):
Будет ли успевать натить, шейпить и собирать статистику с 8000 абонентов, как заявлено?

В теории - да, т.к. все на ASIC-ах, если, конечно, не выходить за оговоренные в даташите/доке рамки.

P.S. Господа админы, вынесите, пожалуйста, обсуждение железки в отдельную тему, куда нить сюда.

Автор:  Cromeshnic [ 18 июл 2012, 07:05 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Неудобно:

Для SmartEdgeServiceActivator атрибуты опций Inet задаются через префикс "sa.radius.option.",
а для ISGPPPoEServiceActivator - через "nas.radius.inetOption."

Автор:  Amir [ 18 июл 2012, 13:08 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Не понял, почему так. Возможно, из-за обратной совместимости.
Чтобы было правильно и удобно, укажите в конфигурации устройства (типа устройства)
Код:
sa.radius.option.attributesPrefix=radius.inetOption.
Тогда всегда будет "radius.inetOption.".
Кстати, nas.radius.inetOption. - это устаревший вариант, правильно указывать "radius.inetOption.".
При Access-Request по умолчанию именно оттуда берутся RADIUS-атрибуты.

Автор:  Cromeshnic [ 25 июл 2012, 07:26 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Пробуем схему с Reject-To-Accept.

Сервер: вер. 5.2 сборка 1241 от 20.07.2012 10:05:29
os: Linux; java: Java HotSpot(TM) Client VM, v.1.6.0_27
inet вер. 5.2 сборка 932 от 17.07.2012 14:25:38

Код:
@redirect.attributes=HTTP-Redirect-Profile-Name=REDIRECT;Forward-Policy=in:HTTP-REDIRECT
@const.access.attributes=Service-Type=2;Framed-Protocol=1;Acct-Interim-Interval=900;Sub-Profile-Name=base-unlimited

#
#test
sa.radius.disable.attributes={@const.access.attributes};{@redirect.attributes}
#
sa.radius.connection.withoutBreak=1

# Коды ошибок, при которых пользователю выдается серый адрес и устанавливается HTTP-редирект.
realm.reject.error=1,2,3,4,10,11,12
 
# Используемый для отключенных пул адресов и параметры http-редиректа.
nas.radius.realm.reject.pool=7
nas.radius.realm.reject.attributes={@const.access.attributes};{@redirect.attributes}


Клиент подключается, ему выдаётся Ip из пула - всё ок. Но после этого приходит ServiceActivatorEvent с oldState=1 и уже редиректнутому клиенту посылается CoA

Цитата:
07-25/10:08:39 DEBUG [sa-p-11-t-2] AcknowledgeConsumer - Caught BGInetAccountingPPPoE:Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaAccountingEvent] moduleId: 25; pluginId: no; cid: 191468; scid: -1; userId: 0; type: 1; deviceId: 7; connectionId: 13695; timestamp: 1343178519593
07-25/10:08:39 INFO [sa-p-11-t-2] ServiceActivatorDeviceWorker - Do task deviceId: 7; Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaAccountingEvent] moduleId: 25; pluginId: no; cid: 191468; scid: -1; userId: 0; type: 1; deviceId: 7; connectionId: 13695; timestamp: 1343178519593
07-25/10:08:39 INFO [sa-p-11-t-2] InetApplication - TariffOptionMap: {12=ru.bitel.bgbilling.kernel.tariff.option.server.bean.ContractTariffOptionList$OptionItem@ea3cdf, 5=ru.bitel.bgbilling.kernel.tariff.option.server.bean.ContractTariffOptionList$OptionItem@11e281f}
07-25/10:08:39 DEBUG [sa-p-11-t-2] TrafficRangeManager - Add to RangeKey[21071109755400:3:-603979569] 0 (0, 3600)
07-25/10:08:39 INFO [sa-p-11-t-2] ServiceActivatorDeviceWorker - Command result event: ServiceActivatorEvent type=4; inetServId: 22; call: true; oldState: 0; newState: 0; oldOptionSet: 20,43,738,13,14; newOptionSet: 20,43,738,13,14
07-25/10:08:39 INFO [sa-p-11-t-2] ServiceActivatorDeviceWorker - Processing deviceId:7; command ServiceActivatorEvent type=4; inetServId: 22; call: true; oldState: 0; newState: 0; oldOptionSet: 20,43,738,13,14; newOptionSet: 20,43,738,13,14
07-25/10:08:39 INFO [sa-p-11-t-2] ServiceActivatorSet - Invoking onAccountingStart
07-25/10:08:39 INFO [sa-p-11-t-2] ServiceActivatorDeviceWorker - Process event type[4] result=true
07-25/10:08:44 INFO [sa-p-11-t-2] ServiceActivatorSet - Disconnecting from device
07-25/10:08:54 INFO [sa-p-11-t-1] ServiceActivatorSet - Connecting to device
07-25/10:08:54 DEBUG [sa-p-11-t-1] AcknowledgeConsumer - Caught BGInetAccountingPPPoE:Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaStateModifyEvent] moduleId: 25; pluginId: no; cid: 191468; scid: -1; userId: 0; deviceId: 7; inetServId: 22; connectionId: 13695; state: 0; accessCode: 10; timestamp: 1343178533906
07-25/10:08:54 INFO [sa-p-11-t-1] ServiceActivatorDeviceWorker - Do task deviceId: 7; Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaStateModifyEvent] moduleId: 25; pluginId: no; cid: 191468; scid: -1; userId: 0; deviceId: 7; inetServId: 22; connectionId: 13695; state: 0; accessCode: 10; timestamp: 1343178533906
07-25/10:08:54 INFO [sa-p-11-t-1] InetApplication - TariffOptionMap: {12=ru.bitel.bgbilling.kernel.tariff.option.server.bean.ContractTariffOptionList$OptionItem@ea3cdf, 5=ru.bitel.bgbilling.kernel.tariff.option.server.bean.ContractTariffOptionList$OptionItem@11e281f}
07-25/10:08:54 DEBUG [sa-p-11-t-1] TrafficRangeManager - Add to RangeKey[21071109755400:3:-603979569] 0 (0, 3600)
07-25/10:08:54 INFO [sa-p-11-t-1] ServiceActivatorDeviceWorker - Command result event: ServiceActivatorEvent type=2; inetServId: 22; call: true; oldState: 1; newState: 0; oldOptionSet: 20,43,738,13,14; newOptionSet: 20,43,738,13,14
07-25/10:08:54 INFO [sa-p-11-t-1] ServiceActivatorDeviceWorker - Processing deviceId:7; command ServiceActivatorEvent type=2; inetServId: 22; call: true; oldState: 1; newState: 0; oldOptionSet: 20,43,738,13,14; newOptionSet: 20,43,738,13,14
07-25/10:08:54 INFO [sa-p-11-t-1] ServiceActivatorSet - Invoking connectionModify
07-25/10:08:54 INFO [sa-p-11-t-1] SmartEdgeServiceActivator - Connection modify: oldState: 1; newState: 0; oldOptionSet: [20, 43, 738, 13, 14]; newOptionSet: [20, 43, 738, 13, 14]
07-25/10:08:54 INFO [sa-p-11-t-1] SmartEdgeServiceActivator - Send CoA lock:
Packet type: CoA-Request
Identifier: 1
Authenticator: {39 A4 09 C0 47 29 3B 44 7B 83 94 3F 92 50 AC 3B}
Attributes:
Acct-Interim-Interval=900
Acct-Interim-Interval=900
Service-Type=2
Framed-Protocol=1
Acct-Session-Id=0100FFFF680000B5-500F474C
Forward-Policy=in:HTTP-REDIRECT
HTTP-Redirect-Profile-Name=REDIRECT
Sub-Profile-Name=base-unlimited

07-25/10:08:54 INFO [sa-p-11-t-1] RadiusClient - Sending to /x.x.x.x:3799
Packet type: CoA-Request
Identifier: 1
Authenticator: {39 A4 09 C0 47 29 3B 44 7B 83 94 3F 92 50 AC 3B}
Attributes:
Acct-Interim-Interval=900
Acct-Interim-Interval=900
Service-Type=2
Framed-Protocol=1
Acct-Session-Id=0100FFFF680000B5-500F474C
Forward-Policy=in:HTTP-REDIRECT
HTTP-Redirect-Profile-Name=REDIRECT
Sub-Profile-Name=base-unlimited

07-25/10:08:54 INFO [sa-p-11-t-1] DatagramChannelListener - ru.bitel.bgbilling.kernel.network.radius.RadiusClient$RadiusDatagramChannelListener socket init ok.
07-25/10:08:54 INFO [sa-p-11-t-1] ServiceActivatorDeviceWorker - Process event type[2] result=true
07-25/10:08:54 INFO [rds-clnt-/x.x.x.x-3799] RadiusClient - Recieved from /x.x.x.x:3799
Packet type: CoA-NAK
Identifier: 1
Authenticator: {6F 2A A3 EB 79 1A AD 01 E6 AA 48 E2 87 2A 30 FE}
Attributes:
Error-Cause=405
Event-Timestamp=1343178586
Service-Type=2

07-25/10:08:59 DEBUG [sa-p-11-t-1] EventWorker - Waiting 5000 millis for last future results will done...
07-25/10:08:59 INFO [sa-p-11-t-1] EventWorker - Future is done
07-25/10:08:59 WARN [sa-p-11-t-1] ServiceActivatorDeviceWorker - Task return false
07-25/10:08:59 INFO [sa-p-11-t-1] ServiceActivatorSet - Disconnecting from device


Т.е. при старте oldState=0, а потом становится =1:

Цитата:
07-25/10:08:39 INFO [sa-p-11-t-2] ServiceActivatorDeviceWorker - Command result event: ServiceActivatorEvent type=4; inetServId: 22; call: true; oldState: 0; newState: 0; oldOptionSet: 20,43,738,13,14; newOptionSet: 20,43,738,13,14


Цитата:
07-25/10:08:54 INFO [sa-p-11-t-1] ServiceActivatorDeviceWorker - Processing deviceId:7; command ServiceActivatorEvent type=2; inetServId: 22; call: true; oldState: 1; newState: 0; oldOptionSet: 20,43,738,13,14; newOptionSet: 20,43,738,13,14


Как правильно реализовать Reject-To-Accept?

Автор:  Cromeshnic [ 25 июл 2012, 13:03 ]
Заголовок сообщения:  Re: Решение SmartEdge 100 с авторизацией по порту коммутатор

Ещё такой момент.
Подключаем сессию при положительном балансе, затем загоняем в минуса - всё ок, отрабатывает connectionModify, уходит CoA с редиректом.
Но после этого, если баланс опять сделать положительным, connectionModify не вызыватеся - только serviceModify.
Это нормально?

Страница 3 из 7 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/