BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 14 май 2024, 10:08

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




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 06 апр 2010, 12:23 
Не в сети

Зарегистрирован: 16 май 2008, 14:37
Сообщения: 28
Откуда: Иркутск
Карма: 6
Добрый день, балуемся с ISG для pppoe сессий.
Пытаемся при помощи CoA настроить включение/выключение тарифных опций в виде сервисов ISG.
Со включением все в порядке, шлем
Код:
cisco-SSG-Account-Info=ASERVICE

и сервис включается, а вот с выключением есть проблема.

По цыскиным докам выключение сервиса при посощи CoA делается 2 методами:
1. ASCII Command Code - отсылаем 2 аттрибута:
Код:
cisco-avpair=subscriber:service-name=SERVICE
cisco-avpair=subscriber:command=deactivate-service

2. Binary Command Code - отсылается 1 аттрибут:
Код:
cisco-SSG-Command-Code=0xC SERVICE

Причем 0xC должны быть именно HEX, а остальное нет.

Разница между способами в том что первым можно активировать/деактивировать только 1 сервис за 1 CoA запрос, а вторым способом сразу несколько. Это полезно например для отмены сразу нескольких сервисов ISG.

Дак вот 2й способ не работает с радиусом биллинга, точнее никак не удается послать нужный код в HEX.
Вопрос как это можно сделать? Во freeradius например это делается символом \ .

Для примера логи обоих способов:
1й:
Код:
Apr  6 12:57:42.208 ISK: COA: 11.11.11.11 request queued
Apr  6 12:57:42.208 ISK: RADIUS:  User-Name           [1]   10  "login"
Apr  6 12:57:42.208 ISK: RADIUS:  Framed-IP-Address   [8]   6   10.10.10.10             
Apr  6 12:57:42.208 ISK: RADIUS:  Acct-Session-Id     [44]  18  "4B000000000A735A"
Apr  6 12:57:42.208 ISK: RADIUS:  Vendor, Cisco       [26]  38 
Apr  6 12:57:42.208 ISK: RADIUS:   Cisco AVpair       [1]   32  "subscriber:service-name=SERVICE"
Apr  6 12:57:42.208 ISK: RADIUS:  Vendor, Cisco       [26]  45 
Apr  6 12:57:42.208 ISK: RADIUS:   Cisco AVpair       [1]   39  "subscriber:command=deactivate-service"
Apr  6 12:57:42.208 ISK:  ++++++ CoA Attribute List ++++++
Apr  6 12:57:42.208 ISK: 06B73DF0 0 00000009 username(386) 8 login
Apr  6 12:57:42.208 ISK: 06B736C4 0 00000001 addr(8) 4 10.10.10.10
Apr  6 12:57:42.208 ISK: 06B736D4 0 00000001 session-id(353) 4 684890(A735A)
Apr  6 12:57:42.208 ISK: 06B73704 0 00000009 service-name(351) 6 SERVICE
Apr  6 12:57:42.208 ISK: 06B75544 0 00000009 ssg-command-code(420) 7 0C 53 45 52 56 49 43 45

2й:
Код:
Apr  6 12:28:59.522 ISK: COA: 11.11.11.11 request queued
Apr  6 12:28:59.522 ISK: RADIUS:  User-Name           [1]   10  "login"
Apr  6 12:28:59.522 ISK: RADIUS:  Framed-IP-Address   [8]   6   10.10.10.10             
Apr  6 12:28:59.522 ISK: RADIUS:  Acct-Session-Id     [44]  18  "4B000000000A733D"
Apr  6 12:28:59.522 ISK: RADIUS:  Vendor, Cisco       [26]  16 
Apr  6 12:28:59.522 ISK: RADIUS:   ssg-command-code   [252] 10 
Apr  6 12:28:59.522 ISK: RADIUS:   30 43 53 45 52 56 49 43 45          [Unknown 0CSERVICE]
Apr  6 12:28:59.526 ISK:  ++++++ CoA Attribute List ++++++
Apr  6 12:28:59.526 ISK: 16A3187C 0 00000009 username(386) 8 login
Apr  6 12:28:59.526 ISK: 16A26F50 0 00000001 addr(8) 4 10.10.10.10
Apr  6 12:28:59.526 ISK: 16A26F60 0 00000001 session-id(353) 4 684861(A733D)
Apr  6 12:28:59.526 ISK: 16A26F70 0 00000009 ssg-command-code(420) 8 30 43 53 45 52 56 49 43 45


