2014-03-03 17:34 GMT-03:00 Márcio Elias <[email protected]>: > 2014-03-03 16:44 GMT-03:00 Bruno Araújo <[email protected]>: > >> Em 03/03/2014, às 15:48, Márcio Elias <[email protected]> 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: [email protected] >> > >> > >> > 2014-02-13 8:59 GMT-02:00 Márcio Elias <[email protected]>: >> > >> >> 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: [email protected] >> >> >> >> >> >> 2014-02-13 8:40 GMT-02:00 Marcelo Gondim <[email protected]>: >> >> >> >> 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. >> >> ------------------------- >> Histórico: http://www.fug.com.br/historico/html/freebsd/ >> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd >> > > > Se vc está usando MPD, coloca os seguintes atributos na tabela radreply > (para um usuário) ou radgroupreply (para um grupo): > > **para limitar o download com 2Mbits > attribute = "mpd-limit" > op = "+=" > value = "out#1=all rate-limit 2048000 384000 768000 pass" > > **para limitar o upload com 1Mbits > attribute = "mpd-limit" > op = "+=" > value = "in#1=all rate-limit 1024000 192000 384000 pass" > > rate-limit é o mesmo principio do comando no iOS da Cisco, onde o primeiro > atributo é o limite de tráfego, o segundo o burst e o terceiro o extended > burst. > > pra calcular o burst (segundo documentação da cisco): > > taxa * (1/8) * 1.5 (onde taxa é o limite de tráfego que vc quer). > > o último argumento "pass" no final do comando, é pra evitar a necessidade > de outra regra para liberar o tráfego. > > Agora, me da tua contribuição ai, não tinha percebido que podia renomear > as interfaces com o nome do usuario, qual foi o AVP que vc usou pra setar > isso? > > Esqueci de mencionar que o extended burst (terceiro valor) é igual a burst * 2.
-- Att. __________________________________ Márcio Elias Hahn do Nascimento Araranguá - SC Cel: (55) 48-9661-0233 msn: [email protected] ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

