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