...
Блок кода | ||
---|---|---|
| ||
<vendor name="VasExperts" code="43823"> <attribute name="VasExperts-Policing-Profile" code="1" type="string" /> <attribute name="VasExperts-Service-Profile" code="2" type="string" /> <attribute name="VasExperts-Enable-Service" code="3" type="string" /> <attribute name="VasExperts-Multi-IP-User" code="4" type="octets" /> <attribute name="VasExperts-UserName" code="5" type="string" /> <attribute name="VasExperts-Service-Type" code="6" type="integer" /> <attribute name="VasExperts-Restrict-User" code="7" type="integer" /> <attribute name="VasExperts-DHCP-RelayRemoteId" code="38" type="octets" /> <attribute name="VasExperts-DHCP-RelayCircuitId" code="39" type="octets" /> <attribute name="VasExperts-DHCP-Option" code="40" type="octets" /> <attribute name="VasExperts-DHCP-DNS" code="41" type="ipaddr" /> <attribute name="VasExperts-DHCP-Gateway" code="42" type="ipaddr" /> <attribute name="VasExperts-BOOTP-SName" code="43" type="string" /> <attribute name="VasExperts-BOOTP-File" code="44" type="string" /> </vendor> |
VasExperts-Service-Profile - имя профиля услуги fastDPI,
VasExperts-Enable-Service - включение/выключении услуги по ее коду,
VasExperts-Policing-Profile - имя профиля policy,
VasExperts-Restrict-User - флаг блокировки абонента.
...
Скорость регулируем, указывая имя профиля policy: VasExperts-Policing-Profile=rate_10M.
Подсказка |
---|
InetAccess/InetAccounting не поддерживают запросы RADIUS Status-Server, поэтому в конфигурации СКАТ (radius-main.conf) необходимо указать status_server=0 |
Оглавление |
---|
Настройка типа устройства
...
Подсказка |
---|
О выдаче IP-адреса и других параметрах при работе с RADIUS читайте здесь. |
IPoE
IP Subscriber
Схема аналогична Cisco IP Subscriber c инициацией сессии по IP-пакету - Unclassified source MAC address (For Layer 2-connected IP subscribers, a new IP session is triggered when an IP packet with an unclassified source MAC address (which means that an IP session does not yet exist for that MAC address) is received). Абонент получает динамический или статический адрес по DHCP от InetAccess-сервера биллинга, далее в InetAccess от СКАТ приходит Access-Request с User-Name=<IP-адрес абонента>, биллинг находит по указанному <IP-адрес абонента> и выдает параметры доступа в RADIUS-ответе СКАТ'у.
...
Блок кода | ||||
---|---|---|---|---|
| ||||
# Нужно ли проверять пароль: 0 - нет (например, для IPoE), 1 (по умолчанию) - да. radius.password.verification=0 |
DCHP-RADIUS Proxy
СКАТ может выступать как DHCP-Proxy, конвертируя DHCP-запросы от абонентов в RADIUS-запросы к биллингу:
RADIUS-запрос Access-Request имеет следующие атрибуты:
User-Name - MAC-адрес из DHCP-запроса в формате XX:XX:XX:XX:XX:XX. Для Q-in-Q-сетей в качестве User-Name возможно использовать QinQ-теги, см. ниже.
User-Password - значение fastpcrf.conf-параметра dhcp_user_psw. Этот параметр задает пароль именно для DHCP Radius proxy режима. Если параметр не задан - используется параметр user_password Radius-сервера.
NAS-IP-Address - если DHCP-запрос содержит IP-адрес Relay-агента, то в данный атрибут подставляется этот адрес. Если Relay-агента нет - атрибут содержит виртуальный IP-адрес СКАТ из fastdpi.conf-параметра bras_arp_ip. По значению данного атрибута можно определить, из какой подсети пришел Radius-запрос (от какого Relay-агента).
NAS-Port-Type - содержит значение fastpcrf.conf-параметра radius_attr_nas_port_type для данного Radius-сервера.
NAS-Port - только для VLAN-сетей (с одним VLAN): номер VLAN.
NAS-Port-Id: только для QinQ-сетей (с двойным VLAN): содержит VLAN-ы в строковом виде через '/', например: «123/67».
Framed-IP-Address - этот атрибут содержит IP-адрес абонента, присутствует только если IP-адрес абонента известен.Session-Timeout – опциональный атрибут, задает время действия авторизации в секундах. Значение 0 игнорируется. По истечении этого времени статус авторизации пользователя устанавливается в “неизвестен”, что приводит к отправке запроса на авторизацию Access-Request.
При этом в Access-Accept необходимо выдать User-Name, который далее будет передаваться в RADIUS-Accounting от СКАТ. Поэтому в типе сервиса необходимо установить галочку "логин", чтобы у сервиса было какое-то значение в поле Логин (автоматически сгенерированное или указанное вручную).
При использовании Q-in-Q СКАТ может передавать VLAN-ы в поле User-Name, поэтому в поле Логин можно просто указывать значение которое он присылает, например, 123.1000. Справочник ресурсов VLAN при этом не используется, проверяется только уникальность логинов.
Блок кода | ||
---|---|---|
| ||
# Поддержка Access-Request для активного соединения
radius.connection.accessRequest=1
# Поиск по логину
radius.servSearchMode=0
# Атрибуты, выдаваемые в Access-Accept
# статические атрибуты
radius.realm.default.attributes=Acct-Interim-Interval=60;VasExperts-Enable-Service=9:on;MS-Primary-DNS-Server=8.8.8.8;MS-Secondary-DNS-Server=8.8.4.4
# динамические атрибуты
radius.realm.default.attributes.macros=User-Name=$login;VasExperts-DHCP-Gateway=$ipGate;Framed-IP-Netmask=$ipSubnetMask;VasExperts-DHCP-DNS=$ipDns
|
Если же в биллинге Вы указываете SVLAN в дереве устройств, а VLAN - в сервисе (используя VLAN-ресурсы), то можно настроить поиск по SVLAN (указанный в устройстве дерева) агентского устройства и по VLAN - сервиса договора (абонента). Для извлечения номера VLAN из Access-Request в типе устройства в поле Обработчик процессора протокола должен быть указан CoAProtocolHandler, а в RADIUS-Accounting будет использоваться поиск по логину:
Блок кода | ||
---|---|---|
| ||
# Поддержка Access-Request для активного соединения
radius.connection.accessRequest=1
# Поиск по VLAN, при неудачном поиске - поиск по логину
radius.servSearchMode=4,0
# Атрибуты, выдаваемые в Access-Accept
# статические атрибуты
radius.realm.default.attributes=Acct-Interim-Interval=60;VasExperts-Enable-Service=9:on;MS-Primary-DNS-Server=8.8.8.8;MS-Secondary-DNS-Server=8.8.4.4
# динамические атрибуты
radius.realm.default.attributes.macros=User-Name=$login;VasExperts-DHCP-Gateway=$ipGate;Framed-IP-Netmask=$ipSubnetMask;VasExperts-DHCP-DNS=$ipDns
# Извлечение VLAN
# vendor radius-атрибута
radius.vlan.vendor=-1
# тип атрибута (Nas-Port-Id)
radius.vlan.type=87
# префикс, если есть
radius.vlan.prefix=
# regex
radius.vlan.pattern=^\d+/(\d+)
# Извлечение SVLAN
radius.agentSvlan.vendor=87
radius.agentSvlan.type=-1
radius.agentSvlan.prefix=
radius.agentSvlan.pattern=^(\d+)/\d+ |
При использовании VLAN (без Q-in-Q) можно настроить поиск сервиса по VLAN (для извлечения номера VLAN из RADIUS-пакета в типе устройства в поле Обработчик процессора протокола должен быть указан CoAProtocolHandler):
Блок кода | ||
---|---|---|
| ||
# Поддержка Access-Request для активного соединения
radius.connection.accessRequest=1
# Поиск по VLAN, при неудачном поиске - поиск по логину
radius.servSearchMode=4,0
# Атрибуты, выдаваемые в Access-Accept
# статические атрибуты
radius.realm.default.attributes=Acct-Interim-Interval=60;VasExperts-Enable-Service=9:on;MS-Primary-DNS-Server=8.8.8.8;MS-Secondary-DNS-Server=8.8.4.4
# динамические атрибуты
radius.realm.default.attributes.macros=User-Name=$login;VasExperts-DHCP-Gateway=$ipGate;Framed-IP-Netmask=$ipSubnetMask;VasExperts-DHCP-DNS=$ipDns
# Извлечение VLAN
# vendor radius-атрибута
radius.vlan.vendor=-1
# тип атрибута (Nas-Port)
radius.vlan.type=5
# префикс, если есть
#radius.vlan.prefix=
# regex
#radius.vlan.pattern= |
При выдаче Access-Accept можно использовать макросы $login, $identifier, $ipGate, $ipSubnetMask, $ipDns:
Блок кода | ||
---|---|---|
| ||
radius.realm.default.attributes.macros=VasExperts-DHCP-Gateway=$ipGate;Framed-IP-Netmask=$ipSubnetMask;VasExperts-DHCP-DNS=$ipDns |
В случае, если абонент сам назначил себе адрес, то в Access-Request придет c атрибутом Framed-IP-Address. Для того, чтобы биллинг проверил, что данный адрес есть в сервисе абонента и выдал в Access-Accept его же, укажите в конфигурации устройства:
Блок кода | ||
---|---|---|
| ||
# выдавать в Access-Accept адрес из Framed-IP-Address Access-Request'а, если присутствует
radius.address.fromRequest=1
# выполнять проверку адреса из Framed-IP-Address Access-Request'а
radius.address.fromRequest.check=1 |
Session-Timeout – опциональный атрибут, задает время действия авторизации в секундах. Значение 0 игнорируется. По истечении этого времени статус авторизации пользователя устанавливается в “неизвестен”, что приводит к отправке запроса на авторизацию Access-Request.
Для поддержки Access-Request для активного соединения в конфигурации необходимо указать:
Блок кода | ||
---|---|---|
| ||
# Поддержка Access-Request для активного соединения
radius.connection.accessRequest=1 |
Статический IP-адрес
Если абонентам назначается статический IP-адрес, то в этом случае биллинг не обязательно должен быть DHCP-сервером (но может им быть и выдавать одни и те же адреса, указанные в сервисе договора). Адрес (или подсеть) должен быть указан в сервисе на договоре абонента. Для того, чтобы для сервисов работал поиск по IP-адресу, в конфигурации типа сервиса нужно указать:
...
Создайте два устройства-NAS'а, настройте их, как описано выше, но поле Хост в них оставьте пустым, а в поле Идентификатор укажите идентификатор с соответсвующим суффиксом (.IPoE или .PPPoE). Т.е., если Nas-Identifier у нас VasExperts.FastDPI, то в устройстве типа FastDPI в поле Идентификатор указано VasExperts.FastDPI, в устройстве типа FastDPI.IPoE - VasExperts.FastDPI.IPoE, в устройстве типа FastDPI.PPPoE - VasExperts.FastDPI.PPPoE.
Т.к. поле Хост мы оставляем пустым (чтобы не было путаницы с одинаковыми NAS-IP при обработке RADIUS-пакета), чтобы чтобы CoA/PoD запросы отправлялись - в конфиге устройств устройств FastDPI.IPoE и FastDPI.PPPoE нужно указать IP-адрес СКАТ в параметре:
Блок кода | ||||
---|---|---|---|---|
| ||||
# Хост для отправки PoD и CoA-запросов (по умолчанию - хост, заданный в параметрах устройства Хост/порт)
radius.host=x.x.x.x |
Чтобы по RADIUS-Accounting атрибутам также можно было определить тип услуги, в Access-Accept устройства FastDPI.IPoE дополнительно выдаем атрибут Class=IPoE:
Блок кода | ||
---|---|---|
| ||
# статические атрибуты radius.realm.default.attributes=Class=IPoE;Acct-Interim-Interval=60;VasExperts-Enable-Service=9:on;MS-Primary-DNS-Server=8.8.8.8;MS-Secondary-DNS-Server=8.8.4.4 |
Теперь для биллинга запросы будут обрабатываться как от двух разных NAS'ов и настройки для них могут быть абсолютно разными. Устройствам FastDPI.IPoE и FastDPI.PPPoE в дереве не обязательно быть потомками устройства FastDPI.
Так как NAS-Identifier мы подменяем, а в CoA для СКАТ он не нужен, указываем также:
Блок кода | ||
---|---|---|
| ||
# Атрибуты CoA, идентифицирующие соединение
sa.radius.connection.attributes=NAS-Port, Acct-Session-Id, User-Name, Framed-IP-Address
|