PS, есть еще вот такая дока, в ней атрибут расписан вот так:
Код:
vsa cisco generic 252 binary 0b suffix " service1"
vsa cisco generic 252 binary 0b suffix " service2"
vsa cisco generic 252 binary 0c suffix " service3"
vsa cisco generic 252 binary 0b suffix " service4"


Версия БГ 5.0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 12 апр 2010, 13:54 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Проще говоря, нужна возможность указывать escape-коды для Unicode-символов в конфиге модуля dialup


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 07 май 2010, 12:30 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Цитата:
Вопрос как это можно сделать? Во freeradius например это делается символом \ .

Т.е. как-то так?
cisco-SSG-Command-Code=\0xC SERVICE
А какая магия вообще заключена в коде C? Т.е. 12..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 07 май 2010, 12:36 
Не в сети

Зарегистрирован: 16 май 2008, 14:37
Сообщения: 28
Откуда: Иркутск
Карма: 6
Цитата:
Т.е. как-то так?
cisco-SSG-Command-Code=\0xC SERVICE
А какая магия вообще заключена в коде C? Т.е. 12..

Да как-то так.
Есть еще команда с 0xB, которая активирует сервис, это не магия, это "hexadecimal command code format" у циски...

Тут они все в табличке : http://www.cisco.com/en/US/docs/ios/12_ ... #wp1118806


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 16 авг 2010, 14:00 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Судя по докам, это все только для 252-ого атрибута и код - это только префикс в самом начале?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 16 авг 2010, 14:16 
Не в сети

Зарегистрирован: 16 май 2008, 14:37
Сообщения: 28
Откуда: Иркутск
Карма: 6
Да.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 16 авг 2010, 17:57 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Выложили для 5.1. А вот для предыдущих версий сложнее сделать...
\0xC aaa
или в 8-ричном
\077 aaa

В dictionary.xml нужно будет поменять еще
Код:
<attribute name="cisco-SSG-Command-Code" type="string" add="yes" code="252"/>
на
Код:
<attribute name="cisco-SSG-Command-Code" type="abinary" code="252"/>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 18 авг 2010, 10:12 
Не в сети

Зарегистрирован: 16 май 2008, 14:37
Сообщения: 28
Откуда: Иркутск
Карма: 6
До 5.1 пока что не дошли..
Может пачик для 5.0 можно всетаки?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 19 авг 2010, 18:35 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Нет, там RADIUS API полностью поменялось. Двойная работа выйдет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 27 янв 2011, 09:03 
Не в сети

Зарегистрирован: 16 май 2008, 14:37
Сообщения: 28
Откуда: Иркутск
Карма: 6
Проверили, работает. Спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 27 янв 2011, 10:09 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Олсо, когда приходит CoA-NAK, мы в нашем обработчике пытаемся дописать его в log_session_<mid>_<yyyymm> стандартным способом (через RadiusUtils.addToLog()):

Код:
ru.bitel.bgbilling.kernel.network.radius.RadiusUtils.addToLog(setup, setup.getModuleId(), response, ((Session)session).getStartTime().getTime(), ((Session)session).getRequestLogRecordId());


