NAS на MPD. Меняем скорость пользователя находу


Некоторые небольшие ISP, а также операторы локальных сетей, по прежнему, используют в качестве NAS сервера на FreeBSD и mpd.
Часто, стоит задача изменить лимиты пользователям, например, при переходе на ночной тарифный план. То, что описано ниже, простой, но, главное, работающий пример изменения скорости подключенного пользователя, для того, что бы быстро «вьежать» в тему и которого так часто не хватает при изучении документации. Только пример, никакой теории!

Для реализации этого необходимо:

На даный момент обновить систему до 7-STABLE, или 8-STABLE. Необходимый код libradius будет в 7.3-RELEASE и 8.1-RELEASE соответственно.

Установленный из портов mpd-5.4.

В mpd.conf в рвздел startup добавляем:


set radsrv peer XX.XX.XX.ХХ pass
set radsrv open

И, по желанию:


log +radius +radius2

Обращаю Ваше внимание, не


set radsrv open
set radsrv peer XX.XX.XX.SS pass

а, именно в таком порядке:


set radsrv peer XX.XX.XX.XX pass
set radsrv open

На машине, IP которой указан в строке radsrv peer, ставим из портов freeradius.
В папку со словарями /usr/local/share/freeradius, добавляем словарь dictionary.mpd и в файле /usr/local/share/freeradius/dictionary строку


$INCLUDE dictionary.mpd

Дальше простой скрипт:


echo User-Name = user_name, \
mpd-limit += \"in #1=all shape 262000 4000 pass\", \
mpd-limit += \"out#1=all shape 262000 4000 pass\" | radclient -d \
/usr/local/share/freeradius/ -x -f rt NAS_IP:<3799 coa pass

и для подключенного пользователя user_name установлены новые значения mpd-limit.

По этому же принципу можно и отключить пользователя:

echo User-Name = victor | radclient -x -f rt NAS_IP:3799 40 pass


Источник статьи