Pra quem quer usar o HTB pra controlar banda dos clientes pppoe (interface ppp0, ppp1 etc)…
Muitos podem achar que é uma certa gambiarra, mas o resultado funciona. Não vou explicar como configurar o pppoe-server pois existem vários tutorias no VOL explicando como, bem como também a instalação do HTB.
Crie no /etc/htb o arquivo ppp0-qos.cfg, nele você coloca os dados abaixo:
class rede_interna bandwidth 100000; limit 100000; burst 2; priority 1; client cliente_up_128 bandwidth 128; limit 128; burst 2; priority 1; src 10.0.0.0/24; ; }; client cliente_down_512 bandwidth 128; limit 512; burst 2; priority 1; dst 10.0.0.0/24; ; };};class default bandwidth 8; ; |
No arquivo acima estou dizendo ao HTB que controle a banda da faixa de IP 10.0.0.0/24 pra 512k de download e 128k de upload. Lembrando que todos os arquivos ppp0-qos.cfg, ppp1-qos.cfg etc tem que ter o mesmo conteúdo.
Você pode criar aí dentro desse arquivo vários “planos” de internet, com faixa de redes diferentes, lembrando que tem que colocar os IPs relacionados no /etc/ppp/chap-secrets conforme a conta do indivíduo.
No arquivo /etc/rc.d/rc.htb altere da seguinte forma:
case "$1" in#start HTB on ppp0 'start_ppp0') /sbin/htb ppp0 start /sbin/htb ppp1 start /sbin/htb ppp2 start /sbin/htb ppp3 start ;;#stop HTB on ppp0 'stop_ppp0') /sbin/htb ppp0 stop /sbin/htb ppp1 stop /sbin/htb ppp2 stop /sbin/htb ppp3 stop ;; *)echo " Usage $0 start|stop|start_eth0|stop_eth0|start_eth1|stop_eth1|show_eth0|show_eth1|gen_eth0|gen_eth1" ;;esac |
Coloque a quantidade de ppp que achar conveniente aos acessos simultâneos de seus usuários, eu coloquei até ppp70.
Copie o arquivo ppp0-qos.cfg que consta no /etc/htb para ppp1-qos.cfg, assim como para todos que você indicou no arquivo acima /etc/rc.d/rc.htb. No meu caso foi até o ppp70-qos.cfg. Lembrando que todos tem que ter o mesmo conteúdo.
Bom, agora quando um usuário conectar e levantar a interface ppp0, ppp1, ppp2 etc, o controle de banda já sera feito.
Agora vem a parte meio que gambiarra do negócio, toda vez que o usuário conectar, tem que executar o /etc/rc.d/rc.htb start_ppp0, então como o cron só da pra rodar no mínimo de minuto em minuto, você pode criar um script da seguinte forma.
Crie o arquivo “exec”, dê permissão de execução (chmod +x exec), seu conteúdo será:
#!/bin/shwhile :;do /usr/local/bin/./rc.htb start_ppp0 >> /dev/null sleep 5done |
Salve e saia.
Esse arquivo vai executar o rc.htb start_ppp0 a cada 5 segundos, coloque pra rodar em background com o &, adicione ele no rc.local.
Outra coisa, copiei o rc.htb pra /usr/local/bin pra ele não ficar no /etc/rc.d.
Alessandro.
Publicado por Alessandro Périgo
Fonte: viva o linux









