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