ARP авторизация
Советуем не применять ARP-авторизацию, вместо нее рассмотреть возможность использования Радиус VSA VasExperts-L2-User для абонентов со статическими IP-адресами
[СКАТ-7.5+] Режим ARP-авторизации предназначен для решения проблемы статических IP-адресов. Абоненты со статическими IP-адресами не посылают DHCP-запросов, соответственно, СКАТ не может авторизовать таких абонентов по DHCP-запросам. Но статические абоненты периодически посылают ARP-запросы к своему шлюзу. СКАТ может перехватывать такие запросы к шлюзам и отправлять Radius-запрос Access-Request, основываясь на содержимом ARP-запроса.
Включение режима ARP-авторизации производится fastdpi.conf-параметром bras_arp_auth
:
- 0 - ARP-авторизация отключена
- 1 - режим ARP-авторизации для /30-подсетей
- 2 - режим ARP-авторизации для шлюза
При включенном режиме терминации по автономным системам ARP-авторизация применяется только для таких ARP-запросов, у которых IP-адрес инициатора (sender protocol address) относится к терминируемой автономной системе (с флагами local и term).
Авторизация для /30-подсетей
В этом режиме предполагается, что каждый статический IP-адрес находится в своей /30-подсети. При получении ARP-запроса, в котором target protocol address равен шлюзу /30-подсети, СКАТ запрашивает авторизацию у Радиус-сервера для sender hardware address (MAC-адреса источника ARP-запроса).
Авторизация для шлюза
В этом режиме Радиус-запрос авторизации Access-Request посылается, если поле target protocol address содержит адрес шлюза, известный СКАТу (напомним, что адреса шлюзов выделяются из DHCP-ответов и сохраняются в UDR СКАТа).
Формат Radius Access-Request
User-Name = "a0:b1:c2:d3:00:0a" User-Password = "VasExperts.FastDPI" Calling-Station-Id = "a0:b1:c2:d3:00:0a" Acct-Session-Id = "AF620A00D3C2B1A0" Service-Type = Framed-User NAS-Identifier = "FastPCRF" VasExperts-Service-Type = ARP VasExperts-ARP-SourceIP = 192.168.201.1 VasExperts-ARP-TargetIP = 192.168.1.1
По умолчанию, в качестве атрибута User-Name выступает MAC-адрес источника ARP-запроса (поле sender hardware address). Тот же самый MAC-адрес передается в атрибуте Calling-Station-Id. Для всех пользователей пароль один и тот же и задается fastpcrf.conf-параметром radius_user_password. Не следует рассматривать это поле как пароль абонента, - это пароль системы.
[СКАТ 8.2+] fastpcrf.conf-параметром radius_user_name_arp
можно задать, что помещать в атрибут User-Name
. Параметр задает список идентификаторов в порядке предпочтения: первый самый предпочтительный, затем - менее предпочтительный. Допустимые значения идентификаторов:
mac
: User-Name = MAC-адрес источника ARP-запроса в строковом виде "XX:XX:XX:XX:XX:XX"qinq
: если сеть QinQ, то User-Name = "outerVlan.innerVlan"ip
: User-Name = IP-адрес источника ARP-запроса в виде строки
Примеры:
# Значение параметра radius_user_name_arp по умолчанию # В этом случае User-Name будет содержать MAC-адрес, так как для ARP он всегда известен: radius_user_name_arp=mac,qinq # Для QinQ-сетей можно явно указать, чтобы User-Name содержал значения qinq-тегов # В этом случае, если ARP-запрос тегирован outerVlan=100, innerVlan=200, то User-Name = "100.200" # для нетегированных ARP-запросов User-Name будет содержать MAC-адрес источника запроса radius_user_name_arp=qinq,mac
Различить тип авторизации можно по значению VSA-атрибута VasExperts-Service-Type: для ARP-авторизации этот атрибут содержит значение 6 (ARP).
VSA-атрибуты VasExperts-ARP-SourceIP и VasExperts-ARP-TargetIP содержат значения полей sender protocol address (IP-адрес инициатора запроса) и target protocol address (целевой IP-адрес) ARP-запроса.
Access-Request может содержать и другие атрибуты, описанные в L3-авторизации: NAS-Port-Type, NAS-Port (номер VLAN, если есть), NAS-Port-Id (QinQ, если есть) и пр.
Ответ на авторизацию
Если Access-Request авторизован, Радиус-сервер должен вернуть Access-Accept с атрибутом Framed-IP-Address, - авторизованным IP-адресом. Если Framed-IP-Address не равен значению поля sender protocol address (IP-адрес инициатора) ARP-запроса, то такой ARP-запрос считается неавторизованным и СКАТ его дропает. Если Радиус-сервер не смог авторизовать MAC-адрес, то в ответе не должно быть атрибута Framed-IP-Address; в этом случае исходный ARP-запрос также дропается СКАТом.
Помимо Framed-IP-Address, Access-Accept может содержать следующие атрибуты:
Framed-IP-Netmask
- маска подсети для абонента;Session-Timeout
- время действия авторизации в секундах. Если этого атрибута нет - авторизация бессрочна (не рекомендуется)VasExperts-DHCP-Gateway
- шлюз абонента
Помимо этих атрибутов, Access-Accept может содержать атрибуты L3-авторизации, задающие свойства абонента: полисинг и подключенные услуги, см. атрибуты L3-авторизации.
Access-Reject обрабатывается аналогично Access-Accept: если есть атрибут Framed-IP-Address, значит, источник ARP-запроса авторизован по MAC-адресу, Access-Reject должен содержать те же самые атрибуты Framed-IP-Netmask, Session-Timeout и VasExperts-DHCP-Gateway, как описано выше, также могут быть заданы reject-атрибуты L3-авторизации.
Пример ответа Access-Accept:
Framed-IP-Address = 192.168.201.1 Framed-IP-Netmask = 255.255.0.0 Session-Timeout = 14400 VasExperts-DHCP-Gateway = 192.168.1.1 VasExperts-Policing-Profile = "rate_100M" VasExperts-Service-Profile = "1:test1" VasExperts-Enable-Service = "9:on"
Session-Timeout
следует учитывать, что время жизни записи в ARP cache у разных ОС разное, - от нескольких минут до 4 часов у Cisco iOS. Так как ARP-авторизация призводится только по запроосу абонента к шлюзу, указание слишком малого Session-Timeout
может привести к недоступности интернета у абонента: Session-Timeout
уже закончился, а ARP-запроса к шлюзу от абонента еще и не было