Довольно очевидная вещь, на самом деле.
Вот мы хотим задать клиенту скорость в тарифе в модуле 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:
Вложение:
framed-route.jpg [ 36.45 КБ | Просмотров: 15799 ]
В Inet можно задать для сервиса (логина) только опции, которые настраиваются глобально:
Вложение:
inet-service.jpg [ 23.89 КБ | Просмотров: 15799 ]
Поэтому логично ввести
параметризованные опции:
Скажем, опция может иметь один строковый параметр
(больше не вижу необходимости, обсуждаемо):
- при задании опции на сервисе указываем опцию и значение параметра
- при задании опции в тарифном плане указываем опцию и значение параметра
Тогда в нашем случае конфиг скоростей выглядел бы так:
Код:
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?