utm5.2.1-006 update 7
Centos 5.2
До настоящего момента не испытывал никаких проблем с эксплуатацией radius'а от netup, но несколько дней назад пользователи стали жаловаться на проблемы с авторизацией.
Решил провести тщательное обследование.
Для тестирования поставил утилиту "Evolynx RADIUS Load Test Utility" (первое, что нашлось в сети).
На тестовой машине при эмуляции одного NASа UTM RADIUS легко обрабатывал порядка 800 запросов в секунду в течение достаточно длительного времени, при эмуляции 10 NAS RADIUS обрабатывал около 2700 access-request.
На рабочей системе результат был плачевным: 20 запросов в секунду и периодические паузы на несколько секунд, во время которых radius отказывался вовсе обрабатывать access-request.
Загрузка процессора 1%, ошибок на интерфейсах нет, ошибок в логах нет, все штатно.
В дебаге NASа выявил несколько пользователей, которые пытались установить соединение с периодичностью раз в две - пять секунд (на стороне клиента adsl-router). Таковых набралось всего трое, но как выяснилось позже они смогли парализовать работу Radius-сервера.
Для этих пользователей в UTM отсутствовали сервисные связки (клиенты расторгли договора), но доступ к сети был (технология adsl, не сняли кроссировки).
Впрочем, это не принципиально - достаточно просто инициировать соединение с логином, отсутствующим в БД.
Логин пользователя имеет вид: префикс_порядковый номер.
Как оказалось, независимо от того, какое значение имеет переменная card_user_prefix, если логин имеет вышеуказанный вид, то при отсутствии сервисной связки с логином, utm пытается создать карточного пользователя. В логе radius_debug появляются строки вида:
Warn : Sep 23 14:57:06 AuthServer: Errors adding card <71>. Rehash failed
Процесс длится примерно 3 секунды, работа radius-сервера парализуется.
После того, как закоментировал параметр "radius_card_autoadd=yes" в radius5.cfg проблема исчезла - UTM больше не пытается создавать карточки.
Решил отписаться, может кто-то тоже наступал на эти грабли.