====== Контроль активности абонента ======
{{indexmenu_n>3}}
FastDPI имеет два механизма контроля активности абонента по исходящему трафику от абонента в inet:
* Контроль активности абонента и отсечение входящего трафика без закрытия сессии. Это реактивный контроль, который осуществляется "по факту", то есть по приходу пакета к абоненту из inet. Если нет трафика из inet к абоненту, то нет и никакого контроля, ARP пинг для проверки активности абонента. Такой контроль активности ограничивает входящий трафик к абоненту в случае его неактивности, но не завершает сессию абонента.
* Контроль активности абонента с закрытием сессии (Subscriber Host Connectivity Verification) дополняет такой контроль активным мониторингом открытых DHCP-сессий и завершает сессию абонента в случае неактивности.
Оба алгоритма совместимы и могут работать вместе.
Описанные здесь механизмы контроля активности не применяется для PPPoE-абонентов.\\ PPPoE содержит встроенные стандартные механизмы проверки активности и разрыва сессии по неактивности.
===== Контроль активности абонента и отсечение входящего трафика без закрытия сессии =====
Контроль активности абонента — это функция L2 BRAS, которая позволяет отсечь трафик из inet к абоненту в случае, если абонент не проявляет активности (нет трафика от абонента в сторону inet).
В процессе своей работы L2 BRAS для каждого абонента запоминает время T прихода последнего пакета от абонента. В течение времени T + ''bras_subs_activity_timeout'' интервал активности абонент считается активным и все пакеты из inet к абоненту пропускаются. Если же абонент становится неактивным, то есть превышен интервал активности со времени последнего пакета **от** абонента, L2 BRAS дропает входящий трафик.
Дополнительно можно задать ''bras_subs_activity_ping_timeout'' функцию пингования абонента в случае, если он стал неактивным. Пинг осуществляется отправкой unicast ARP-запроса абоненту: если придет ответ на такой ARP unicast-запрос, то он обновит время прихода последнего пакета от абонента, то есть абонент будет считаться активным.
Контроль активности работает только на исходящем трафике абонента (от абонента в inet). Особенно актуальным контроль активности может быть для абонентов со статическим публичным адресом.
==== Настройка ====
Контроль активности задается следующими параметрами в ''fastdpi.conf'':
* ''bras_subs_activity_timeout'' — задает интервал активности в секундах. 0 (по умолчанию) — отключить контроль активности
* ''bras_subs_activity_ping_timeout'' — тайм-аут в секундах пингования абонента ARP-запросом. 0 (по умолчанию) — отключить ARP-пинг абонента. Если абонент неактивен, то ему раз в ''bras_subs_activity_ping_timeout'' секунд будут посылаться unicast ARP-запросы.
===== Контроль активности абонента с закрытием сессии (Subscriber Host Connectivity Verification) =====
SHCV (Subscriber Host Connectivity Verification) - контроль активности DHCP-абонента, аналогичный [[https://documentation.nokia.com/html/0_add-h-f/93-0267-HTML/7X50_Advanced_Configuration_Guide/dhcp-hosts.html#433540|Nokia]], осуществляет проактивный контроль состояния DHCP-сессии абонента. Если от абонента в inet в течение ''bras_dhcp_shcv_interval'' секунд нет никакого трафика, fastDPI начинает пинговать абонента отправкой unicast ARP-запроса от имени абонентского шлюза. Ожидание ответа на ARP-запрос — ''bras_dhcp_shcv_retry_timeout'', секунд. Если на ''bras_dhcp_shcv_retry_count'' последовательных ARP-запросов не получено ни одного ответа, либо ARP-ответ содержит другой MAC, абонент считается неактивным, его DHCP-сессия закрывается.\\
Механизм закрытия сессии:
- Отправка Acct Stop;
- Деанонс IP-адреса абонента;
- Обновление статуса сессии на ''released''. При этом время реавторизации не меняется, чтобы не было паразитных L3-авторизаций, если абонент проснется до истечения lease time и отправит что-либо отличное от DHCP;
- Удаление DHCP-сессии (в БД DHCP).
==== Настройка ====
* ''bras_dhcp_shcv_interval'' — интервал неактивности абонента, секунд.\\ По умолчанию = 0 (SHCV отключен).
* ''bras_dhcp_shcv_retry_timeout'' — время ожидания ответа на ARP-запрос, секунд.\\ По умолчанию = 3 секунды.
* ''bras_dhcp_shcv_retry_count'' — число ARP-запросов без ответа.\\ По умолчанию = 3 запроса.