O conceito de TOS (Type Of Service) permite aplicarmos regras no Iptables para que nosso firewall possa realizar um controle na prioridade dos pacotes que saem e chegam na nossa rede. Dessa forma, podemos garantir que aplicações "úteis" não fiquem prejudicadas pelo tráfego gerado por outros serviços.
As aplicações das regras de TOS irão seguir o mesmo padrão da sintaxe do Iptables, então se você tem domínio nas condições vai ter muita facilidade na implementação.
Neste exemplo será demonstrado na prática como ficaria a aplicação da prioridade máxima para a saída de tráfego pela interface eth0 de pacotes do protocolo SSH.
# iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 22 -j TOS --set-tos 16
Nesse comando, logados como root chamamos o programa iptables, informamos que iremos manipular a tabela mangle e que iremos adicionar uma nova regra ao fim da lista sob a chain PREROUTING. Informamos então, que qualquer pacote que estiver saindo pela nossa interface eth0, sob a porta 22 do protocolo tcp (SSH), deve ter o bit de prioridade máxima setado.
Lembrando que assim como as demais tabelas do Iptables, essa regra vai tratar apenas os pacotes que saírem do host pela interface eth0, pacotes que saírem por outras interfaces ou que estiverem entrando ou sendo redirecionados para outros hosts não serão afetados. Para isso é necessário à aplicação de outras regras que especifique qual o tipo de tráfego será tratado.
[1] Comentário enviado por fabio em 11/08/2006 - 12:32h
Excelente! Acabei de implementar aqui, finalmente poderei navegar e baixar e-mails normalmente sem precisar configurar limite de velocidade de download no meu aMule :P
[9] Comentário enviado por lanaf em 07/08/2008 - 12:51h
Blz de artigo, bem explicado.
Uma duvida que tive, se eu especificar o Ip e a porta na minha regra do iptables priorizando o trafego desta regra funcionar normalmente ou não.
[11] Comentário enviado por wasleyalmeida em 10/02/2009 - 10:48h
Otimo Artigo, vai me ajudar e muito.
Agora uma pergunta (talvez ate idiota) após a implementação tem como testar se a regra TOS esta funcionando corretamente, ou seja se esta tendo prioridade no trafego a ela destina.
[12] Comentário enviado por andriopj em 01/03/2009 - 19:19h
exemplo de QoS:
#Esta configuração esta priorizando o tráfego nas portas 80, 53, 3128 e 443, de entrada e saida da rede.
#Caso queira priorizar outros pacotes, mude as portas e set para 16 ou 0x10, que é a mesma coisa.
#saida
iptables -t mangle -A OUTPUT -o eth1 -p tcp --dport 80 -j TOS --set-tos 16
iptables -t mangle -A OUTPUT -o eth1 -p tcp --dport 443 -j TOS --set-tos 16
iptables -t mangle -A OUTPUT -o eth1 -p udp --dport 53 -j TOS --set-tos 16
iptables -t mangle -A OUTPUT -o eth1 -p tcp --dport 3128 -j TOS --set-tos 16
iptables -t mangle -A OUTPUT -o eth1 -p udp --dport 3128 -j TOS --set-tos 16
#entrada
iptables -t mangle -A PREROUTING -i eth1 -p tcp --sport 80 -j TOS --set-tos 0x10
iptables -t mangle -A PREROUTING -i eth1 -p udp --sport 53 -j TOS --set-tos 0x10
iptables -t mangle -A PREROUTING -i eth1 -p tcp --sport 443 -j TOS --set-tos 0x10
iptables -t mangle -A PREROUTING -i eth1 -p tcp --sport 3128 -j TOS --set-tos 0x10
iptables -t mangle -A PREROUTING -i eth1 -p udp --sport 3128 -j TOS --set-tos 0x10
[14] Comentário enviado por danistation em 21/12/2010 - 15:20h
Parabéns pelo post. Fui sucinto na explanação além de utilizar vocabulário simples e boa analogia.
Gostaria de fazer apenas um apelo: Poderia nos explicar melhor a diferença entra as opções da tabela ToS? Qual a diferença entre:
Espera mínima, processamento máximo, confiança máxima, custo mínimo?? Fisicamente, se eu entregar diversos pacotes com diversos ToS setados, como o router iria trabalhar esse monte de pacotes com prioridades diferentes? Quem seria privilegiado entre o outro? Julgo isso importante pois dependendo do tipo de dados que queremos priorizar, alguma regra não poderia não ser tão recomendada quanto alguma outra... Pode nos explicar melhor sobre a diferença entre essas prioridades??? Grande abraço!