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

Fabio Luiz fabiosk at gmail.com
Tue Jul 7 09:09:34 -03 2009


Desculpa mas fico meio confuso pra mim tambem concordo com o Carlos eu
normalmente utilizo o Default Policy cini ACCEPT e sobre a parte de
informações conflitantes foi oque o Carlos falou tambem.

Att.

Fabio

2009/6/30 Alexandre J. Correa - Onda Internet <alexandre at onda.psi.br>

> 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
>
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter
>



More information about the gter mailing list