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.
O tráfego de entrada são os pacotes que entram por alguma interface de rede e assim como as demais regras do Iptables, usaremos apenas a chain OUTPUT para manipulá-lo.
Para então tratarmos o tráfego de entrada será utilizado somente a chain PREROUTING e ao especificarmos uma interface de rede que a regra será aplicada usaremos a flag "-i", conforme a sintaxe do Iptables.
A regra a seguir dará prioridade máxima a pacotes entrantes no host sob o protocolo SSH:
# iptables -t mangle -A PREROUTING -i eth0 -p tcp --sport 22 -j TOS --set-tos 16
Uma outra regra que fará com que pacotes FTP entrem no host com máximo processamento:
# iptables -t mangle -A PREROUTING -i eth0 -p tcp --sport 20 -j TOS --set-tos 8
Conclusão
O controle de tráfego por Tipo de Serviço é muito eficaz para tratar serviços específicos, dando maior prioridade à eles. É uma forma inteligente de mantê-los funcionando bem em um ambiente onde existe convivência com outros tipos de serviços menos prioritários (como envio de e-mails pessoais, downloads e programas de mensagem instantânea) sem que seja necessário baní-los da rede, bloqueando o seu uso ou impondo severas regras de filtragem via proxy.
A intenção aqui é permitir que o chamado "tráfego podre" exista na rede, mas sem atrapalhar o desempenho dos demais serviços.
[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!