NAT GRE (protocolo IP 47) sobre o roteador Linux

3

Eu tenho um host que tem um túnel estático permanente para um servidor na Internet. No momento, o host tem seu próprio endereço IP real. Eu quero colocar o host atrás de uma caixa Linux (Smoothwall), e atribuir um endereço IP privado.

Vamos chamar:
tunnel-server-ip = o IP do fim do túnel ao qual o host está se conectando (na internet)
real-ip = o IP real atualmente usado pelo host, que eu quero atribuir ao roteador Linux
false-ip = o IP que o host obterá após ser colocado atrás do firewall do Linux

Isso é o que acho que tenho que fazer para o túnel funcionar:

  1. DNAT todos os pacotes IP de IP recebidos na interface externa provenientes do final do túnel da Internet e enviá-los para o host. Isso é mudar o destino de real-ip para false-ip e enviar o pacote para false-ip
  2. SNAT todos os pacotes IP IP recebidos que chegam na interface interna que vem do host para serem exibidos, são gerados pela caixa do Linux e enviados para o servidor de encapsulamento. Isso é mudar o campo fonte de false-ip para real-ip e enviar o pacote para tunnel-server-ip

Eu criei o seguinte script:

tunnel_server_ip=217.x.x.x
false_ip=192.168.2.2
real_ip=82.x.x.x
/sbin/iptables -A PREROUTING -p 47 --src $tunnel_server_ip -j DNAT --to-destination $false_ip 
/sbin/iptables -A POSTROUTING -p 47 --src $false_ip -j SNAT --to-source $real_ip    
/sbin/iptables -A INPUT -p 47 -j ACCEPT

Correndo isso resulta em Sem cadeia / alvo / correspondência com esse nome. Você poderia por favor me dizer o que eu fiz de errado? Estou no caminho certo?

    
por andi 08.07.2009 / 14:12

4 respostas

3

Você esqueceu a opção -t nat table nas instruções PREROUTING / POSTROUTING. Basta adicioná-lo na frente.

    
por 08.07.2009 / 14:19
2

Resposta tardia, mas me deparei com a mesma necessidade e os dois comandos seguintes fazem o truque:

# iptables -t nat -A PREROUTING -i eth0 -p gre -j DNAT --to-destination 192.168.0.1
# modprobe nf_conntrack_proto_gre

Não há necessidade de especificar IP real, basta PREROUTE o gre de tráfego para o servidor privado e deixar o rastreador de conexão gre fazer seu trabalho.

    
por 31.01.2016 / 13:33
0

Para a maioria dos túneis do GRE, você precisa ter um protocolo de controle no TCP 1723. Isso também deve ser encaminhado. Aqui está um Link que descreve a configuração do iptables para isso. Você está no caminho certo, perdendo apenas o protocolo de controle.

    
por 01.09.2009 / 21:35
0

Parece que você esqueceu de dizer "--table nat", então ele está indo para a tabela de filtros que não tem alvos SNAT / DNAT, nem tem cadeias de PREROUTING e POSTROUTING.

    
por 06.11.2009 / 02:32

Tags