Compartilhando internet com controle de banda

Publicado por Felipe Neri em 26/07/2006

[ Hits: 41.698 ]

 


Compartilhando internet com controle de banda



Compartilhando internet com a rede interna:
  • eth0: Rede externa (provedor);
  • eth1: Rede interna (sua rede).

Vamos configurar a placa de rede que liga seu computador a sua rede interna. Vamos dar o IP 192.168.1.1 e a máscara de sub-rede 255.255.255.0:

# ifconfig eth1 192.168.1.1 netmask 255.255.255.0 up

Pronto, agora vamos configurar o seu computador para repassar todo o conteúdo que vem pra placa de rede eth0 (provedor) para a placa de rede eth1 (rede interna):

# iptables -F
# iptables -F INPUT
# iptables -F OUTPUT
# iptables -F POSTROUTING -t nat
# iptables -F PREROUTING -t nat
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -P FORWARD ACCEPT
# iptables -P FORWARD DROP


Pronto, seu computador já está roteando sua conexão, fazendo com que tudo que venha pela placa de rede eth0 (provedor) vá para a eth1 (rede interna).

Agora você só precisa determinar quais IPs+MAC poderão navegar na rede interna.

Vamos liberar o IP 192.168.1.10 para poder navegar, supondo que o MAC da placa de rede seja 00:00:00:00:00:00:

# iptables -t nat -A POSTROUTING -s 192.168.1.10 -j MASQUERADE
# iptables -A FORWARD -s 192.168.1.10 -m mac --mac-source 00:00:00:00:00:00 -j ACCEPT
# iptables -A FORWARD -d 192.168.1.10 -j ACCEPT


Pronto, somente o IP 192.168.1.10 na placa de rede com o endereço MAC 00:00:00:00:00:00 conseguirá navegar.

Configuração cliente Windows


IP: 192.168.1.10
MsR: 255.255.255.0
Gateway: 192.168.1.1

OBS: O gateway é o IP do servidor Linux.

Controle de banda com HTB


Vamos baixar o HTB no site:
Descompactar o arquivo:

# tar -zxvf htb_tools-0.2.5.tar.gz

Agora vamos abrir a pasta que tem os arquivos de instalação do HTB:

# cd htb_tools-0.2.5

Instalando:

# sh install.sh
# cp tc /sbin
# make install


Pronto, agora vamos configurar o arquivo de controle de banda. Vamos supor que temos um link de 512k e queremos liberar apenas 128k para o ip 192.168.1.10. Vamos alterar o arquivo /etc/htb/eth1-qos.cfg:

class download {
   bandwidth 512;
   limit 512;
   burst 2;
   priority 1;

   # Clientes
   client Nome_do_cliente {
      bandwidth 128;
      limit 128;
      burst 2;
      priority 1;
      dst {
         192.168.1.10/32;
      };
   };
};

class upload {
   bandwidth 512;
   limit 512;
   burst 2;
   priority 1;

   # Clientes
   client Nome_do_cliente {
      bandwidth 128;
      limit 128;
      burst 2;
      priority 1;
      src {
         192.168.1.10/32;
      };
   };
};

Observe que a única diferença pra controlar o download e o upload é o src e o dst. o dst controla o download enquanto que o src controla o upload.

Espero ter ajudado!!!

Dúvidas, críticas e sugestões, postem aqui.

Felipe Néri

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

O comando YES

Instalando Tomcat5 no Debian Etch

Benchmark dos sistemas de arquivos Linux

Pós-instalação Debian Wheezy

Comandos aceitos no Basic Linux

  

Comentários
[1] Comentário enviado por felipeedd em 26/07/2006 - 13:33h

cara estou começando agora a mexe com linux quero faze isso q vc ta esplicando no artigo acima mas não sei aonde q eu vo pra muda essa conf. ?

# iptables -F
# iptables -F INPUT
# iptables -F OUTPUT
# iptables -F POSTROUTING -t nat
# iptables -F PREROUTING -t nat
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -P FORWARD ACCEPT
# iptables -P FORWARD DROP

[2] Comentário enviado por felipenerigba em 26/07/2006 - 21:37h

é o seguinte felipeedd, vc tem que criar um arquivo e colocar isso dentro dele... exemplo:
vamos criar um arquivo:

#mkdir arquivo.sh

depois de criado o arquivo vc coloca essas regras dentro dele

