Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
abills:docs:nas:mikrotik:ppp_sync [2017/04/13 20:14]
anton
abills:docs:nas:mikrotik:ppp_sync [2017/04/14 09:41] (текущий)
anton
Строка 3: Строка 3:
 Функционал позволяет пользователям авторизоваться если отсутствует связь между Микротиком и FreeRADIUS-сервером. Функционал позволяет пользователям авторизоваться если отсутствует связь между Микротиком и FreeRADIUS-сервером.
  
-Включаем скрипт синхронизации в ''/​etc/​crontab''​.+Включаем скрипт синхронизации ​аккаунтов ​в ''/​etc/​crontab''​.
 <​code>​ <​code>​
   */15 * * * * root /​usr/​abills/​libexec/​billd auth_export NAS_IDS=%NAS_ID%   */15 * * * * root /​usr/​abills/​libexec/​billd auth_export NAS_IDS=%NAS_ID%
Строка 10: Строка 10:
  
 Все экспортированые аккаунты добавляются выключенными,​ для того, чтоб не мешать нормальному процесу авторизации. Все экспортированые аккаунты добавляются выключенными,​ для того, чтоб не мешать нормальному процесу авторизации.
-Нам нужно, чтоб они включались только когда нет связи с радиусом, для этого, нужно запускать скрипт на микротике. +Нам нужно, чтоб они включались только когда нет связи с радиусом
 +\\ 
 +Создадим на Микротике ​скрипты для отслеживания ситуации потери связи с радиусом.
  
 **Через winbox** **Через winbox**
Строка 29: Строка 30:
  
 # Check for radius timeout # Check for radius timeout
-log info ("​InputMessage"​ . $logMessage) 
 :if ( $logMessage ~ "​radius timeout"​ ) do={ :if ( $logMessage ~ "​radius timeout"​ ) do={
   log info ("​Radius is timeout. will activate all current ppp secrets"​)   log info ("​Radius is timeout. will activate all current ppp secrets"​)
Строка 36: Строка 36:
 </​code>​ </​code>​
  
-Для того чтобы скрипт запустился,​ нужно парсить лог. Для этого создаём еще один скрипт,​ который будет выбирать из всех строк лога те, которые нам нужно.\\+Для того чтобы скрипт запустился ​когда потеряна связь с радиусом, нужно парсить лог, ожидая сообщения ''​radius timeout''​. Для этого создаём еще один скрипт,​ который будет выбирать из всех строк лога те, которые нам нужно.\\
  
 Включаем логирование в память Включаем логирование в память
Строка 163: Строка 163:
  
 Всё. Теперь,​ когда в логе появится запись с текстом "​radius timeout",​ у нас включатся сохранённые записи,​ которые отключатся через 5 минут. Если Radius сервер еще не будет отвечать к этому времени ( а проверка через секунду после отключения ), то они включатся снова. Всё. Теперь,​ когда в логе появится запись с текстом "​radius timeout",​ у нас включатся сохранённые записи,​ которые отключатся через 5 минут. Если Radius сервер еще не будет отвечать к этому времени ( а проверка через секунду после отключения ), то они включатся снова.
 +
 +** Если нужно более быстрое время реакции на неполадки,​ можно уменьшить время запуска в шедулере на 1 минуту для ''​disable_accounting_backup''​ и 10 секунд для ''​log_parser''​**