Ericsson (RedBack) SmartEdge RSE
Пример конфигурации для SmartEdge RSE.
В типе устройства указывается SmartEdge*ServiceActivator в поле "Обработчик активации сервисов" и SmartEdge*ProtocolHandler в поле "Обработчик процессора протокола", в зависимости от используемой схемы - просто PPPoE - SmartEdgeServiceActivator, CLIPS - SmartEdgeClipsServiceActivator, dot1q -SmartEdgeDot1qServiceActivator, static CLIPS - SmartEdgeStaticClipsServiceActivator как "Обработчик активации сервисов" и аналогично в поле "Обработчик процессора протокола".
В конфигурации типа устройства нужно указать:
# Режим поиска сервиса (аккаунта) договора: 0 (по умолчанию) - по логину, 1 - по интерфейсу на устройстве (в предобработке должны быть
# проставлены опции AGENT_REMOTE_ID и AGENT_CIRCUIT_ID или INTERFACE_ID), 2 - по VLAN на устройстве (в предобработке
# должны быть проставлены опции AGENT_REMOTE_ID и AGENT_CIRCUIT_ID или VLAN_ID), 4 - по VLAN на устройстве или
# дочернем устройстве (в предобработке должны быть проставлены опции AGENT_REMOTE_ID и AGENT_CIRCUIT_ID или VLAN_ID),
# 5 - по MAC-адресу на устройстве (в предобработке должна быть проставлена опция MAC_ADDRESS), 6 - по MAC-адресу на
# устройстве или дочернем устройстве (в предобработке должна быть проставлена опция MAC_ADDRESS).
#radius.servSearchMode=0
# Нужно ли проверять пароль: 0 - нет (например, для IPoE), 1 (по умолчанию) - да.
#radius.password.verification=1
# Порт для отправки PoD и CoA-запросов (по умолчанию - порт, заданный в устройстве в поле Хост/порт)
radius.port=
3799
# При выдаче Access-Accept добавлять запись в базу.
# Hеобходимо, если используется Reject-To-Accept и по Start-пакету нельзя определить в каком состоянии соединение
connection.start.fromAccept=
1
# При создании сессии по Update-пакету нужно ли игнорировать отсутствие IP-адреса сессии (Framed-Ip-Address). По умолчанию сессия
# по Update-пакету без адреса не создается (0).
#connection.start.fromUpdate.ignoreFramedIpLack=0
# Таймаут перевода соединения в статус suspended при отсутствии радиус пакетов
connection.suspend.timeout=
3600
# Таймаут закрытия соединения при отcутствии радиус пакетов (не складывается с connection.suspend.timeout)
connection.close.timeout=
3600
# При закрытии соединения по таймауту, 0 (по умолчанию) - просто закрыть,
# 1 - попытаться сбросить также на NAS'е (вызвать connectionClose у обработчика активации сервисов)
#connection.close.timeout.forceClose=1
# Атрибуты, выдаваемые при авторизации по реалму default (default - реалм по умолчанию)
radius.realm.default.attributes=Acct-Interim-Interval=
900
# Коды ошибок, при которых отвечать Access-Accept в состоянии disable (rejectToAccept)
radius.disable.accessCodes=
# Какие адреса выдавать при ответе Access-Accept в состоянии disable:
# 0 (по умолчанию) - из radius.disable.ipCategories, 1 - так же, как если бы не было ошибки (в том числе привязанные к сервису в договоре)
#radius.disable.mode=0
# Атрибуты, выдаваемые при ответе Access-Accept в состоянии disable
radius.disable.attributes=Acct-Interim-Interval=
900
# Id фиктивного сервиса, к которому будут привязываться сессии, по которым нормальный сервис не был найден (код ошибки: 1, логин не найден).
# Необходим, если в radius.disable.accessCodes присутствует код 1
#radius.disable.servId=
# Режим работы ограничения доступа через опцию. По умолчанию отключено для обратной совместимости, но рекомендуется использовать этот режим.
sa.optionMode=
1
# Шаблон опций-скорости (1 - опция-папка, в которой содержатся опции-скорости)
radius.inetOption.
1
.template=Service-Name:
1
=rse-inet;Service-Parameter:
1
=
in
=
$in
inb=
$inb
out=
$out
outb=
$outb
;Service-Options:
1
=
0
radius.inetOption.
14
.attributes=Service-Name:
2
=limited;Service-Options:
2
=
1
;Service-Parameter:
2
=url=http://unpaid.provider.ru/
691
-
4
-
31
.html
# ID опций, которые нужно включать, если необходимо ограничить (отключить) доступ (и выключать перед снятием ограничения)
sa.radius.service.disable.optionIds=
14
# Имена RSE-сервисов, при которых доступ ограничен (чтобы биллинг понимал, когда у сессии доступ ограничен)
radius.serviceName.disable=limited
# Атрибуты сессии, которые отправляются в CoA (для того, чтобы SE идентифицировал, для какой сессии запрос)
sa.radius.connection.attributes=Acct-Session-Id
# Не сбрасывать сессию при включении/отключении доступа (а менять параметры)
sa.radius.connection.withoutBreak=
1
# Префикс набора опций для ServiceActivator (используем тот же набор, что используется для выдачи в Access-Accept)
sa.radius.option.attributesPrefix=radius.inetOption.
# Проверка на повторную аутентификацию при Access-Request. Бывает нужна в случаях, когда NAS сбрасывает (теряет) сессию, но
# Stop-пакет не присылает и клиент пытается подключиться повторно, но у него стоит ограничение на максимум одну сессию. При совпадении
# callingStationId с одной из активных сессий и установленным параметром: 1 - осуществляется попытка закрытия старой сессии (connectionClose),
# 2 - попытка закрытия сессии (connectionClose) и завершение ее в базе, не дожидаясь стоп пакета, 3 - завершение в базе.
#radius.connection.checkDuplicate=0
# Должен ли поиск по логину идти без учета регистра. По умолчанию - нет (0).
#radius.username.ignoreCase=0
# Параметры активации сервисов
# длина паузы, если возникла ошибка
#sa.error.pause=60
# количество заданий за раз
#sa.batch.size=20
# время (сек) ожидания завершения всех заданий (при асинхронной работе)
#sa.batch.wait=5
# пауза (сек) после обработки заданий
#sa.batch.pause=0
# время (сек) ожидания новой задачи перед вызовом disconnect.
#sa.batch.waitNext=5
В конфигурации устройства нужно указать:
# Хост для отправки PoD и CoA-запросов (по умолчанию - хост, заданный в устройстве в поле Хост/порт)
#radius.host=<хост устройства>
# Порт для отправки PoD и CoA-запросов (по умолчанию - порт, заданный в устройстве в поле Хост/порт)
radius.port=
3799
# Используемый secret для общения по RADIUS-протоколу (по умолчанию - значение из поля Community/secret параметров устройства)
#radius.secret=<sercret устройства>
В данном примере используются опции Inet. Необходимо создать опцию-папку "Скорости", в конфигурации типа устройства прописать её ID (например, 1) в имени параметра radius.inetOption.1.template:
radius.inetOption.
1
.template=Service-Name:
1
=rse-inet;Service-Parameter:
1
=
in
=
$in
inb=
$inb
out=
$out
outb=
$outb
;Service-Options:
1
=
0
Данный параметр представляет собой шаблон, который будет применен к опциям, расположенным внутри опции "Скорости (1)". Поэтому в конфигурации опций-скоростей нужно будет указать параметры, которые были указаны в данном шаблоне (через $), например:
in
=
1000000
inb=
125000000
out=
1000000
outb=
125000000
Описание параметров SmartEdgeServiceActivator
Для обратной совместимости некоторые значения по умолчанию не изменяются в новых версиях, поэтому в таблице представлен также стоблец "Рекомендуемое" значение.
Параметр |
Значение по умолчанию |
Рекомендуемое |
Описание |
radius.host |
Хост их поля "Хост/порт" устройства |
Хост, на который будут отправляться CoA/PoD-запросы. |
|
radius.port |
Порт из поля "Хост/порт" устройства |
Порт, на который будут отправляться CoA/PoD-запросы. |
|
radius.sourceHost |
Интерфейс, с которого будут отправляться CoA/PoD-запросы. |
||
radius.sourcePort |
Порт, с которого будут отправляться CoA/PoD-запросы. |
||
radius.identifier |
Значение из поля "Идентификатор" устройства |
Значение, которое будет подставлено в CoA/PoD-запрос в атрибут NAS-Identifier, если NAS-Identifier присутствует в значении параметра sa.radius.connection.attributes |
|
sa.radius.secret |
Значение из параметра radius.secret |
RADIUS-секрет, который будет использован для создания CoA/PoD-запроса. |
|
radius.secret |
Значение из поля "Community/secret" устройства |
RADIUS-секрет, который будет использован для создания CoA/PoD-запроса. Значение может быть переопределено в параметре sa.radius.secret Параметр также используется при штатной обработке Access-Request (переопределяет значение из поля "Community/secret"). |
|
sa.radius.log |
1 |
Логировать (1) или не логировать (2) CoA/PoD-запросы сессии (возможность просматривать RADIUS-лог сессии в клиенте). |
|
sa.optionMode |
0 |
1 |
Режим работы c сервисами SmartEdge. При 0 - просто отправляются атрибуты из параметров, при 1 - выполняется привязка опций к имени сервиса SmartEdge по атрибуту Service-Name. |
sa.radius.connection.withoutBreak |
0 |
0 - при необходимости переключить состояние сессии (ограничить доступ или наоборот, включить) будет произведен сброс сессии на оборудовании. Может быть нужно, если Вы выдаете IP-адреса из разных ресурсов для тех, у кого ограничен доступ в Интернет и у кого не ограничен. 1 - при необходимости переключить состояние сессии будет произведена смена сервисов RSE. |
|
sa.radius.connection.stateModify |
0 |
Нужно ли сразу после отправки CoA на переключение доступа сменить состояние сессии в БД. Состоянии сессии также может определяться по сервисным сессиям RSE с помощью SmartEdgeProtocolHandler. См. далее. См. также Сессии и FAQ модуля Inet |
|
sa.radius.connection.modify.forceOnServiceNak |
0 |
Нужно ли считать, что CoA/PoD отработал, если в ответ пришел NaK. При 0 и NaK запрос будет повторен. |
|
sa.radius.service.disable |
Значение из параметра radius.serviceName.disable |
Список имен сервисов RSE, по которым будет определен список опций, которые нужно "включить" при необходимости ограничить доступ абоненту. |
|
radius.serviceName.disable |
Список имен сервисов RSE, по которым будет определен список опций, которые нужно "включить" при необходимости ограничить доступ абоненту. Значение может быть переопределено в параметре sa.radius.service.disable Параметр также используется в SmartEdgeProtocolHandler. |
||
sa.radius.connection.close.mode |
2 |
При необходимости сбросить соединение: 1 - не отправлять PoD-пакет (подразумевается, что биллинг также обрабатывает DHCP-пакеты и на следующий DHCP-пакет он ответит NAK, см. параметр sa.radius.connection.close.removeFromKeyMap) 2 - отправлять PoD-пакет |
|
sa.radius.connection.close.enableMode |
2 |
При необходимости сбросить соединение для последующего включения доступа: 1 - не отправлять PoD-пакет (подразумевается, что биллинг также обрабатывает DHCP-пакеты и на следующий DHCP-пакет он ответит NAK, см. параметр sa.radius.connection.close.removeFromKeyMap) 2 - отправлять PoD-пакет |
|
sa.radius.connection.coa.onEnable |
0 |
При необходимости сбросить соединение для последующего включения доступа нужно ли послать CoA на включение доступа (подразумевается, что доступ будет включен, PoD-пакет не отправлен, а на следующий DHCP-пакет биллинг ответит NAK и абонент переполучит адрес). |
|
sa.radius.connection.close.disableMode |
Значение параметра sa.radius.connection.close.mode |
При необходимости сбросить соединение для последующего отключения доступа: 1 - не отправлять PoD-пакет (подразумевается, что биллинг также обрабатывает DHCP-пакеты и на следующий DHCP-пакет он ответит NAK, см. параметр sa.radius.connection.close.removeFromKeyMap) 2 - отправлять PoD-пакет |
|
sa.radius.connection.close.disableServices |
0 |
При необходимости сбросить соединение (не для последующего включения доступа) нужно ли послать CoA на отключение доступа (подразумевается, что доступ будет отключен, PoD-пакет не отправлен, а на следующий DHCP-пакет биллинг ответит NAK и абонент переполучит адрес). |
|
sa.radius.service.closeAttributes |
При sa.optionMode=1: <пусто> При sa.optionMode=0: Deactivate-Service-Name:1=RSE-SVC-EXT |
<пусто> |
Атрибуты, добавляемые в CoA при необходимости переключить скорость, необходимые для отключения текущих сервисов RSE. При sa.optionMode=1 имена сервисов для отключения автоматически вычисляются из текущих активных опций Inet, поэтому в этом режиме данное поле можно не указывать. |
sa.radius.connection.close.removeFromKeyMap |
0 |
При необходомости сбросить соединение, нужно ли перестать выдавать DHCP-ACK для данной сессии, даже если она еще "живая". |
|
sa.radius.service.disable.optionIds |
|||
sa.radius.connection.close.disableServices |
|||
sa.radius.connection.attributes |