Script para controle de banda usando FreeRADIUS, PPPoE e HTB

Publicado por Wilker Azevedo 22/07/2008

[ Hits: 10.911 ]

Homepage: plantec.eco.br

Download ip-up




Aqui estão os scripts que utilizo para o controle de banda dos meus clientes.

O script ip-up foi feito por mim, mas como fonte de estudos utilizei alguns script que são distribuidos na internet. Aviso que qualquer semelhança se dá no modo de utilização e finalidade. Qualquer script para controle de banda usando TC será muito parecido mesmo.

Veja em [ Fazer Download ] para o script ip-up.

Veja em [ Código-fonte ] para o script ip-down e maiores instruções.

  



Esconder código-fonte

Para este script funcionar corretamente é preciso FreeRADIUS, PPPoE e HTB (MySQL opicional)
Aqui estão os scripts que utilizo para o controle de banda dos meus clientes.

O script ip-up foi retirado da internet (não me lembro mais quem é o autor) mas tive que fazer muitas modificações para funcionar de acordo com minha necessidade.

Para este script funcionar corretamente é preciso FreeRADIUS, PPPoE e HTB (MySQL opicional)

Configuração:

Para MySQL:

Coloque na tabela radroupreply (todos os clientes do grupo) ou radreply (para cliente individual) os seguintes atributos:

Upstream-Speep
Downstream-Speed

Os operadores devem ser :=

Quem não usa MySQL coloca no raddb/users (consulte help do FreeRADIUS)

O ip-down apenas apaga as regras.

Funcionamento:

ip-up recebe como parâmetros $1 (interface virtual) e $5 (ip do cliente) e procura no arquivo criado pelo radiusclient as velocidades up e down. Caso não encontre, um default é utilizado.

Ao contrário do que muitas pessoas dizem, HTB faz controle de UPLOAD. Inclusive, é bem mais simples, como você pode notar no script, upload é controlado com apenas uma linha de comando.

Como só é possível colocar 1 script, então coloquei o ip-up. Mas o ip-down (que é bem menor) está aqui abaixo, basta você copiar e criar o arquivo /etc/ppp/ip-down:

#=======> ip-down
#! /bin/bash
# Este script pode ser distribuido livremente desde que permaneça o crédito do autor.
# Script criado por Wilker Azevedo - 2007
# [email protected]
# www.listnux.org (contribua você também)
#
ppp=$1
echo "Logout" $ppp `date` >> /usr/local/var/log/pppd.log
echo >> /usr/local/var/log/pppd.log
tc qdisc del dev $ppp root
tc qdisc del dev $ppp ingress
#=======> fim

Scripts recomendados

Filtro para importação de extrato do Banco do Brasil para Kmymoney

Ripar CD's de aúdio

Script Para Iniciar O Modem Hsp56

Enviar gráficos 3D pela janela de chat no Kopete

cambada_oneko - gatinhos coloridos perseguindo o ponteiro do mouse


  

Comentários
[1] Comentário enviado por cytron em 22/07/2008 - 23:34h

Só uma correção:

Na parte "Código-fonte", onde falo do MySQL, o nome da tabela saiu errado,

radroupreply (faltou a letra g)

Correto:

radgroupreply

Só isso.

[2] Comentário enviado por cytron em 25/08/2009 - 09:26h

Uma ná notícia para a atualidade, a linha responsável pelo controle de upload não funciona nas novas versões do TC, ao aplicar o TC retorna com a seguinte mensagem:

Illegal "match"

E o upload fica de porteiras abertas.
Como tem muito tempo que parei de estudar o TC, não sei corrigir, mas vou ter que colocar a mão na massa.

Se alguém souber a nova maneira de aplicar, pode contribuir aqui ;)


Contribuir com comentário