[FUG-BR] Radius + PPPoE com FreeBSD + MPD5

Marcelo Gondim gondim em bsdinfo.com.br
Quinta Fevereiro 13 08:40:58 BRST 2014


Em 13/02/14 02:25, Márcio Elias escreveu:
> Alguém na lista tem uma solução usando radius+mysql (ou postgresql) como
> servidor de autenticação com MPD5 e que tenha implementado um sistema de
> controle de banda relativo a um sistema de quotas?
>
> Um exemplo básico, tenho um plano de acesso de 10Mbits e queria limitar ele
> a 100GB de transferencia mensal, desta forma ao atingir o limite da
> franquia o usuário estaria limitado a uma velocidade equivalente a 40% do
> seu plano por exemplo. Ao iniciar o mês seguinte essa regra reinicia.
>
> Consegui implementar o servidor Radius, (FreeRadius) com banco de dados,
> autenticação PPPoE com MPD5, Controle de banda, tudo certinho. O problema
> está em criar as quotas e controlar o limite de banda baseado nisso.
>
> Vi que a FUG está meio desatualizada em artigos, e acho que isso é um
> assunto interessante para aqueles que como eu trabalham em ISPs, e
> principalmente que utilizam FreeBSD. Gostaria do apoio da comunidade para
> implementar isso e lançar um artigo detalhado sobre o assunto para
> favorecer os pobres mortais que futuramente terão a mesma dificuldade que
> estou tendo hoje para implementar essa solução.
>
> Conto com o apoio dos mestres. ;)
>
Opa Marcio,

Um certo tempo fiz alguns testes como esses que você tá fazendo e 
consegui fazer funcionar sem o controle de franquia, que é o que você tá 
querendo.
Não implantei pois precisava fazer umas mudanças internas e também eu 
ainda não tinha IPv6 para fazer os testes que eu queria.
Levando-se em conta que no sistema que eu testava eu criei os planos de 
velocidades em tables no ipfw e dummynet, assim quando o cliente 
conectava, eu checava de qual plano ele era e jogava o IP dele da 
conexão, na table certa. No seu caso poderia ser feito um script em php 
que checasse a tabela radacct do radius  e calculasse se ele ultrapassou 
a quantidade de bytes trafegados da franquia e se sim desconectaria ele 
e jogaria ele na table de velocidade nova. Isso pode ser feito em php 
tranquilamente.  :)

Abração,
Gondim


Mais detalhes sobre a lista de discussão freebsd