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

2014-03-04 Por tôpico Bruno Araújo
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 

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

2014-03-04 Por tôpico Márcio Elias
Humm, vou ver isso.

Sobre o controle de banda, trabalho em um ISP e preciso limitar planos de
velocidades de clientes, 2M, 3M, 5M etc. Por isso é um controle simples, a
única coisa a mais é a franquia mensal, que quando ultrapassada o plano do
cliente é reduzido para a velocidade mínima garantida.

Acho que o controle de banda que vc quer envolve filas, tipo com PF + ALTQ
não seria isso?

Como não é minha realidade, acabei não vendo se tem algo neste sentido no
MPD, mais acho que não, pelo menos a documentação fala sobre pipes no IPFW
e mpd-limit usando Netgraph.

-- 
Att.
__
Márcio Elias Hahn do Nascimento

Araranguá - SC
Cel:   (55) 48-9661-0233
msn: marcioeliash...@hotmail.com


2014-03-04 10:11 GMT-03:00 Bruno Araújo bjara...@gmail.com:

 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
 

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

2014-03-03 Por tôpico Márcio Elias
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: 

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

2014-03-03 Por tôpico Marcelo Gondim
Em 03/03/14 15:48, Márcio Elias 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.

Show Marcio! Eu estava vendo isso um tempo atrás mas tive que parar por 
causa de outras prioridades aqui no provedor mas fica aqui meu convite 
pra disponibilizar o seu artigo na BSDInfo.  :)

Concordo contigo com relação à documentação... é muito pouca e pior, as 
que existem não tem muitos exemplos práticos.

Grande abraço e sucesso aí na sua empreitada.
[]'s
Gondim

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


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

2014-03-03 Por tôpico Bruno Araújo
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: 

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

2014-03-03 Por tôpico Márcio Elias
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 

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

2014-03-03 Por tôpico Márcio Elias
2014-03-03 17:34 GMT-03:00 Márcio Elias marcioel...@gmail.com:

 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 

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

2014-03-03 Por tôpico Márcio Elias
Outra dúvida. rsrs... vc não está usando nat de uma interface para outra?
somente ng_nat?

Cara, essa parte ainda não parei pra estudar, meu principal objetivo é o
controle inteligente de banda, e desempenho. Pelo que li sobre o Netgraph,
ele tem mesmo um desempenho maior.

Você poderia compartilhar em troca ai além de como fez para nomear as
interfaces, como fez o ng_nat funcionar? Está usando uma interface para
entrada do link e outra para conexão aos usuários certo?

Estou empolgado em fazer este cenário dar certo, e publicar o artigo. Ao
ser publicado, se vc permitir, darei a vc os créditos pela ajuda.

-- 
Att.
__
Márcio Elias Hahn do Nascimento

Araranguá - SC
Cel:   (55) 48-9661-0233
msn: marcioeliash...@hotmail.com


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 

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

2014-02-13 Por tôpico Marcelo Gondim
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


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

2014-02-13 Por tôpico Márcio Elias
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


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

2014-02-12 Por tôpico Márcio Elias
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. ;)

-- 
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