Em 03/03/2014, às 17:34, Márcio Elias <marcioel...@gmail.com> escreveu:
> 2014-03-03 16:44 GMT-03:00 Bruno Araújo <bjara...@gmail.com>: > >> Em 03/03/2014, às 15:48, Márcio Elias <marcioel...@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: marcioeliash...@hotmail.com >>> >>> >>> 2014-02-13 8:59 GMT-02:00 Márcio Elias <marcioel...@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: marcioeliash...@hotmail.com >>>> >>>> >>>> 2014-02-13 8:40 GMT-02:00 Marcelo Gondim <gon...@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. >> >> ------------------------- >> 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? > > > -- > Att. > __________________________________ > Márcio Elias Hahn do Nascimento > > Araranguá - SC > Cel: (55) 48-9661-0233 > msn: marcioeliash...@hotmail.com > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd Para renomear a interface eu configurei o mpd.conf para rodar um script imediatamente após a interface ser criada. set iface up-script /caminho/completo/up.sh ### up.sh #!/bin/sh ifconfig $1 name pppoe-$5 exit 0 ------------------ Quando ao sem nat (tem + de 6 meses que não toco no sistema). Me lembro de configurar proxy-arp no sistema e no mpd.conf tenho que fazer mais testes pois me parece que só é necessário em um de ambos. Quando ao controle de tráfego pensei que seu método seria diferente do que me apresentou (ao menos agora conheço os parâmetros de controle de tráfego e o cálculo) estou a procura dum controle hierárquico e dinâmico para cada conexão. _______________ 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