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

Bruno Araújo bjaraujo em gmail.com
Segunda Março 3 16:44:45 BRT 2014


Em 03/03/2014, às 15:48, Márcio Elias <marcioelias em gmail.com> escreveu:

> Estive meio ausente da lista, mais estou progredindo neste assunto.
> 
> Atualmente estou apto a conectar usuários, e logo que conectado limitar sua
> banda usando mpd-limit (não estou usando pipes, e sim a interface netgraph
> criada para o cliente).
> 
> Estou também conseguindo obter informações do tráfego do usuário, e apto a
> enviar pacotes CoA para o MPD de modo que este possa atualizar o link do
> usuário sem desconectá-lo, ou seja, mesmo no meio de um download, se o
> usuário ultrapassar a quota mensal, o mesmo verá sua taxa de transferencia
> cair até o limite do plano.
> 
> Minha solução até agora está envolvendo alguns AVPs personalizados, alguns
> códigos em Perl (modulos para checar a banda usada e para resetar o
> contador de tempo de sessão) e uma boa dose de código em UnLang nas sessões
> authorize e accounting.
> 
> Está ficando bem interessante, como disse ainda tenho intenção de fazer um
> artigo detalhando esse assunto, mais vou fazê-lo assim que tiver a solução
> completamente pronta.
> 
> Atualmente minha dúvida está em enviar o pacote CoA para o MPD somente se o
> usuário ultrapassar a quota mensal, ou se virar o mes conectado, por que
> atualmente estou enviando o pacote a cada accounting update.
> 
> Volto quando tiver maiores novidades, e começo a escrever o artigo assim
> que sanar essa dúvida. Não pretendo fazer um pequeno artigo do tipo copiar
> e colar, mais sim explicar e referenciar cada ponto, para que se possa
> entender o assunto e saber o que se está fazendo. Senti muita dificuldade
> em encontrar materiais, as principais dicas (tirando a documentação do MPD
> e do FreeRadius) tirei de fóruns Russos, (traduzindo para o ingles). Por
> isso quero contribuir para comunidade brasileira e escrever tudo em bom
> Portuguès.
> 
> -- 
> Att.
> __________________________________
> Márcio Elias Hahn do Nascimento
> 
> Araranguá - SC
> Cel:   (55) 48-9661-0233
> msn: marcioeliashahn em hotmail.com
> 
> 
> 2014-02-13 8:59 GMT-02:00 Márcio Elias <marcioelias em gmail.com>:
> 
>> Ai que está, eu já fui um pouco mais longe, não usei Dummynet nem IPFW pra
>> controle de banda, usei ng_bpf+ng_car (
>> http://mpd.sourceforge.net/doc5/mpd30.html#radius). Quanto a troca de
>> velocidade, queria fazer isso de modo transparente, sem derrubar o usuário.
>> Dependendo do usuário ou do que o mesmo está fazendo, não é interessante vc
>> derrubar ele.
>> 
>> Minha ideia era conseguir fazer algo semelhante ao que fala este artigo.
>> 
>> http://revk.www.me.uk/2012/11/usage-quotas.html
>> 
>> Tentei até entrar em contato com o autor mais não tive resposta até agora.
>> 
>> --
>> Att.
>> __________________________________
>> Márcio Elias Hahn do Nascimento
>> 
>> Araranguá - SC
>> Cel:   (55) 48-9661-0233
>> msn: marcioeliashahn em hotmail.com
>> 
>> 
>> 2014-02-13 8:40 GMT-02:00 Marcelo Gondim <gondim em bsdinfo.com.br>:
>> 
>> 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
>>> -------------------------
>>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>> 
>> 
>> 
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Parabéns pelo progresso, também diz alguns testes aqui e consegui conectar clientes sem nat ( é assim que quero) e renomear a interface para o nome de usuário mas o controle de tráfego também não quis por pipes. 
Poderia me adiantar ou postar o link original sobre esse controle netgraph?

_______________
Bruno Araújo


Antes de imprimir, verifique se tem papel e tinta suficiente na impressora.



Mais detalhes sobre a lista de discussão freebsd