Source nating em túnel GRE

1

Em uma caixa Linux, criei um túnel GRE chamado gre1 172.17.1 - > 172.17.2. O IP da caixa do Linux é 10.10.100.100, o IP do ponto final é 10.10.101.101.

Estou tentando fazer um source NAT (NAT de destino) para tunelar o tráfego que vai da caixa do Linux para ir até o túnel, pois a porta de destino é 80. Eu testei as coisas estas linhas sem sucesso:

iptables -t nat -A OUTPUT -p tcp --dport 80 -j SNAT --to 172.17.1.1
iptables -t nat -A FORWARD -p tcp --dport 80 -j SNAT --to 172.17.1.1

A maioria dos exemplos que encontrei para o túnel GRE é para DNAT, não para SNAT. Qualquer exemplo que funcione para o meu caso?

    
por Julien 12.08.2009 / 02:26

1 resposta

2

Se eu leio sua pergunta corretamente, você deseja que o tráfego da porta 80 desça pelo seu túnel. Isso não é feito com o SNAT, mas com o roteamento de políticas.

Primeiro, precisamos configurar uma nova tabela de roteamento:

# echo "2  tunnel" >> /etc/iproute2/rt_tables

Em seguida, precisamos configurar a tabela de roteamento para enviar todo o tráfego pelo túnel:

# ip route add default via 172.16.1.2 dev gre1 table tunnel

Agora, precisamos fazer com que algum tráfego use essa tabela de roteamento em vez da tabela de roteamento padrão. Isso é feito marcando os pacotes e adicionando uma regra para usar a tabela especificada para os pacotes marcados:

# iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --mark 200
# ip rule add fwmark 200 table tunnel

Substitua OUTPUT por FORWARD se quiser que o tráfego sendo encaminhado seja enviado pelo túnel. Isso só funciona para tráfego gerado localmente com OUTPUT.

Você pode encontrar mais informações no guia de controle avançado de tráfego e roteamento do Linux (LARTC) .

    
por 12.08.2009 / 07:01