metallic Posted July 17, 2012 Posted July 17, 2012 Здравствуйте. Имеется связка mpd5 + freeradius. Необходимо лимитировать трафик на сессию. Когда-то давно настраивал подобное на линуксе с pppd + freeradius и там был атрибут Session-Octets-Limit или как-то так. Возможно ли такое на mpd5 + freeradius, понимает ли mpd5 ограничение трафика, на этой странице http://mpd.sourceforge.net/doc/mpd62.html я ничего подходящего не нашел. Также перевернул весь гугл, полно сообщений о настройке шейпера, но вот по ограничению трафика ничего не нашел. На данный момент приходит в голову несколько вариантов реализации: 1. По крону проверять перерасход и отключать пользователя 2. При получении accounting пакетов(python-модуль и ф-ия accounting) проверять перерасход и отключать пользователя Но оба варианта какие-то не очень красивые и не точные, плюс надо через какие-то кастыли отключать пользователя, например скриптом через веб-интерфейс mpd. Вставить ник Quote
metallic Posted July 17, 2012 Author Posted July 17, 2012 Если с mpd нельзя, то интересует аналогичная ф-ия с accel-pptp Вставить ник Quote
Ilya Evseev Posted July 18, 2012 Posted July 18, 2012 Вы ищете аналог http://forum.mikrotik.com/viewtopic.php?p=264512#p264512 ? В mpd его не видно. В accel-pptp тоже: http://accel-pptp.git.sourceforge.net/git/gitweb.cgi?p=accel-pptp/accel-pptp;a=tree;f=accel-pptpd/radius/dict;h=2faea813446dd612550c9bbfbe4e162cb9c69b28;hb=HEAD Вставить ник Quote
s.lobanov Posted July 18, 2012 Posted July 18, 2012 как workaround, можно делать через pre-up и pre-down, добавляя правило iptables quota, остальные решения будут кроноподобные(т.е. перидическая проверка и блокировка) по хорошему, надо в ядро запиливать лимит трафика на интерфейс и управлять им через tc/API Вставить ник Quote
AlKov Posted July 18, 2012 Posted July 18, 2012 (edited) Имеется связка mpd5 + freeradius. Необходимо лимитировать трафик на сессию. Когда-то давно настраивал подобное на линуксе с pppd + freeradius и там был атрибут Session-Octets-Limit или как-то так. Возможно ли такое на mpd5 + freeradius, понимает ли mpd5 ограничение трафика, на этой странице http://mpd.sourceforge.net/doc/mpd62.html я ничего подходящего не нашел. Может я конечно и ошибаюсь, или не понял суть задачи, но вообще-то этим (подсчетом трафика, проверкой лимитов и управлением соединением) обычно занимается не NAS(mpd), а именно radius (вернее биллинг на основе freeradius). mpd "отдает" радиусу (посредством радиус-атрибутов mpd-input-acct и mpd-output-acct) сведения о трафике, а радиус по наступлению нужного события ("исчерпан лимит") "командует" mpd, отключить юзера. В данном случае посредством того же радиус атрибута mpd-drop-user. Во всяком случае в "моём" биллинге (FreeNibs) это именно так и реализовано. Или Вы собираете собственную "конструкцию" freeradius-mpd? Но оба варианта какие-то не очень красивые и не точные, плюс надо через какие-то кастыли отключать пользователя, например скриптом через веб-интерфейс mpd. mpd давно умеет делать это посредством СоА c помощью radclient. Для этого достаточно поднять в mpd встроенный rad-server. добавляя правило iptables quota, остальные решения будут кроноподобные(т.е. перидическая проверка и блокировка) Дык нету во FreeBSD iptables.. Edited July 18, 2012 by AlKov Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.