forum.bitel.ru http://forum.bitel.ru/ |
|
[feature request] Параметры сервиса inet http://forum.bitel.ru/viewtopic.php?f=44&t=6602 |
Страница 1 из 2 |
Автор: | Cromeshnic [ 26 мар 2012, 11:11 ] |
Заголовок сообщения: | [feature request] Параметры сервиса inet |
Довольно очевидная вещь, на самом деле. Вот мы хотим задать клиенту скорость в тарифе в модуле Inet. Скажем, 1000kbps Для этого мы заводим опцию модуля Inet: INET1000 (id=1) В конфиге устройства определяем, скажем: Код: nas.radius.inetOption.1.attributes=cisco-avpair=ip:sub-qos-policy-in=INET-1000K-IN;cisco-avpair=ip:sub-qos-policy-out=INET-1000K Или, в случае cisco ISG: - для устройства, на котором авторизуются родительские сессии: Код: nas.radius.inetOption.1.attributes=cisco-SSG-Account-Info=AINET1000 - для устройства, на котором авторизуются дочерние сессии: Код: @internet.default.attributes=... @accounting.isgservice.attributes=... @1000kb.speed.attributes=cisco-SSG-Service-Info=QU;;1000000;;D;;1000000 nas.radius.inetOption.1.attributes=cisco-SSG-Service-Info=IINET1000;{@accounting.isgservice.attributes};{@internet.default.attributes};{@1000kb.speed.attributes} Получается, для каждой скорости придётся определять: новую опцию, новые записи конфигов. Кроме очевидной громоздкости, невозможно задать скорость и другие радиус-атрибуты индивидуально на логине. Например, в dialup можно задавать персональные радиус-атрибуты для логина прямо на договоре. Мы этим активно пользуемся для индивидуального роутинга в vpn: Вложение: В Inet можно задать для сервиса (логина) только опции, которые настраиваются глобально: Вложение: Поэтому логично ввести параметризованные опции: Скажем, опция может иметь один строковый параметр (больше не вижу необходимости, обсуждаемо): - при задании опции на сервисе указываем опцию и значение параметра - при задании опции в тарифном плане указываем опцию и значение параметра Тогда в нашем случае конфиг скоростей выглядел бы так: Код: nas.radius.inetOption.1.attributes=cisco-avpair=ip:sub-qos-policy-in=INET-{$value}K-IN;cisco-avpair=ip:sub-qos-policy-out=INET-{$value}K В случае cisco ISG: - для устройства, на котором авторизуются родительские сессии: Код: nas.radius.inetOption.1.attributes=cisco-SSG-Account-Info=AINET{$value} - для устройства, на котором авторизуются дочерние сессии: тут всё сложнее, т.к. сервисы авторизуются на отдельном договоре, где уже нет нашего {$value}. Придётся прописывать вручную все скорости INET1000 в виде сервисов служебного договора. Но даже так, конфиг устройства для основных сервисов сокращается. Ну и, появляется возможность конфигурировать Framed-Route и прочие атрибуты прямо на договоре: создаём шаблонную опцию FramedRoute (id=10) В конфиге указываем nas.radius.inetOption.1.attributes=Framed-Route={$value} На договоре для сервиса добаляем опцию FramedRoute с нужным значением. Discuss? |
Автор: | Cromeshnic [ 26 мар 2012, 11:12 ] |
Заголовок сообщения: | Re: Feature request: Параметры опций inet |
Можно даже не делить опции на параметризованные и нет, а просто не задавать значение параметра, если он не используется. |
Автор: | skyb [ 26 мар 2012, 12:21 ] |
Заголовок сообщения: | Re: [feature request] Параметры опций inet |
Да согласен что текущая конструкция громоздкая. И что нужно упрощать. В принципе для начала пойдет и с переменной. |
Автор: | Cromeshnic [ 26 мар 2012, 12:22 ] |
Заголовок сообщения: | Re: [feature request] Параметры опций inet |
А не для начала? |
Автор: | Amir [ 26 мар 2012, 14:15 ] |
Заголовок сообщения: | Re: [feature request] Параметры опций inet |
А чем она громозже конфигов dialup? И потом не найдете же, если что, откуда такая скорость выдалась. Пока против такого изменения опций, т.к. с момента создания они характеризовали некоторое неизменное описание параметров соединения. При той же тарификации о том, что нужно изменить соединение сообщает то, что набор опций изменился, а не то, что у какой-то опции изменился параметр. По поводу атрибутов роутинга - мне кажется, что логичнее будет шаблон атрибутов в конфигурации типа сервиса: serv.params.route.title=Route serv.radius.attributes=Framed-Route={$route} А из конфигурации serv.params... при редактировании сервиса будут отображаться дополнительная таблица параметров, куда можно ввести значения. Конфигурацию, наверное, надо упрощать с помощью шаблонов, как сейчас {@value}, что-то подобное, но наоборот. Кстати, при объявлении сейчас не обязательно указывать @ вначале (@internet.default.attributes=...). Подойдет любой параметр конфигурации. |
Автор: | Cromeshnic [ 26 мар 2012, 15:03 ] |
Заголовок сообщения: | Re: [feature request] Параметры опций inet |
Цитата: ри той же тарификации о том, что нужно изменить соединение сообщает то, что набор опций изменился, а не то, что у какой-то опции изменился параметр. Резонно. Цитата: По поводу атрибутов роутинга - мне кажется, что логичнее будет шаблон атрибутов в конфигурации типа сервиса: serv.params.route.title=Route serv.radius.attributes=Framed-Route={$route} А из конфигурации serv.params... при редактировании сервиса будут отображаться дополнительная таблица параметров, куда можно ввести значения. Вроде нормальный вариант, завтра подумаю. |
Автор: | Cromeshnic [ 27 мар 2012, 08:35 ] |
Заголовок сообщения: | Re: [feature request] Параметры опций inet |
Цитата: Вроде нормальный вариант, завтра подумаю. Да, подходит. Только естественно записи должны добавляться и удаляться, один и тот же параметр может повторяться несколько раз (cisco-avpair например). Пустые значения тоже учитываются, мало ли. Сделаете? |
Автор: | Amir [ 27 мар 2012, 16:10 ] |
Заголовок сообщения: | Re: [feature request] Параметры опций inet |
А эти радиус атрибуты нужно выдавать только в Accept? |
Автор: | Cromeshnic [ 28 мар 2012, 08:06 ] |
Заголовок сообщения: | Re: [feature request] Параметры опций inet |
Да, а где ещё? В CoA точно не надо. Вообще, правильный ответ на этот вопрос: "так же, как было сделано в dialup". |
Автор: | Cromeshnic [ 02 апр 2012, 13:09 ] |
Заголовок сообщения: | Re: [feature request] Параметры опций inet |
up |
Автор: | Cromeshnic [ 10 апр 2012, 09:04 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
up |
Автор: | Amir [ 11 апр 2012, 21:29 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Выложили обновление. В конфигурации типа сервиса, например: Код: #Дополнительные параметры, которые будут доступны при редактировании сервиса:
param.route.title=Роутинг param.route2.title=Роутинг2 #Атрибуты сервиса serv.radius.realm.default.attributes=Framed-Route=$route serv.radius.disable.attributes=Framed-Route=$route2 |
Автор: | Cromeshnic [ 14 май 2012, 13:35 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
inet вер. 5.2 сборка 877 от 11.05.2012 19:35:18 Клиент: вер. 5.2 сборка 981 от 12.05.2012 16:58:19 os: Windows XP; java: Java HotSpot(TM) Client VM, v.1.6.0_29 Сервер: вер. 5.2 сборка 1185 от 11.05.2012 19:35:19 os: Linux; java: Java HotSpot(TM) Client VM, v.1.6.0_27 Добавили 2 параметра для типа сервиса: Код: #Дополнительные параметры, которые будут доступны при редактировании сервиса: param.route.title=Framed-Route param.acl.title=Filter-id #Атрибуты сервиса serv.radius.realm.default.attributes=Framed-Route=$route serv.radius.realm.default.attributes=Filter-Id=$acl На сервисе договора: Вложение: inet-service-config.jpg [ 10.81 КБ | Просмотров: 15598 ] В результате выдаётся только один из атрибутов: Цитата: 05-14/14:55:27 INFO [rdsLstnr-p-9-t-7] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS: Packet type: Access-Accept Identifier: 64 Authenticator: {} Attributes: Framed-IP-Address=10.0.0.101 Session-Timeout=86400 Filter-Id= Idle-Timeout=7200 cisco-avpair=ip:dns-servers=8.8.8.8 cisco-SSG-Account-Info=ADEFAULT cisco-SSG-Account-Info=AINET478 cisco-SSG-Account-Info=ALOCAL1 Поэкспериментировал - кажется выдаётся последний из списка serv.radius.realm.default.attributes Другая проблема - если значение атрибута на задано, он всё равно выдаётся с пустым значением. Это не всегда нужно, чаще даже не нужно. Третья проблема - если для типа сервиса прописано 2 параметра, то только 2 я и смогу задать, ни больше, ни меньше. На практике некоторые могут не требоваться (см выше), или один и тот же атрибут нужно добавить несколько раз (например cisco-avpair) с разными значениями. Короче, нужна кнопка "+", как в dialup. Вот рабочий клиент в dialup: Вложение:
|
Автор: | Cromeshnic [ 18 май 2012, 14:22 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
up |
Автор: | Amir [ 22 май 2012, 18:33 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Выложили. Подразумевалось, что serv.radius.realm.default.attributes= - это шаблон, т.е. работало так: serv.radius.realm.default.attributes=Framed-Route=$route;Filter-Id=$acl Чтобы работало так, как хотите, шаблон serv.radius.realm.default.attributes= нужно убрать, вместо него изменить описание параметров: Код: param.route.title=Framed-Route
param.route.attribute=Framed-Route #param.route.realms= param.acl.title=Filter-id param.acl.attribute=Filter-id #param.acl.realms= |
Автор: | nik247 [ 08 июн 2012, 01:56 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Спасибо. Работает. А можно настройки параметров добавить в настройки шаблонов договоров? |
Автор: | Cromeshnic [ 17 авг 2012, 10:41 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Я всё думаю про framed route / ip route атрибуты радиуса... Код: cisco-avpair = ip:route=10.10.10.1 255.255.255.252 0.0.0.0 tag 1909 Framed-Route = 192.168.0.0/24 Хочется, чтобы дополнительные ip-адреса для сессии учитывались в биллинге: - по ним считался netflow/детализация - вёлся учёт ip-ресурсов - выдавался mapping на cisco SCE В dialup есть что-то такое, но в документации не описано: Цитата: log_session_net_{mid}_yyyyMM сети, маршрутизируемые через выданные сессиям ip адреса (с) http://dbinfo.bitel.ru В модуле inet для сбора netflow по нескольким диапазонам для одного сервиса есть механизм дочерних сервисов Было бы круто через дочерние же сервисы выдавать и framed-route/ip route Это такая идея, nice-to-have. |
Автор: | Cromeshnic [ 17 авг 2012, 10:45 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Можно попробовать прикостылить самим: - Завести дочерние сервисы двух типов: для framed route и для ip route - В скриптах ServiceActivator-а на создание/удаление сервиса прописывать соответствующие атрибуты для родительского сервиса. - В скриптах ServiceActivator-а на создание/удаление сервиса делать mapping на SCE для родительского сервиса Возникает вопрос: как работает ServiceActivator для дочерних сервисов? Неплохо бы отразить в документации. |
Автор: | borisk [ 17 авг 2012, 11:16 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Для дочерних сервисов SA не вызывается. В документации отражено. |
Автор: | Amir [ 17 авг 2012, 13:23 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Ну не совсем не вызывается - не вызывается отдельно. Но при изменении дочернего сервиса вызовется serviceModify родительского, в котором есть информация о дочерних. |
Автор: | Cromeshnic [ 17 авг 2012, 13:42 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
О, вот это оптимально, спасибо. |
Автор: | Amir [ 17 авг 2012, 14:02 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
По поводу Framed-Route: есть непротестированный функционал. Попробуйте создать тип сервиса, который будет дочерним, в его конфигурации указать serv.radius.framedRoute=1, адреса указать подсеть, добавить сервис с этим типом на договор с выбранной сетью. Тогда в Access-Accept эта подсеть должна выдаться в атрибуте Framed-Route. По netflow Framed-Route тоже вроде бы должен считать. |
Автор: | Cromeshnic [ 17 авг 2012, 14:16 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Так это прям именно то, что я хочу ![]() Спасибо, потестируем. |
Автор: | Cromeshnic [ 20 авг 2012, 14:03 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Не работает. По коду: Код: private boolean setIp(...){ ... List routeNets = null; ... if (childServTypeRuntime.radiusFramedRoute) { ... if (routeNets == null) { routeNets = new ArrayList(4); } routeNets.add(IpNet.newInstance(addressFrom, addressTo)); ... } ... } и больше routeNets нигде не используется inet вер. 5.2 сборка 962 от 16.08.2012 15:57:53 |
Автор: | Cromeshnic [ 20 авг 2012, 14:41 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Также, если я в типе сервиса указываю "статическая сеть", то не могу добавить сервис: "не указан диапазон адресов", хотя адрес и маску я указал. |
Автор: | Amir [ 21 авг 2012, 13:36 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Цитата: и больше routeNets нигде не используется Действительно. Не напомните как нужно формировать?"192.168.1.0/24 192.168.1.1 1 2 -1 3 400" - подсеть, IP-адрес из Framed-Ip, потом что-то нужно? Для каждой подсети отдельный Framed-Route? |
Автор: | Amir [ 21 авг 2012, 13:41 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Цитата: Также, если я в типе сервиса указываю "статическая сеть", то не могу добавить сервис: "не указан диапазон адресов", хотя адрес и маску я указал. Не получилось повторить. Может быть поменяли тип сервиса, а вкладку договора не переоткрыли?
|
Автор: | zzeka [ 21 авг 2012, 14:23 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Amir писал(а): Цитата: и больше routeNets нигде не используется Действительно. Не напомните как нужно формировать?"192.168.1.0/24 192.168.1.1 1 2 -1 3 400" - подсеть, IP-адрес из Framed-Ip, потом что-то нужно? Для каждой подсети отдельный Framed-Route? Из мануала к SE100: Цитата: 22 standart attribute Framed-Route IP address. The format is h.h.h.h/nn g.g.g.g n where: • h.h.h.h=IP address of destination host or network. • nn=optional netmask size in bits (if not present, defaults to 32). • g.g.g.g=IP address of gateway. • n=Number of hops for this route. Cisco мы передаем либо как Цитата: cisco-avpair ip:route=h.h.h.h 255.255.255.255 0.0.0.0 tag 1909 либо Цитата: Framed-route h.h.h.h/nn В RFC написано следующее. Код: RFC 2865 Framed-Route. The Text field is one or more octets, and its contents are implementation dependent. It is intended to be human readable and MUST NOT affect operation of the protocol. It is recommended that the message contain UTF-8 encoded 10646 [7] characters. For IP routes, it SHOULD contain a destination prefix in dotted quad form optionally followed by a slash and a decimal length specifier stating how many high order bits of the prefix to use. That is followed by a space, a gateway address in dotted quad form, a space, and one or more metrics separated by spaces. For example, "192.168.1.0/24 192.168.1.1 1 2 -1 3 400". The length specifier may be omitted, in which case it defaults to 8 bits for class A prefixes, 16 bits for class B prefixes, and 24 bits for class C prefixes. For example, "192.168.1.0 192.168.1.1 1". Whenever the gateway address is specified as "0.0.0.0" the IP address of the user SHOULD be used as the gateway address. Для каждой подсети - отдельный framed routing. |
Автор: | snark [ 21 авг 2012, 14:26 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Раз уж заговорили об атрибутах, то очень хотелось бы, чтобы была возможность записывать атрибуты не одной строкой, а построчно. Т.е. вместо такой записи (пример взят в вики): Код: attrset.1.title=Скорость 64-Арена attrset.1.attributes=mpd-filter=1#1=match dst net 82.200.107.0/27 and src net 192.168.120.0/24;mpd-filter=2#1=match src net 82.200.107.0/27 and dst net 192.168.120.0/24;mpd-limit=in#1=flt1 pass;mpd-limit=in#2=all shape 64000 4000 pass;mpd-limit=out#1=flt2 pass;mpd-limit=out#2=all shape 64000 4000 pass; Было бы здорово иметь, если использовать heredoc, например, такую: Код: attrset.1.title=Скорость 64-Арена attrset.1.attributes=<<ANY_TEXT mpd-filter=1#1=match dst net 82.200.107.0/27 and src net 192.168.120.0/24; mpd-filter=2#1=match src net 82.200.107.0/27 and dst net 192.168.120.0/24; mpd-limit=in#1=flt1 pass; mpd-limit=in#2=all shape 64000 4000 pass; mpd-limit=out#1=flt2 pass; mpd-limit=out#2=all shape 64000 4000 pass; ANY_TEXT; Ну или еще как нить (в кавычки там заключать, если heredoc не нравится), лишь бы было читабельнее и, как следствие, удобнее. |
Автор: | Amir [ 27 авг 2012, 17:09 ] |
Заголовок сообщения: | Re: [feature request] Параметры сервиса inet |
Выложили обновление модуля. В конфигурации NAS'а (или типа устройства): Код: #radius.framedRoute.vendor=-1
#radius.framedRoute.type=22 #radius.framedRoute.pattern=$net $ip 1 radius.framedRoute.pattern=$net |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |