1) Portslave не обрывает соединение принудительно, ожидая завершения PPPD. RADIUS не содержит способов сообщить NAS'у, что клиент должен быть выкинут. 2) portslave.rpm in ALTLinux is builded with configuring option --enable-assignment SHOULD BE OFF (?!?!) for assign client by IP-address that is received from RADIUS server. 3) Модуль расчёта стоимости является частью acctd. Задачи acctd: - следить за тем, что экземпляр NAS'а жив - подсчитывать потреблённое время и байты (route -n, /proc/net/dev) - подсчитывать стоимость и вычитать со счёта - отключать NAS при перерасходе (kill) Текущая реализация: конфигурабельна, но пока имеется только для локального Portslave'a. ./configs/agents.conf.sample Таким образом, acctd ведёт всю работу с сервисом в течение сессии. FreeRADIUS занимается только авторизацией в её начале и вызывается в конце. FreeRADIUS вызывает RLM (RADIUS Loadable Module): rlm_ebilling.cpp в котором считается стоимость остатка сессии, не захваченная acctd. 4) Причины выбора RADIUS'a: наиболее раскручен. 5) все библиотеки динамические, строятся через AutoMake/LibTool.