Em iptables, qual é a diferença entre os destinos DNAT e REDIRECT?

3

Mais especificamente, é

-A PREROUTING -i $INT -p $PROTO --dport $PORT -j REDIRECT --to-ports $NEWPORT

equivalente a um ou ambos?

-A PREROUTING -i $INT -p $PROTO --dport $PORT -j DNAT --to-destination :$NEWPORT
-A PREROUTING -i $INT -p $PROTO --dport $PORT -j DNAT --to-destination $IP_OF_INT:$NEWPORT
    
por Clare 14.07.2014 / 17:45

1 resposta

4

De acordo com a documentação do netfilter, o redirecionamento é um caso especializado de NAT de destino. REDIRECT é equivalente a fazer DNAT na interface de entrada.

Linux 2.4 NAT HOWTO - NAT de destino

Por isso, a primeira e a segunda sequência são equivalentes.

-A PREROUTING -i $INT -p $PROTO --dport $PORT -j REDIRECT --to-ports $NEWPORT
-A PREROUTING -i $INT -p $PROTO --dport $PORT -j DNAT --to-destination :$NEWPORT

A string:

-A PREROUTING -i $INT -p $PROTO --dport $PORT -j DNAT --to-destination $IP_OF_INT:$NEWPORT

faz o mesmo trabalho somente se $IP_OF_INT - for o endereço IP na interface de entrada (IP de $INT ).

    
por 14.07.2014 / 19:03