forum.bitel.ru http://forum.bitel.ru/ |
|
5.1 Radius Netflow + AAA accounting delay-start http://forum.bitel.ru/viewtopic.php?f=5&t=5877 |
Страница 1 из 1 |
Автор: | Cromeshnic [ 13 сен 2011, 13:34 ] |
Заголовок сообщения: | 5.1 Radius Netflow + AAA accounting delay-start |
Пилим ISG в 5.1 Возникла необходимость выключать команду AAA accounting delay-start - иначе в определенных случаях не работает. Без этой команды NAS шлёт accounting start не дожидаясь определения IP-адреса для сессии -> в start пакете нет атрибута Framed-IP-Address (он приходит позже, в следующем update-пакете) -> встроенный коллектор не создаёт мэппинг ip-сессия -> нетфлоу в реальном времени не считается. ip для сессии назначается при первом апдейте, содержащем Framed-IP-Address, а вот коллектор хочет делать это только при старте. При этом при пересчете сессии по сохраненным логам netflow наработка появляется. Можете реализовать биндинг ip коллектором радиуса по апдейт-пакету? |
Автор: | skyb [ 13 сен 2011, 21:37 ] |
Заголовок сообщения: | Re: 5.1 Radius Netflow + AAA accounting delay-start |
вот тут даже писать нечего неохото ибо не девлопер ))))))))) |
Автор: | snark [ 14 сен 2011, 03:04 ] |
Заголовок сообщения: | Re: 5.1 Radius Netflow + AAA accounting delay-start |
skyb писал(а): вот тут даже писать нечего неохото ибо не девлопер Я ж не зря говорил тебе про кашу в голове ![]() Cromeshnic писал(а): Возникла необходимость выключать команду AAA accounting delay-start М.б. как страаашный костыль юзать telnet API и через него говорить коту: Код: conf t no aaa accounting delay-start end но чревато так это шо пипец ![]() |
Автор: | Cromeshnic [ 14 сен 2011, 06:22 ] |
Заголовок сообщения: | Re: 5.1 Radius Netflow + AAA accounting delay-start |
Да не, delay-start отключен. Проблема всплыла как раз из-за этого. |
Автор: | stark [ 15 сен 2011, 13:24 ] |
Заголовок сообщения: | Re: 5.1 Radius Netflow + AAA accounting delay-start |
Cromeshnic писал(а): Можете реализовать биндинг ip коллектором радиуса по апдейт-пакету? В 5.2 в inet такое вроде бы есть |
Автор: | Cromeshnic [ 16 сен 2011, 08:42 ] |
Заголовок сообщения: | Re: 5.1 Radius Netflow + AAA accounting delay-start |
А в 5.1? |
Автор: | Администратор [ 19 сен 2011, 13:21 ] |
Заголовок сообщения: | Re: 5.1 Radius Netflow + AAA accounting delay-start |
Только если как платную доработку. Пишите в хелпдеск. |
Автор: | Cromeshnic [ 28 сен 2011, 14:22 ] |
Заголовок сообщения: | Re: 5.1 Radius Netflow + AAA accounting delay-start |
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(); } } |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |