[GTER] PBR IPTABLES IPV6

Lucas Willian Bocchi lucas.bocchi at gmail.com
Mon Aug 18 10:11:15 -03 2014


Adriano

Use o connmark com o módulo de estados e o ip de origem que você irá
conseguir melhorar a regra.

Exemplo (hipotético)
iptables -t mangle -I PREROUTING -i <interface de entrada> -s <ips de
origem> -m state --state NEW -m connmark --set-mark 0x1a
iptables -t mangle -I PREROUTING -i <interface de entrada> -s <ips
origem> -m connmark --mark 0x1a -j MARK --set-mark 0x1

ip rule add fwmark 0x1 table <TABELA>

No ipv6 fiz um teste hipotético aqui e funcionou do mesmo jeito
ip6tables -t mangle -I PREROUTING -i eth0 -m state --state NEW -j
CONNMARK --set-mark 0xba
ip6tables -t mangle -I PREROUTING -i eth0 -m connmark --mark 0xba -j
MARK --set-mark 0xb
ip -6 rule add fwmark 0xb table <tabela>

Deu certinho.


Em 18 de agosto de 2014 09:36, Adriano Macedo <adriano at mcinfor.com.br> escreveu:
> Rubens,
>
> Sobre o IPV4:
> Realmente tenho problemas com assimetria de tráfego, estou estudando a forma
> de implementar o modelo sugerido.
>
> Sobre o IPV6:
> A maior dificuldade não é o firewall e sim as configurações de IP Rule e IP
> Route.
>
>
> ip rule add fwmark 2 table 200
>
> ip route add default via 10.0.0.1 table 200
>
>
>
>
>
> On 17-08-2014 09:49, Rubens Kuhl wrote:
>
>
>> On Sun, Aug 17, 2014 at 9:22 AM, Adriano Macedo <adriano at mcinfor.com.br>
>> wrote:
>>
>>> Olá caros amigos, alguém poderia me dizer se é possível fazer um
>>> redereicionamento de tráfego(http cache) a partir de endereçamento IPv6
>>> em
>>> Linux. Uso as seguinte regras para IPv4:
>>>
>>>
>>> iptables -t mangle -A PREROUTING -i eth1 -s 200.0.0.0/20 -p tcp --sport
>>> 1024:65535 --dport 80 -j MARK --set-mark 2
>>>
>>> iptables -t mangle -A PREROUTING -i eth2 -d 200.0.0.0/20 -p tcp --sport
>>> 80 --dport 1024:65535 -j MARK --set-mark 2
>>>
>>> ip rule add fwmark 2 table 200
>>>
>>> ip route add default via 10.0.0.1 table 200
>>>
>> Dois comentários sobre seu conjunto de regras v4:
>> 1) Me parece que ele está assumindo que qualquer coisa de porta alta para
>> porta 80 no retorno é retorno do cache, e isso pode ou não ser verdade.
>> 2) Você não cita se o cache está em outra interface (ex: eth3), mas deve
>> estar para isso tudo funcionar sem o tráfego do cache ser redirecionado de
>> volta para o cache
>>
>> Na questão de tráfego de retorno, a marcação do conntrack tende a ser mais
>> segura para saber que algo é retorno do cache:
>>
>> iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
>> iptables -t mangle -A PREROUTING -i eth1 -s 200.0.0.0/20 -p tcp -dport 80
>> -j MARK --set mark 2
>> iptables -t mangle -A POSTROUTING -j CONNMARK --save-mark
>>
>> Não cheguei a usar isso em v6, mas não vejo porque não funcionaria, desde
>> que seja num kernel não muito arcaico e você tenha o ip6tables instalado.
>> Notar que no caso do CONNMARK você vai precisar duplicar os comandos entre
>> o iptables e o ip6tables, mesmo que não haja um match v6 na regra, pois
>> são
>> processamentos distintos.
>>
>> Rubens
>> --
>> gter list    https://eng.registro.br/mailman/listinfo/gter
>
>
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter



More information about the gter mailing list