# iptables -F
# iptables -F INPUT
# iptables -F OUTPUT
# iptables -F POSTROUTING -t nat
# iptables -F PREROUTING -t nat
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -P FORWARD ACCEPT
# iptables -P FORWARD DROP

saia do arquivo e salve... depois vamos dar permissão de execução do arquivo criado

#chmod +x arquivo.sh

depois é só executar

#sh arquivo.sh

lembrando que somente isso vc nao irá fazer absolutamente nada, vc terá que liberar os acessos, por exemplo, vamos liberar o ip 192.168.1.50 com o mac 11:22:33:44:55:66


# iptables -t nat -A POSTROUTING -s 192.168.1.50 -j MASQUERADE
# iptables -A FORWARD -s 192.168.1.50 -m mac --mac-source 11:22:33:44:55:66 -j ACCEPT
# iptables -A FORWARD -d 192.168.1.50 -j ACCEPT

isso também dentro do arquivo.sh

duvidas pode ficar a vontada para perguntar

[3] Comentário enviado por dexterbc em 02/08/2006 - 17:06h

Velho você tem MSN to com uns probleminhas e queria tirar umas dúvidas se possível

gRATO
meu MSN é
dexterbca@hotmail.com

[4] Comentário enviado por renatoferreira em 04/08/2006 - 01:13h

tenho um provedor de internet e estou disposto a pagar para quem quiser me ajudar a criar um provedor na plataforma windows server 2003 ou linux...
meu msn é renato@rdinformatica.com.br

grato...

[5] Comentário enviado por melSpeedl.ine em 09/08/2006 - 19:46h

o tutorial está xelente. mas o meu problema numero um mantem-se

tenho a maquina com linux a partilhar a net, na maquina windows nao consigo acedera algumas paginas... principalmente tudo o que seja serviçoes microsoft.

MSN messenger... www.microsoft.com nada funciona!

na maquina que stá a servir as paginas funcionam perfeitamente, e na maquina q tem windows, se acessar pelo linux (suse em dual boot com XP) embora tenha uma lentidao terrivel ainda consigo entrar em algumas paginas q no windows nao dão

e agora q faço??? acontecie-me isto no Suse 10.1 e repete-se no meu fedora 5

se poderem ajudar agradecia cumps

[6] Comentário enviado por felipenerigba em 10/08/2006 - 07:12h

Provavelmente sejá o firewall do seu provedor de serviços que está bloqueando o compartilhamento. tive um problema parecido e a minha solução foi instalar o squid para compartilhamento, você encontra um tutorial bem fácil de utilização em: http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1833

[7] Comentário enviado por ferdead em 15/10/2006 - 02:02h

Sou novo de linux....
fiz as configuracoes ae que vc disse...

até está funcionando, mas está perdendo cerca de 60% dos pacotes do ping, tornando a navegação bem lenta... o linux perde os pacotes que envia para o windows, e vice-versa... a mesma taxa de perca nos dois!

o que será está acontecendo ?
o mesmo equipamento, funciona no windows perfeito!

[8] Comentário enviado por dsimoneli em 13/11/2006 - 14:10h

fiz tudo q vc colocou ai criei o arquivo .sh mas na hora q coloco as linhas blz mais na hora q salvo ele diz q e um diretorio e nao uma arquivo o q eu faco

[9] Comentário enviado por bymatrox em 06/02/2007 - 23:23h

Sou novato em linux, mas confesso que fico jóia. parabéns pelo artigo
mas se eu quiser retirar um ip+mac que adicionei como faço?

[10] Comentário enviado por teiti em 16/02/2007 - 19:10h

Eu nem conheço o linux e estou precisando controlar banda de uma rede wireless, dessa forma daria para controlar e teria bom desempenho tendo as maquinas diversos sistemas operacionais? Estou no caminho certo? O que sua experiência sugeri para um leigo será que consigo????

[11] Comentário enviado por coyotty em 14/05/2007 - 15:10h

qndo tento instalar da um erro, alguem sabe oque é isso:
[root@isp htb_tools-0.2.5]# sh install.sh

/bin/cp: impossível fazer stat em `q_parser': Arquivo ou diretório não encontrad o
/bin/cp: impossível fazer stat em `q_show': Arquivo ou diretório não encontrado
/bin/cp: impossível fazer stat em `q_checkcfg': Arquivo ou diretório não encontr ado
`htb' -> `/sbin/htb'
`tc' -> `/sbin/tc'
Directory /etc/htb exist. Skipping ...
Installing default config files ...
Done.

