[GTER] Cuidados com o Alvo(Target) Mark no iptables

Alexandre J. Correa - Onda Internet alexandre at onda.psi.br
Tue Jun 30 19:48:25 -03 2009


Carlos,

ele cai na policy DEFAULT caso nenhuma outra regra bata com o pacote... 
mas se bater... desfaz o que fez anteriormente..

entao, sempre que eu utilizo mark, eu dou ACCEPT depois para que ele 
TERMINE o processamento daquele pacote... evitando que ele passe por 
outra analise adiante :)


Carlos Eduardo Langoni wrote:
> Alexandre,
>
> Depois do Mark você precisa dar um Accept se a Default Policy for
> DROP, mas nunca utilizei nada na tabela mangle como Default Policy em
> DROP e nunca vi em uso também.
>
> Abraços!
>
> 2009/6/30 Alexandre J. Correa - Onda Internet <alexandre at onda.psi.br>:
>   
>> depois do mark voce precisa dar um ACCEPT para que nao siga o
>> processamento...
>>
>> MARK trabalha igual o RETURN (apenas nao marca)
>>
>>
>> Carlos Eduardo Langoni wrote:
>>     
>>> Demorei 3 dias para entender este problema e encontrar a solução para
>>> ele, e acho que pode ser útil para outras pessoas, a medida que
>>> aumenta-se a oferta e disponibilidade de serviços de acesso a
>>> internet.
>>>
>>> Como todos sabem é simples e eficiente fazer balanceamento de carga
>>> entre dois links de internet com Linux.
>>> Isso é feito utilizando o Alvo(Target) MARK do iptables em conjunto
>>> com algumas regras do iproute2[1].
>>>
>>> O problema aparece quando começamos a trabalhar com vários alvos MARK.
>>> No meu caso específico encontrei este problema quando comecei a
>>> utilizar o NoCat como autenticador da rede, ele identifica o pacote já
>>> autenticado através de marcas relacionadas a pacotes, 0x4 para não
>>> autenticados e 0x3,0x2 e 0x1 para os autenticados, dependendo do grupo
>>> ele escolhe entre as marcas 3,2 e 1.
>>> Quando eu precisei fazer com que determinados pacotes saissem por uma
>>> segunda conexão com a internet os problemas começaram. De forma alguma
>>> eu consegui fazer funcionar. Eu removia todas as regras subia apenas
>>> as regras necessárias ao roteamento e funcionava, quando misturava com
>>> as regras nada de funcionar.
>>>
>>> Após ler muitos logs e fazer muitos testes comecei a entender o
>>> funcionamento.
>>> No geral quando um pacote casa com uma regra o iptables para o
>>> processamento na chain e passa para a próxima chain (ou para o envio
>>> do pacote quando chega na última chain). Mas no caso do alvo MARK,
>>> como o pacote não foi aceitado nem rejeitado, o processamento não
>>> para, ele simplesmente associa o pacote à marca e segue para próxima
>>> regra. Se houver alguma outra regra de MARK conflitante, que também
>>> case com o pacote, a marca do pacote será alterada.
>>>
>>> Exemplo:
>>> iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -d 200.xxx.xxx.0/24
>>> -j MARK --set-mark 1
>>> iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -d 0/0 -j MARK
>>> --set-mark 2
>>> Neste caso todos os pacotes com origem em 192.168.0.0/24 serão
>>> marcados com 2 no final do processamento
>>> Se a última regra desta chain fosse:
>>> iptables -t mangle -A PREROUTING -s 0/0 -d 0/0 -j MARK --set-mark 5
>>> Todos os pacotes seriam marcados com 5.
>>>
>>> Desta forma é preciso muita atenção para criar regras de marcação de
>>> pacotes, a fim de evitar que a marca não seja aplicada corretamente.
>>> No caso do exemplo a melhor ordem para as regras seria:
>>> iptables -t mangle -A PREROUTING -s 0/0 -d 0/0 -j MARK --set-mark 5
>>> iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -d 0/0 -j MARK
>>> --set-mark 2
>>> iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -d 200.xxx.xxx.0/24
>>> -j MARK --set-mark 1
>>>
>>> Desta forma todos os pacotes com origem em 192.168.0.0/24 com destino
>>> a 200.xxx.xxx.0/24 recebem marca 1, com origem 192.168.0.0/24 e
>>> qualquer destino recebem marca 2 e os demais pacotes marca 5
>>>
>>> Espero que seja útil para mais alguém esta informação
>>>
>>> Abraços a todos!
>>> [1] http://lartc.org/
>>> --
>>> gter list    https://eng.registro.br/mailman/listinfo/gter
>>>
>>>
>>>       
>> --
>> Sds.
>>
>> Alexandre Jeronimo Correa
>>
>> Onda Internet
>> www.onda.net.br
>>
>> IPV6 Ready !
>> www.ipv6.onda.net.br
>>
>> --
>> gter list    https://eng.registro.br/mailman/listinfo/gter
>>
>>     
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter
>
>   


-- 
Sds.

Alexandre Jeronimo Correa

Onda Internet
www.onda.net.br

IPV6 Ready !
www.ipv6.onda.net.br




More information about the gter mailing list