BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 02 июл 2025, 16:37

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: 5.1 Radius Netflow + AAA accounting delay-start
СообщениеДобавлено: 13 сен 2011, 13:34 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Пилим ISG в 5.1

Возникла необходимость выключать команду AAA accounting delay-start - иначе в определенных случаях не работает.

Без этой команды NAS шлёт accounting start не дожидаясь определения IP-адреса для сессии -> в start пакете нет атрибута Framed-IP-Address (он приходит позже, в следующем update-пакете) -> встроенный коллектор не создаёт мэппинг ip-сессия -> нетфлоу в реальном времени не считается.

ip для сессии назначается при первом апдейте, содержащем Framed-IP-Address, а вот коллектор хочет делать это только при старте.
При этом при пересчете сессии по сохраненным логам netflow наработка появляется.

Можете реализовать биндинг ip коллектором радиуса по апдейт-пакету?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 5.1 Radius Netflow + AAA accounting delay-start
СообщениеДобавлено: 13 сен 2011, 21:37 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
вот тут даже писать нечего неохото ибо не девлопер )))))))))

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 5.1 Radius Netflow + AAA accounting delay-start
СообщениеДобавлено: 14 сен 2011, 03:04 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
skyb писал(а):
вот тут даже писать нечего неохото ибо не девлопер

Я ж не зря говорил тебе про кашу в голове ;)



Cromeshnic писал(а):
Возникла необходимость выключать команду AAA accounting delay-start

М.б. как страаашный костыль юзать telnet API и через него говорить коту:
Код:
conf t
no aaa accounting delay-start
end

но чревато так это шо пипец :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 5.1 Radius Netflow + AAA accounting delay-start
СообщениеДобавлено: 14 сен 2011, 06:22 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Да не, delay-start отключен. Проблема всплыла как раз из-за этого.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 5.1 Radius Netflow + AAA accounting delay-start
СообщениеДобавлено: 15 сен 2011, 13:24 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Cromeshnic писал(а):

Можете реализовать биндинг ip коллектором радиуса по апдейт-пакету?


В 5.2 в inet такое вроде бы есть


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 5.1 Radius Netflow + AAA accounting delay-start
СообщениеДобавлено: 16 сен 2011, 08:42 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
А в 5.1?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 5.1 Radius Netflow + AAA accounting delay-start
СообщениеДобавлено: 19 сен 2011, 13:21 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Только если как платную доработку. Пишите в хелпдеск.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 5.1 Radius Netflow + AAA accounting delay-start
СообщениеДобавлено: 28 сен 2011, 14:22 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Workaround - пробегаем раз в 4 секунды по всем сессиям на всех насах и мэппим ip->session , если отсутствует:

Код:
package ru.dsi.bgbilling.radius;

import org.apache.log4j.Logger;

import bitel.billing.common.IPUtils;
import bitel.billing.server.processor.dialup.DialUpSessionRealtime;
import ru.bitel.bgbilling.kernel.network.radius.nas.Nas;
import ru.bitel.bgbilling.kernel.network.radius.nas.NasList;
import ru.bitel.bgbilling.modules.dialup.radius.DialUpNas;
import ru.bitel.bgbilling.modules.dialup.radius.DialUpNasConnection;
import ru.bitel.bgbilling.modules.dialup.radius.TrafficInspector;
import ru.bitel.common.StopableThread;

public class SessionIpMapper extends StopableThread {
   private static final Logger log = Logger.getLogger(SessionIpMapper.class.getName());
   private static SessionIpMapper instance = null;

   public SessionIpMapper(){
       if (instance != null)
       {
          throw new IllegalStateException("Current implementation doesn't support more than one SessionIpMapper instance. Use getInstance().");
       }
      
       instance = this;
      
      start();
   }
   
   public static SessionIpMapper getInstance(){
      return instance;
   }

   public void run()
   {
      log.info("Starting SessionIpMapper");

      while (this.working)
       {
         try{
            for(Nas<?,?,?> nas : NasList.getInstance().nases()){
               for(DialUpNasConnection nasCon : ((DialUpNas)nas).connections()){
                  DialUpSessionRealtime session = nasCon.getSession();
                  if(session!=null){
                     if(!session.isFakeSession()){
                        TrafficInspector ti = ((DialUpNas)nas).getTrafficInspector();
                        if(ti!=null){
                           if(ti.getSession(session.getIpAddress())==null){
                              ti.startSession(session, true);
                              session.addLogInfo("IP address register on collector by SessionIpMapper");
                              if(log.isDebugEnabled()){
                                 log.debug("put "+IPUtils.convertLongIpToString(session.getIpAddress()));
                              }
                           }
                        }
                     }
                  }
               }
            }
         }catch (Exception e){
            log.error(e.getMessage(), e);
         }

         try{
            sleep(4000L);
         }catch (Exception e){
            log.error(e.getMessage(), e);
         }
       }
      log.info("Stopping SessionIpMapper");
   }
}


Запускаем наш тред в любом евенте в контексте радиуса:
Код:
import bitel.billing.server.util.*;
import ru.dsi.bgbilling.radius.SessionIpMapper;

public void onEvent( event, setup, con, conSlave )
{
   if(SessionIpMapper.getInstance()==null){
      SessionIpMapper mapper = new SessionIpMapper();
   }
}


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

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


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

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


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

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