[12] Comentário enviado por erasmoartur em 29/05/2007 - 10:01h

alguem sabe como configurar para em vez de cadastrar ip por ip o sistema aceite faixas de ip, como 10.80.x.x!?

[13] Comentário enviado por jose.riopreto em 29/06/2007 - 16:26h

REforçando a ultima pergunta, seria interessante uma opção que permita inserir vários IPs de uma só vez.

[14] Comentário enviado por juderlan em 16/07/2007 - 19:20h

Amigo, parabens por essa dica. Apliquei aqui no meu servidor de uma rede wirelles, usando red hat9. Tá tudo funcionando beleza. Mas, me surgiu uma novidade péssima. Tem algum cliente na minha rede que está burlando o controle de banda do htb. Funciona assim: após as 22 horas até de manhã cedo esse cara fica usando toda a banda livre do meu link de 2 mega da embratel, e o pior é que ele não usa o ip dele, usa, por exemplo, o ip da câmara municipal ou da prefeitura ou de um comércio que são clientes também.
No terminal eu dou o comando #htb eth1 stats, onde posso visualizar os clientes que estão navegando e visualizo o consumo de cada um. Já fui até os locais e investiguei se não havia alguém durante a madrugada acessando a net nestes locais e a resposta foi não. Agora, recentemente, flagrei as 5 da manhã o cara usando um ip de um pc de minha rede local que também é controlada por estas regras que vc postou configurado com o ip 10.10.0.254 só que o pc neste horário estava desligado. Ai eu pergunto, o que pode está acontecendo e o que posso fazer para acabar de vez com esse problema e descobrir de vez esse gaiato na minha, pois eu já desconfio, só quero ter a certeza.
Desde agradeço a sua colaboração...

[15] Comentário enviado por jsantana em 23/08/2007 - 21:14h

?comentario=Boa noite juderlan. Que tal implementar uma regra no seu firewall permitindo acesso apenas para os endereços MAC´s de seu clientes...???
Um abraço e até +

[16] Comentário enviado por luancfalquetto em 03/09/2007 - 20:35h

as configurações que no artigo estão em maiúsculo, devem ser digitados tmbm em maiúsculo?
issas configurações servem para todas as distribuições? no ubuntu 7.04?
kurumim? debiam?
obrigado e desculpe se algumas pergunta são idiotas, mais so iniciante em linux, mais em programação manjo um pokinho....

[17] Comentário enviado por rogeriolourenco em 26/09/2007 - 11:00h

Muito interessante seu artigo, porém, tem como criar tabelas no Mysql, uma com cada vel. ex. 128, 256 e 512 com end. de IP e MAC e assim efetuar uma consulta na tabela em vez de colocar os IPs no arq. de conf., se sim como seria isso ?

[18] Comentário enviado por fenixprovedor em 14/12/2007 - 21:28h

?comentario= velho apesar de trabalhar no ramo a 19 anos, estou a 06 meses usando linux, e to apanhando pra burro, tudo que fiz ate agora foi conseguir instalar o kurumin e ubuntum, tenho um pequeno link que contpartilho com alguns amigos, nada muito granda, na verdade 1mg, com 12,5% de banda garantida, conseguir com muita luta compartilhar usando o iptables e ativar o squid, mas quando o assunto e controle de banda, ai o bicho pega, ja tentei de tudo, o delay do squi, o cbq e nada, vasculhanda na net achei seu artigo, muito bem detalhado por sinal, coisa de profissional, mesmo, mas nao to conseguindo sequer instalar o htb, quando tento fazer os erros abaixo aparecem e nao vai para frente, apesar de os arquivos de configuração ja existirem na pasta htb, assim sendo se alguem puder me ajudar, de alguma forma ficarei muito agradecido, pois estou precisando mesmo de ajuda, nao me importo e pagar pelos os serviços se algum colega se dispuser a mi ajudar.

meu msn e chikinho_bb@hotmail.com
email chikinho_bb@hotmail.com

os erros sao os seguintes:

root@servefenix:/etc# tar -zxvf htb_tools-0.2.5.tar.gz
htb_tools-0.2.5/
htb_tools-0.2.5/tc
htb_tools-0.2.5/cfg/
htb_tools-0.2.5/cfg/eth1-qos.cfg
htb_tools-0.2.5/cfg/eth0-qos.cfg
htb_tools-0.2.5/htb
htb_tools-0.2.5/lib/
htb_tools-0.2.5/lib/ll_map.c
htb_tools-0.2.5/lib/libnetlink.c
htb_tools-0.2.5/lib/libnetlink.h
htb_tools-0.2.5/web/
htb_tools-0.2.5/web/README-en
htb_tools-0.2.5/web/README-ro
htb_tools-0.2.5/web/q_show.php
htb_tools-0.2.5/web/install.sh
htb_tools-0.2.5/Bugs
htb_tools-0.2.5/TODO
htb_tools-0.2.5/docs/
htb_tools-0.2.5/docs/HowTo/
htb_tools-0.2.5/docs/HowTo/updated.gif
htb_tools-0.2.5/docs/HowTo/htb_tools-howto-ro.html
htb_tools-0.2.5/docs/HowTo/htb_tools-howto-en.html
htb_tools-0.2.5/docs/HowTo/htb_tools-howto-en.txt
htb_tools-0.2.5/docs/HowTo/new.gif
htb_tools-0.2.5/docs/HowTo/htb_tools-howto-ro.txt
htb_tools-0.2.5/docs/complex.cfg
htb_tools-0.2.5/docs/simple.cfg
htb_tools-0.2.5/docs/README.cfg.en
htb_tools-0.2.5/docs/README.cfg.ro
htb_tools-0.2.5/Makefile
htb_tools-0.2.5/include-glibc/
htb_tools-0.2.5/include-glibc/bits/
htb_tools-0.2.5/include-glibc/bits/sockunion.h
htb_tools-0.2.5/include-glibc/bits/socket.h
htb_tools-0.2.5/include-glibc/netinet/
htb_tools-0.2.5/include-glibc/netinet/in.h
htb_tools-0.2.5/include-glibc/netinet/ip.h
htb_tools-0.2.5/include-glibc/glibc-bugs.h
htb_tools-0.2.5/include-glibc/socketbits.h
htb_tools-0.2.5/README-en
htb_tools-0.2.5/README-ro
htb_tools-0.2.5/parse_cfg.h
htb_tools-0.2.5/parse_cfg.l
htb_tools-0.2.5/lists.c
htb_tools-0.2.5/lists.h
htb_tools-0.2.5/install.sh
htb_tools-0.2.5/q_parser.c
htb_tools-0.2.5/q_show.c
htb_tools-0.2.5/htbgen-0.25/
htb_tools-0.2.5/htbgen-0.25/TODO
htb_tools-0.2.5/htbgen-0.25/README.en
htb_tools-0.2.5/htbgen-0.25/THANKS
htb_tools-0.2.5/htbgen-0.25/AUTHORS
htb_tools-0.2.5/htbgen-0.25/htbgen-0.25
htb_tools-0.2.5/htbgen-0.25/ChangeLog
htb_tools-0.2.5/htbgen-0.25/COPYING
htb_tools-0.2.5/Changelog
htb_tools-0.2.5/include/
htb_tools-0.2.5/include/rt_names.h
htb_tools-0.2.5/include/ll_map.h
htb_tools-0.2.5/include/rtm_map.h
htb_tools-0.2.5/include/SNAPSHOT.h
htb_tools-0.2.5/include/libnetlink.h
htb_tools-0.2.5/COPYING
htb_tools-0.2.5/CREDITS
htb_tools-0.2.5/q_checkcfg.c
root@servefenix:/etc# cd htb_tools-0.2.5
root@servefenix:/etc/htb_tools-0.2.5#
root@servefenix:/etc/htb_tools-0.2.5# sh install.sh

/bin/cp: impossível fazer stat em `q_parser': Arquivo ou diretório não encontrado
/bin/cp: impossível fazer stat em `q_show': Arquivo ou diretório não encontrado
/bin/cp: impossível fazer stat em `q_checkcfg': Arquivo ou diretório não encontrado
`htb' -> `/sbin/htb'
`tc' -> `/sbin/tc'
Directory /etc/htb exist. Skipping ...
Installing default config files ...
Done.

