=====Linux PPPD + radcoad===== **[[http://radcoad.sf.net|radcoad]]** - демон для поддержки CoA и DM радиус-запросов насами на базе pppd\\ Для своей работы требует pppd с наложенным патчем ppp-2.4.4-coa.patch\\ Представляет из себя демон, куфлизующий спецификацию RFC3576 в меру своих сил (поддерживаются не все аттрибуты т.к. полная поддержка требует глубокой интеграции с pppd). \\ Умеет определять сессии по:\\ - Framed-Protocol + Nas-Port - Nas-Port-Id - Framed-IP Также умеет проверку соответствия наса по Nas-Ip-Address.\\ При наличии нескольких аттрибутов из перечисленных - проверка производится по всем из них.\\ Игнорируемые аттрибуты: Framed-IP-Netmask Client-IP-Address Аттрибуты, записываемые в radattr.pppX (для CoA запроса): Filter-Id Octets-Direction Session-Octets-Limit (pppd обновлять это значение не умеет, сохраняется только в radattr.pppX!) Session-Timeout (pppd обновлять это значение не умеет, сохраняется только в radattr.pppX!) PPPD-Upstream-Speed-Limit PPPD-Downstream-Speed-Limit Vendor-Specific Попытка передать другие атрибуты вызовет ответ с отказом. **Как это все работает:** \\ radcoad при поступлении CoA запроса определяет номер интерфейса, который модифицируется, далее - вносит изменения в /var/run/radattr.pppX и посылает SIGUSR1 соответствующему процессу pppd, который, получив этот сигнал, вызывает скрипт /etc/init.d/ip-mod с параметрами, аналогичными скрипту ip-up.\\ Для DM-запроса - порядок действий сходный, только демон не правит radattr.pppX и посылает pppd сигнал SIGHUP (обрыв соединения) вместо SIGUSR1\\ **Что нужно для запуска демона radcoad:** \\ Необходим пропатченый pppd (патч - для 2.4.4, ложится и на 2.4.5). Необходимо: - внести в /etc/radcoaddb/clients адрес и пароль хоста, с которого будут приходить запросы; - создать /etc/ppp/ip-mod, который будет модифицировать правила шейпера согласно содержимому radattr.pppX; - запустить radcoad (для журналирования в syslog - с ключиками ''-l syslog -g local0'') Конфигурация pppd/poptop - идентична приведенной в [[abills:docs:linux:pppd_radattr:ru|Linux PPPD + radattr.so]] ====ABillS==== **/ System configuration/ NAS/** ^Type: | pppd_coa | ^Alive: | Интервал RADIUS Alive пакетов. Желательно значение 120 | ^:Manage: | | ^IP:PORT: | IP-адрес и порт (по умолчанию 3799), на котором radcoad слушает команды | ^Password: | Пароль (указанный /etc/radcoaddb/clients) | ^Radius Pairs: | Дополнительные RADIUS атрибуты. Лучше установить Acct-Interim-Interval=120; (Интервала RADIUS Alive пакетов) | \\ \\ [[http://abills.net.ua/forum/viewtopic.php?f=11&t=5203| Обсуждение в форуме ]]