Перейти к содержимому
Калькуляторы

FreeRADIUS + MPD5 лимит трафика

Здравствуйте.

Имеется связка mpd5 + freeradius.

Необходимо лимитировать трафик на сессию. Когда-то давно настраивал подобное на линуксе с pppd + freeradius и там был атрибут Session-Octets-Limit или как-то так.

Возможно ли такое на mpd5 + freeradius, понимает ли mpd5 ограничение трафика, на этой странице http://mpd.sourceforge.net/doc/mpd62.html я ничего подходящего не нашел.

Также перевернул весь гугл, полно сообщений о настройке шейпера, но вот по ограничению трафика ничего не нашел.

 

На данный момент приходит в голову несколько вариантов реализации:

1. По крону проверять перерасход и отключать пользователя

2. При получении accounting пакетов(python-модуль и ф-ия accounting) проверять перерасход и отключать пользователя

 

Но оба варианта какие-то не очень красивые и не точные, плюс надо через какие-то кастыли отключать пользователя, например скриптом через веб-интерфейс mpd.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если с mpd нельзя, то интересует аналогичная ф-ия с accel-pptp

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

как workaround, можно делать через pre-up и pre-down, добавляя правило iptables quota, остальные решения будут кроноподобные(т.е. перидическая проверка и блокировка)

 

по хорошему, надо в ядро запиливать лимит трафика на интерфейс и управлять им через tc/API

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Имеется связка 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..

Изменено пользователем AlKov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.