forum.bitel.ru http://forum.bitel.ru/ |
|
ISG, CoA и cisco-SSG-Command-Code аттрибут. http://forum.bitel.ru/viewtopic.php?f=5&t=3811 |
Страница 1 из 1 |
Автор: | zzeka [ 06 апр 2010, 12:23 ] |
Заголовок сообщения: | ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Добрый день, балуемся с 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 |
Автор: | Cromeshnic [ 12 апр 2010, 13:54 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Проще говоря, нужна возможность указывать escape-коды для Unicode-символов в конфиге модуля dialup |
Автор: | Администратор [ 07 май 2010, 12:30 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Цитата: Вопрос как это можно сделать? Во freeradius например это делается символом \ . Т.е. как-то так? cisco-SSG-Command-Code=\0xC SERVICE А какая магия вообще заключена в коде C? Т.е. 12.. |
Автор: | zzeka [ 07 май 2010, 12:36 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Цитата: Т.е. как-то так? cisco-SSG-Command-Code=\0xC SERVICE А какая магия вообще заключена в коде C? Т.е. 12.. Да как-то так. Есть еще команда с 0xB, которая активирует сервис, это не магия, это "hexadecimal command code format" у циски... Тут они все в табличке : http://www.cisco.com/en/US/docs/ios/12_ ... #wp1118806 |
Автор: | Amir [ 16 авг 2010, 14:00 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Судя по докам, это все только для 252-ого атрибута и код - это только префикс в самом начале? |
Автор: | zzeka [ 16 авг 2010, 14:16 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Да. |
Автор: | Amir [ 16 авг 2010, 17:57 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Выложили для 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"/>
|
Автор: | zzeka [ 18 авг 2010, 10:12 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
До 5.1 пока что не дошли.. Может пачик для 5.0 можно всетаки? |
Автор: | Администратор [ 19 авг 2010, 18:35 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Нет, там RADIUS API полностью поменялось. Двойная работа выйдет. |
Автор: | zzeka [ 27 янв 2011, 09:03 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Проверили, работает. Спасибо! |
Автор: | Cromeshnic [ 27 янв 2011, 10:09 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Олсо, когда приходит 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"/>
|
Автор: | Cromeshnic [ 27 янв 2011, 10:12 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Некритично, информация для размышления. |
Автор: | Dmitri [ 02 мар 2012, 01:24 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Коллеги, сорри что вклиниваюсь. Но вот вы послали CoA, и сервисы активировались\деактивировались, неважно. Но ведь это как правило какя-то зона, которая рано или поздно перейдет в дефолтную опцию, суть дефолтную зону, верно? А если так, то в дефолтной зоне установлены атрибуты немного другого вида, т.е. обычные AService, т.е. без всяких префиксов. У меня, например, в этот момент - все перестает нормально работать... Т.е. получается конфликт... |
Автор: | Cromeshnic [ 02 мар 2012, 06:29 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Пилите лучше 5.2 У меня в 5.1 CoA отправляются собственным runnable-классом в контексте radius-сервера, с помощью инспектора у вас не получится сделать, даже если напишете свой. |
Автор: | Dmitri [ 02 мар 2012, 10:00 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Cromeshnic писал(а): Пилите лучше 5.2 У меня в 5.1 CoA отправляются собственным runnable-классом в контексте radius-сервера, с помощью инспектора у вас не получится сделать, даже если напишете свой. Офигительные перспективы... А почему не получится? Скажите, а что за собственный runnable-класс. Какая логика? |
Автор: | afedorov [ 20 мар 2012, 14:13 ] |
Заголовок сообщения: | Re: ISG, CoA и cisco-SSG-Command-Code аттрибут. |
Насколько я понял, тип атрибута abinary обрабатывает специальным образом лишь первый байт. Почему только первый??? Применительно к cisco ISG CoA интерфейсу их там может быть несколько. По хорошему нужно при переводе из строки во внутренний формат все ескейпы \NNN и \xNN восьмеричной и шестнадцатеричных систем переводить в байты независимо от их положения в строке. А в обратном направлении все непринтабл символы эскейпить в шестнадцатеричный вид. Так будет правильнее. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |