Iptables – Tabela Mangles

A tabela mangle

A tabela mangle serve para especificar ações especiais para o tratamento do tráfego que atravessa os chains. Nesta tabela existem cincos chains: PREROUTING, POSTROUTING, INPUT, OUTPUT e FORWARD.

Em geral, cada um deste chain é processado antes do chain correspondente na tabela filter e nat para definir opções especiais para o tráfego (por exemplo, o chain PREROUTING da tabela mangle é processado antes do PREROUTING da tabela nat). O chain OUTPUT da tabela mangle corresponde ao OUTPUT da tabela nat.

Opções como o Tipo de Serviço (TOS) é especificado nesta tabela para classificar e aumentar consideravelmente a velocidade de tráfego considerados em tempo real. Mesmo após o tráfego ser estabelecido, os chains da tabela mangle continuam ativos para garantir que as opções especiais relacionadas com a conexão continuem fazendo efeito.

Especificando o tipo de serviço

TOS

O TOS (Type of Service) nos permite filtrar pacotes que trafegam na nossa rede capturando informações sobre o tipo de serviço ao qual o pacote se destina. Estas informações estão contidas no cabeçalho de cada pacote. O campo TOS foi criado especificamente para que pudessemos fazer tal filtragem.

Para usufruirmos desta funcionalidade, nós utilizamos a tabela mangle do Netfilter. O TOS é um alvo (target) para o qual direcionamos os pacotes desejados referenciando-os em uma determinada regra. Compreenderemos o seu uso mais adiante.

Aplicando TOS

Para aplicar filtragem por TOS em nossa rede fazemos uso da tabela mangle e do alvo TOS seguido pelo parâmento –set-tos valor, em que os valores possíveis são, em ordem descrescente de prioridade:

Por padrão a prioridade dada à todos os pacotes, a menos que você especifique outro, será a prioridade normal.

A prioridade é definida usando o algoritmo FIFO do próprio kernel, sendo uma das alternativas de controle/ priorização de tráfego das mais simples e rápidas.

Uma das vantagens da utilização do tipo de serviço é dar prioridade ao tráfego de pacotes interativos (como os do ICQ, IRC, servidores de chat), etc. Com o TOS especificado, mesmo que esteja fazendo um download consumindo toda a banda de sua interface de rede, o tráfego com prioridade interativa será enviado antes, aumentando a eficiência do uso de serviços em sua máquina.

Em testes realizados em minha conexão de 56K, o uso de regras TOS aumentou bastante o desempenho em tráfego interativo (em torno de 300%), durante o uso total da banda da interface ppp em grande consumo de banda.

Usamos o alvo TOS (-j TOS) para especificar a modificação do tipo de serviço nos pacotes que atravessam as regras do firewall, acompanhada do argumento –set-tos TOS que define a nova prioridade dos pacotes. Os valores aceitos são os seguintes:

Espera Mínima

É especificado através de Minimize-Delay, 16 ou 0×10

Máximo Processamento

É especificado através de Maximize-Throughput, 8, ou 0×08.

Máxima Confiança

É especificado através de Maximize-Reliability, 4 ou 0×04.

Custo mínimo

Especificado através de Minimize-Cost, 2 ou 0×02.

Prioridade Normal

Especificado através de Normal-Service, 0 ou 0×00.

Os pacotes vem por padrão com o valor TOS ajustado como prioridade normal (bits tos ajustados para 0×00). O tipo Mínima Espera é o de maior prioridade, recomendado para tráfego interativo.

Especificando o TOS para tráfego de saída

Este é o mais usado, pois prioriza o tráfego que sai da máquina (com destino a Internet, por exemplo). Sua operação é realizada através do chain OUTPUT ou POSTROUTING.

Para priorizar todo o tráfego de IRC de nossa rede interna indo para a interface ppp0:

iptables -t mangle -A OUTPUT -o ppp0 -p tcp –dport 6666-6668 -j TOS –set-tos 16

O bit TOS é ajustado para Espera mínima e será enviado antes dos pacotes com prioridade normal para fora. Para priorizar a transmissão de dados ftp saindo da rede:

iptables -t mangle -A OUTPUT -o ppp0 -p tcp –dport 20 -j TOS –set-tos 8

Para priorizar o tráfego de ICQ da rede:

iptables -t mangle -A OUTPUT -o ppp0 -p tcp –dport 5190 -j TOS –set-tos 16

Existem muitas outras otimizações que podem ser feitas, só depende dos requerimentos e análise de cada serviço da rede pelo administrador.

OBS: – Os pacotes que atravessam o alvo TOS somente tem os bits tipo do serviço modificados, eles não serão de qualquer forma rejeitados.

Especificando o TOS para o tráfego de entrada

Este prioriza o tráfego que entra da máquina. Sua operação é realizada no chain INPUT ou PREROUTING. Não faz muito sentido o uso deste chain dentro de uma rede pequena/média, pois o tráfego que recebermos será priorizado pelo chain de saída de outras máquinas da internet/ outras redes antes de chegar a nossa (desde que elas também estejam usando TOS).

Para priorizar o processamento do tráfego interativo vindo de servidores IRC para nossa rede:

iptables -t mangle -A PREROUTING -i eth0 -p tcp –sport 6666-6668 -j TOS –set-tos 0×10

Modifica o tipo de serviço para mínima espera de todo o tráfego enviado por servidores de IRC vindo da interface eth0.

OBS: – Os pacotes que atravessam o alvo TOS somente tem os bits tipo do serviço modificados, eles não serão de qualquer forma rejeitados.

Postagem enviada por:

RuimRazoávelBomMuito BomExcelente! (4 votos, média: 3,25 de 5)
Loading ... Loading ...

Para votar clique em quantas estrelas deseja para o artigo
Espero que tenham gostado e quaisquer dúvidas podem ser tiradas na comunidade do orkut.

Gostou do tutorial??? Comente!!!

Seu comentário ajuda na credibilidade de outras pessoas que vão ler o tutorial e ajuda o blog a saber o que os seus usuários estão achando dos tutoriais.

Enviar postagem por email para um amigo Enviar postagem por email para um amigo

14 Comentários em “Iptables – Tabela Mangles”

  1. atalhovirtual.com diz:

    Iptables – Tabela Mangles…

    Saiba um pouco mais sobre a tabela Mangles. Conhea o que e para que serve….


  2. diga cultura diz:

    Iptables – Tabela Mangles…

    Saiba um pouco mais sobre a tabela Mangles. Conheça o que é e para que serve….


  3. domelhor.net diz:

    Iptables – Tabela Mangles…

    Saiba um pouco mais sobre a tabela Mangles. Conhea o que e para que serve….


  4. FixolaS diz:

    Iptables – Tabela Mangles…

    Saiba um pouco mais sobre a tabela Mangles. Conheça o que é e para que serve….


  5. www.linkk.com.br diz:

    Iptables – Tabela Mangles…

    Saiba um pouco mais sobre a tabela Mangles. Conheça o que é e para que serve….


  6. Anônimo diz:

    Iptables – Tabela Mangles…

    Saiba um pouco mais sobre a tabela Mangles. Conheça o que é e para que serve….


  7. Linka-Me.com para os viciados em blogs diz:

    Iptables – Tabela Mangles…

    Saiba um pouco mais sobre a tabela Mangles. Conheça o que é e para que serve….


  8. http://www.linkou.com.br diz:

    Iptables – Tabela Mangles…

    Saiba um pouco mais sobre a tabela Mangles. Conheça o que é e para que serve….


  9. ouvidizer.com diz:

    Iptables – Tabela Mangles…

    Saiba um pouco mais sobre a tabela Mangles. Conheça o que é e para que serve….


  10. pigg.com.br diz:

    Iptables – Tabela Mangles…

    Saiba um pouco mais sobre a tabela Mangles. Conheça o que é e para que serve….


  11. websapiens.net diz:

    Iptables – Tabela Mangles…

    Saiba um pouco mais sobre a tabela Mangles. Conheça o que é e para que serve….


  12. Renato diz:

    Me desculpe estar tomando teu tempo, mas é que lendo, suscitou-me uma dúvida sobre o funcionamento da tabela mangle, e não consegui entender seu funcionamento.

    As chains FORWARD ou OUTPUT da tabela mangle, seguem a mesma idéia da tabela
    filter com as mesmas chains? – Ou seja, OUTPUT para tráfegos que saem da
    própria máquina e FORWARD para tráfegos que são encaminhados para outros
    destino através do gateway.

    Sendo o iptables o Gateway da minha rede, ao criar uma regra para TOS na tabela
    mangle, eu deveria utilizar a chain FORWARD ou OUTPUT?

    Por exemplo eu deveria utilizar quais das regras (lembrando que esta regra
    estaria no gateway da rede):
    iptables -t mangle -I OUTPUT -o eth0 -s 192.168.15.35 -p tcp -m multiport
    –dport 80,22 -j TOS –set-tos 8
    iptables -t mangle -I PREROUTING -o eth0 -s 192.168.15.35 -p tcp -m multiport
    –dport 80,22 -j TOS –set-tos 8

    Pois gostaria de priorizar o tráfego apenas para uma determinada máquina.


  13. Glauco diz:

    Excelente artigo.

    “RENATO”, Sobre as chains das tabelas mangle e filter, é quase a mesma idéia sim, no entanto:

    [mangle - FORWARD] é processada somente antes de [filter - FORWARD].

    [mangle - OUTPUT] é processada somente antes de [nat - OUTPUT] e [filter - OUTPUT]

    mas…

    [mangle - POSTROUTING] é processada após [filter - FORWARD] e após [filter - OUTPUT] e antes de [nat - POSTROUTING].

    Use OUTPUT se o serviço que você estiver rodando seja a mesma máquina do iptables, pois se o destino for uma máquina diferente, terá que usar o FORWARD.


  14. viva o linux diz:


Deixe uma resposta

XHTML: Poderá utilizar estas tags tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>