И на таком пакете ("???" - нераспознанные символы, там просто числа приходят, не могут преобразоваться в строку):
Код:
Packet type: CoA-NAK
Identifier: 70
Authenticator: {1C FA 03 0F 0A 38 23 27 E1 5F FF 43 69 A7 6E 36}
Attributes:
  cisco-SSG-Command-Code=\0x10 ??? 5J;nas-port:10.10.0.1:0/0/0/251;TURBO
  cisco-SSG-Account-Info=$IGigabitEthernet0/0.251


получаем ошибку:

Код:
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream - java.sql.SQLException: Illegal mix of collations (utf8_general_ci,IMPLICIT), (cp1251_general_ci,COERCIBLE), (cp1251_general_ci,COERCIBLE) for operation 'concat'
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2554)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1761)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2046)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1964)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1949)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at ru.bitel.bgbilling.kernel.network.radius.RadiusUtils.addToLog(RadiusUtils.java:544)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at ru.dsi.bgbilling.radius.RadiusPacketSender$1.onPacket(RadiusPacketSender.java:64)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at ru.bitel.common.io.DatagramChannelListener.select(DatagramChannelListener.java:145)
script 01-27/11:48:56 ERROR [Thread-88] LoggingPrintStream -    at ru.dsi.bgbilling.radius.RadiusPacketSender.run(RadiusPacketSender.java:148)


ru.dsi.bgbilling.radius.RadiusPacketSender - наш класс, позже выложим. Это неважно тут.

В cisco-SSG-Command-Code приходит код ошибки.

Т.е. циска стандартно присылает в cisco-SSG-Command-Code нечто, что радиус биллинга не может распарсить в рамках abinary.

Код:
<attribute name="cisco-SSG-Command-Code" type="abinary" code="252"/>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 27 янв 2011, 10:12 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Некритично, информация для размышления.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 02 мар 2012, 01:24 
Не в сети

Зарегистрирован: 13 июн 2008, 15:10
Сообщения: 362
Откуда: Москва
Карма: 0
Коллеги, сорри что вклиниваюсь. Но вот вы послали CoA, и сервисы активировались\деактивировались, неважно. Но ведь это как правило какя-то зона, которая рано или поздно перейдет в дефолтную опцию, суть дефолтную зону, верно?

А если так, то в дефолтной зоне установлены атрибуты немного другого вида, т.е. обычные AService, т.е. без всяких префиксов. У меня, например, в этот момент - все перестает нормально работать... Т.е. получается конфликт...

_________________
God Bless Linux! and blessings to FreeBSD!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 02 мар 2012, 06:29 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Пилите лучше 5.2
У меня в 5.1 CoA отправляются собственным runnable-классом в контексте radius-сервера, с помощью инспектора у вас не получится сделать, даже если напишете свой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 02 мар 2012, 10:00 
Не в сети

Зарегистрирован: 13 июн 2008, 15:10
Сообщения: 362
Откуда: Москва
Карма: 0
Cromeshnic писал(а):
Пилите лучше 5.2
У меня в 5.1 CoA отправляются собственным runnable-классом в контексте radius-сервера, с помощью инспектора у вас не получится сделать, даже если напишете свой.


Офигительные перспективы... А почему не получится? Скажите, а что за собственный runnable-класс. Какая логика?

_________________
God Bless Linux! and blessings to FreeBSD!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ISG, CoA и cisco-SSG-Command-Code аттрибут.
СообщениеДобавлено: 20 мар 2012, 14:13 
Не в сети

Зарегистрирован: 16 ноя 2011, 18:30
Сообщения: 115
Карма: 0
Насколько я понял, тип атрибута abinary обрабатывает специальным образом лишь первый байт.
Почему только первый???
Применительно к cisco ISG CoA интерфейсу их там может быть несколько.
По хорошему нужно при переводе из строки во внутренний формат все ескейпы \NNN и \xNN восьмеричной и шестнадцатеричных систем переводить в байты независимо от их положения в строке. А в обратном направлении все непринтабл символы эскейпить в шестнадцатеричный вид.
Так будет правильнее.


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

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


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

Сейчас этот форум просматривают: Google [Bot] и гости: 1


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

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