Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

СКАТ может выступать как 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 при этом не используется, проверяется только уникальность логинов.

Блок кода
languageruby
# поиск Поддержка Access-Request для активного соединения
radius.connection.accessRequest=1

# Поиск по логину
radius.servSearchMode=0
 
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 будет использоваться поиск по логину:

Блок кода
languageruby
# Поддержка Access-Request для активного соединения
radius.connection.accessRequest=1

# Поиск по VLAN, при неудачном поиске - поиск по логину
radius.servSearchMode=4,0
 
# Атрибуты, выдаваемые в Access-Accept
# статические атрибуты
radius.realm.default.attributes=Acct-Interim-Interval=60;Session-Timeout=86400;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):

Блок кода
languageruby
# Поддержка Access-Request для активного соединения
radius.connection.accessRequest=1

# Поиск по VLAN, при неудачном поиске - поиск по логину
radius.servSearchMode=4,0

# Атрибуты, выдаваемые в Access-Accept
# статические атрибуты
radius.realm.default.attributes=Acct-Interim-Interval=60;Session-Timeout=86400;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=

...

Блок кода
languageruby
# выдавать в 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 для активного соединения в конфигурации необходимо указать:

Блок кода
languageruby
# Поддержка Access-Request для активного соединения
radius.connection.accessRequest=1

Статический IP-адрес

Если абонентам назначается статический IP-адрес, то в этом случае биллинг не обязательно должен быть DHCP-сервером (но может им быть и выдавать одни и те же адреса, указанные в сервисе договора). Адрес (или подсеть) должен быть указан в сервисе на договоре абонента. Для того, чтобы для сервисов работал поиск по IP-адресу, в конфигурации типа сервиса нужно указать:

...