[GTER] PBR IPTABLES IPV6

Rubens Kuhl rubensk at gmail.com
Sun Aug 17 09:49:04 -03 2014


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



More information about the gter mailing list