root@servefenix:/etc/htb_tools-0.2.5# cp tc /sbin
cp: sobrescrever `/sbin/tc'?
root@servefenix:/etc/htb_tools-0.2.5# make install
flex -i parse_cfg.l
make: flex: Comando não encontrado
make: ** [lex_parser] Erro 127

fico no agurdo

[19] Comentário enviado por bernardotorres em 15/10/2008 - 04:43h

Fazer controle de internet com HTB é muito eficiente, pena que pro usuário final isso é bem complicado. Obrigado por fazer o tutorial.

[20] Comentário enviado por adrianok9999 em 21/02/2009 - 11:12h

ola amigos qro saber como controla a banda da rede sem fio por mac estou usando o ubunto

[21] Comentário enviado por adrianok9999 em 21/02/2009 - 11:14h

class download {
bandwidth 512;
limit 512;
burst 2;
priority 1;

# Clientes
client Nome_do_cliente {
bandwidth 128;
limit 128;
burst 2;
priority 1;
dst {
192.168.1.10/32;
};
};
};

class upload {
bandwidth 512;
limit 512;
burst 2;
priority 1;

# Clientes
client Nome_do_cliente {
bandwidth 128;
limit 128;
burst 2;
priority 1;
src {
192.168.1.10/32;
};
};
};




amigo entendi como faço esse esquema queria saber como faço para bloquear somente po mac

[22] Comentário enviado por alanbrehmer em 30/08/2009 - 01:35h

1. Introdução
O HTB (Hierarchical Token Bucket) é uma boa alternativa em substituição ao CBQ (Class Based Queueing) pois este é mais preciso e fácil de utilizar (será? Para mim foi). A diferença para o CBQ é que ele aloca banda para uma ou mais classes ("links virtuais") e toma emprestada temporariamente a banda de outra classe que não esteja sendo utilizada completamente. Ainda diferentemente do CBQ você pode alocar diversos clientes em uma mesma classe. Para utilizar o HTB você precisa de um kernel maior ou igual 2.4.20 e da ferramenta tc (Traffic Control) incluída no pacote iproute2 sendo requerido o pacote iproute2 >= 2.6.10-ss050124. Eu utilizei apenas o Slackware 10.2 (kernel 2.4.31 ou kernel 2.6.13) com o pacote iproute2-2.6.11_050330 (série n do slackware) instalado. Para configurarmos o HTB temos basicamente três alternativas:

* Criar um script com todos os comandos (se você souber quais é claro);
* Utilizar o utilitário htb.init script semelhante ao cbq.init e que demanda uma série de configurações, bem familiar para quem já utiliza o CBQ; ou
* Utilizar a ferramenta HTB Tools. Como eu quero simplificar e não tenho experiência com o CBQ optei pelo HTB Tools criada dentro da filosofia do Slackware.

Faça o download do HTB-tools-0.2.7.tar.gz em: http://htb-tools.arny.ro/download.php Caso não goste de instalar manualmente e queira pular para a configuração baixe o pacote no formato .tgz no mesmo link acima ou em: http://www.linuxpackages.net/pkg_details.php?id=8121 Descompacte o pacote com os fontes e execute:

root@ice:~# cd HTB-tools-0.2.7 ; make ; make install

Para completar a instalação, execute os seguintes comandos:

root@ice:~/HTB-tools-0.2.7# mkdir -p /etc/htb

root@ice:~/HTB-tools-0.2.7# cp sys/scripts/rc.htb /etc/rc.d/rc.htb

root@ice:~/HTB-tools-0.2.7# cp sys/cfg/eth0-qos.cfg /etc/htb/eth0-qos.cfg

root@ice:~/HTB-tools-0.2.7# cp sys/cfg/eth1-qos.cfg /etc/htb/eth1-qos.cfg

Acima copiamos os arquivos de configuração de exemplo para as interfaces eth0 e eth1 e o script de inicialização rc.htb. Para o formato .tgz , execute apenas:

root@ice:~# installpkg HTB-tools-0.2.7-i486-1wsa.tgz

3. Configuração
Instalado o HTB Tools seu Slackware terá os executáveis:

* q_parser - lê o arquivo de configuração onde os clientes, as classes, e a banda alocada é definida e gera um script conforme as configurações estabelecidas;
* q_show - exibe em tempo real a banda usada/alocada para cada classe/cliente de acordo com a configuração;
* q_checkcfg - verifica a sintaxe do arquivo de configuração;
* htb - script que executa rotinas com os binários q_show, q_parser, q_checkcfg;
* htbgen - utilitário para gerar arquivos de configuração para redes classes C.

Os arquivos de configuração ficam em /etc/htb. Utilizando o HTB Tools conseguimos simplificar bastante a configuração e monitoramento de alocação de banda tanto para upload como para download. A grande sacada do criador do HTB Tools foi definir uma configuração semelhante a do arquivo named.conf (quem nunca deu uma espiada?). Vamos ao exemplo: você possue um link de 512kpbs compartilhado entre dois clientes , teoricamente cada um deveria ter 256kpbs garantidos (QOS), contudo você deixou a coisa frouxa e um dos clientes começa a reclamar que o link está muito lento e que não consegue realizar transações importantes. Não precisa dizer mais nada, o outro cliente está "abusando" do link. A culpa não é dele, pois você deixou, não é mesmo? Para resolver este problema vamos de fato distribuir o link da seguinte forma: cada cliente terá 192kpbs garantidos e no máximo 256kps para upload/download. Supondo que a sua interface LAN seja a eth0 vamos controlar o upload/download criando o arquivo /etc/htb/eth0-qos.cfg com o seguinte conteúdo:

class Wireless {
bandwidth 480;
limit 512;
burst 2;
priority 1;

client cliente_1 {
bandwidth 192;
limit 256;
burst 2;
priority 1;
src { 192.168.1.2/24; };
dst { 192.168.1.2/24; };
};

client cliente_2 {
bandwidth 192;
limit 256;
burst 2;
priority 1;
src { 192.168.2.2/24; };
dst { 192.168.2.2/24; };
};

};

class default { bandwidth 8; };

Como podemos observar a configuração é auto explicativa. Mas para não deixar dúvidas podemos observar que o src, como devemos suspeitar, é o source ou seja a origem do tráfego, por tando estamos limitando a saída (upload). No caso da diretiva dst controlamos o destino ou seja a entrada (download). A estrutura básica pode ser resumida em uma classe principal que é subdividida dentro de outras classes secundárias. Quando existe mais de uma classe principal estas não compartilham banda entre elas. As classes secundárias (clientes) podem compartilhar banda entre elas de acordo com a configuração (limit maior). Cada classe principal possue uma ou mais classes secundárias (clientes). A classe especial default especifica uma banda para os outros clientes/tráfegos que não estejam contemplados na configuração. A taxa de transferência e dada em kbit por segundo(kpbs). Para controlar o download/upload na eth1 basta criar um arquivo semelhante ao /etc/htb/eth0-qos.cfg em /etc/htb/eth1-qos.cfg supondo que a sua interface eth1 seja da outra LAN ou a própria WAN. Em /etc/htb/eth1-qos.cfg crie a classe principal e as classes clientes conforme as necessidades. Em configurações mais complexas você pode especificar diversos IP's ou redes (rede/máscara) dentro de uma mesma classe secundária entre as chaves do src ou dst, sempre um(a) por linha e finalizado por um ponto-e-vírgula. Agora caso você queira limitar a banda para um serviço específico por exemplo ftp ou http dê um espaço e coloque a porta do serviço (em src ou dst), assim :

...

dst {
192.168.3.0/24 21;
192.168.4.0/24 80;
};

...

Atenção: cuidado ao criar as classes pois estará limitando todo o tráfego para aquele cliente/ip para todos os protocolos. Combine várias classes e configurações até chegar ao controle ideal. Antes de ativar o controle de banda é recomendável verificar a sintaxe da configuração:

root@ice:~# q_checkcfg /etc/htb/eth0-qos.cfg

root@ice:~# q_checkcfg /etc/htb/eth1-qos.cfg

4. Ativando o HTB
Para facilitar as coisas tornamos o rc.htb executável:

root@ice:~# chmod +x /etc/rc.d/rc.htb

Com este script não precisamos executar diretamente os binários do HTB Tools. Para ativarmos o htb para a eth0 executarmos dentro de /etc/rc.d:

root@ice:/etc/rc.d# ./rc.htb start_eth0

Faça o mesmo para eth1 obviamente fazendo a substituição necessária de eth0 por eth1. Caso possua mais de duas interfaces altere o rc.htb de acordo com suas necessidades. Estando tudo correto vamos cuidar para que o HTB seja ativado a cada boot, acrescentando os comandos acima no rc.local ou em outro script de inicialização de sua preferência. Exemplo:

root@ice:/etc/rc.d# echo "/etc/rc.d/rc.htb start_eth0" >> /etc/rc.d/rc.local
root@ice:/etc/rc.d# echo "/etc/rc.d/rc.htb start_eth1" >> /etc/rc.d/rc.local

5. Monitorando o Controle de Banda
Iniciado o HTB, você pode monitorar o uso do link em tempo real, para monitorar individualmente cada cliente fazendo upload ou download, respectivamente, execute:

root@ice:/etc/rc.d# ./rc.htb show_eth0

root@ice:/etc/rc.d# ./rc.htb show_eth1

Dê uma olha no pacote HTB Tools e você ainda poderá lançar mão do utilitário htbgen para gerar o arquivo de configuração via assistente e terá uma forma de monitorar a utilização da banda pela web (q_show.php). É mole ou que mais! Espero que consigam descomplicar o controle de banda com HTB Tools assim como eu consegui.

[23] Comentário enviado por blooddragon em 31/03/2010 - 18:10h

Caros colegas,

ao executar comando make da o seguinte erro


imperium:~/pacotes/HTB-tools-0.3.0a# make
flex -i sys/parse_cfg.l
make: flex: Comando não encontrado
make: ** [lex_parser] Erro 127
imperium:~/pacotes/HTB-tools-0.3.0a#

se alguem poder ajudar agradeço...

Rodrigo R. dos Santos
Manaus-AM

[24] Comentário enviado por blooddragon em 31/03/2010 - 18:18h

Oxi...

estava sem o pacote flex instalado e o gcc
agora deu outro erro

imperium:~/pacotes/HTB-tools-0.3.0a# make
flex -i sys/parse_cfg.l
gcc -O2 -Wall -g -I./include -c -o sys/lists.o sys/lists.c
sys/lists.c:26:19: error: stdio.h: Arquivo ou diretório não encontrado
sys/lists.c:27:20: error: stdlib.h: Arquivo ou diretório não encontrado
sys/lists.c:28:20: error: string.h: Arquivo ou diretório não encontrado
sys/lists.c: In function âinit_classes_listâ:
sys/lists.c:40: error: âNULLâ undeclared (first use in this function)
sys/lists.c:40: error: (Each undeclared identifier is reported only once
sys/lists.c:40: error: for each function it appears in.)
sys/lists.c: In function âopen_next_classâ:
sys/lists.c:50: warning: implicit declaration of function âmallocâ
sys/lists.c:50: warning: incompatible implicit declaration of built-in function âmallocâ
sys/lists.c:50: error: âNULLâ undeclared (first use in this function)
sys/lists.c:67: warning: implicit declaration of function âmemsetâ
sys/lists.c:67: warning: incompatible implicit declaration of built-in function âmemsetâ
sys/lists.c: In function âinsert_in_class_strâ:
sys/lists.c:102: warning: implicit declaration of function âstrncpyâ
sys/lists.c:102: warning: incompatible implicit declaration of built-in function âstrncpyâ
sys/lists.c: In function âset_class_nameâ:
sys/lists.c:112: warning: incompatible implicit declaration of built-in function âstrncpyâ
sys/lists.c: In function âinit_clients_listâ:
sys/lists.c:129: error: âNULLâ undeclared (first use in this function)
sys/lists.c: In function âopen_next_clientâ:
sys/lists.c:138: warning: incompatible implicit declaration of built-in function âmallocâ
sys/lists.c:138: error: âNULLâ undeclared (first use in this function)
sys/lists.c:158: warning: incompatible implicit declaration of built-in function âmemsetâ
sys/lists.c: In function âinsert_dst_in_clientâ:
sys/lists.c:196: warning: incompatible implicit declaration of built-in function âstrncpyâ
sys/lists.c: In function âinsert_src_in_clientâ:
sys/lists.c:204: warning: incompatible implicit declaration of built-in function âstrncpyâ
sys/lists.c: In function âset_client_nameâ:
sys/lists.c:212: warning: incompatible implicit declaration of built-in function âstrncpyâ
sys/lists.c: In function âfree_classes_listâ:
sys/lists.c:236: warning: implicit declaration of function âfreeâ
sys/lists.c: In function âdebug_write_listâ:
sys/lists.c:255: warning: implicit declaration of function âprintfâ
sys/lists.c:255: warning: incompatible implicit declaration of built-in function âprintfâ
make: ** [sys/lists.o] Erro 1
imperium:~/pacotes/HTB-tools-0.3.0a#



alguem que poder ajudar

agradeço



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts