Начиная с версии программного обеспечения 6.6.13, на коммутаторах появилась функция RADIUS-server tracking. Эта функция позволяет коммутатору активно и периодически проверять доступность RADIUS-серверов, отправляя тестовые запросы аутентификации. Получение любого ответа от сервера (Accept или Reject) интерпретируется как признак его работоспособности ("живой" сервер). Это повышает отказоустойчивость сценариев аутентификации, так как коммутатор может оперативно исключать нерабочие серверы из использования.

Конфигурация параметров отслеживания

Сначала необходимо создать профиль отслеживания с уникальным идентификатором (ID). Для этого используется глобальная команда конфигурации:

radius-server track <ID: 1-100> [interval <1-300>] [max-retries <1-10>] [timeout <1-300>] [username <строка 1-128>] [password <строка 1-128>]
ПараметрЗначение по умолчаниюОписание
interval5 секундПериодичность отправки тестовых сообщений на сервер (в секундах).
max-retries3 попыткиМаксимальное количество запросов подряд, на которые не пришел ответ, перед тем как сервер будет помечен как "dead" (недоступный).
timeout60 секундВремя (в секундах), в течение которого система приостанавливает отправку тестовых запросов к серверу, после того как он был признан "dead". По истечении этого таймера проверки возобновляются.
usernameradius-trackerИмя пользователя, используемое в тестовых запросах.
password-Пароль, используемый в тестовых запросах. Примечание: Если пароль не задан, соответствующее поле в запросе не передается.

Пример создания профиля:

radius-server track 1 interval 10 max-retries 2 timeout 120 username monitor_01 password MySecurePass123

Привязка профиля отслеживания к RADIUS-серверу

Созданный профиль необходимо привязать к конкретному хосту RADIUS-сервера. Для этого используется команда настройки сервера с указанием track-id. 

Примечание: для корректной работы механизма отслеживания необходимо явно задать параметр deadtime для RADIUS-сервера. Этот параметр определяет, как долго коммутатор будет считать сервер недоступным ("dead") после его обнаружения. Если deadtime не задан (по умолчанию 0), сервер никогда не будет переведен в состояние "dead" на уровне AAA, и функция tracking окажется бесполезной. Приведем пример настройки, где сервер 192.168.1.100 будет исключен из использования на 5 минут при обнаружении проблем, и за его состоянием будет следить профиль tracking с ID = 1.

radius-server host 192.168.1.100 key MySharedSecret deadtime 5 track-id 1

После выполнения этой команды отслеживание указанного сервера запускается немедленно.

Мониторинг и проверка конфигурации

Для отображения всех настроенных профилей tracking и их привязки к серверам используйте команду:

console#show radius-servers tracking configuration

    Address     Message  Maximum   Pause          User name        
                Interval Retries  Interval                         
--------------- -------- -------  -------- ------------------------
192.168.1.100      5        3        60          monitor_01

Расширенная команда show radius-servers status теперь включает два ключевых столбца, связанных с отслеживанием:

console#show radius-servers status

  IP address    Port  port  Client   Dead status Dead remain Tracking Tracking
                Auth  Acct  timeouts             (minutes)   status   timeout 
--------------- ----- ----- -------- ----------- ----------- -------- --------
10.2.0.150      1812  1813  65       dead        0           active   active   
10.2.0.160      1812  1813  0        working      -          inactive    -    
10.2.0.170      1812  1813  0        working      -          active   inactive

10.2.0.150: Сервер считается dead. Tracking active, но и tracking timeout тоже active — это означает, что сработал лимит max-retries, и сейчас действует период паузы (timeout), в течение которого проверки не проводятся.

10.2.0.160: Сервер working. Tracking inactive - отсутствует привязка track, проверки не проводятся.

10.2.0.170: Сервер working. Tracking active, а tracking timeout — inactive. Это штатный режим: проверки выполняются, таймер паузы не запущен.

Tracking status: Показывает общее состояние механизма tracking для сервера (active / inactive).

Tracking timeout: Указывает, активен ли в данный момент таймер паузы (timeout), запущенный после перевода сервера в состояние dead по версии tracking.