Como escrevo a regra que tem um servidor de borda encaminhando uma solicitação de clientes para um servidor de rede interno e voltando?

1

Eu tenho uma situação de rede da seguinte forma:

-server1:1.1.1.1   
-server2:2.2.2.2    
-tunnel 10.8.0.0/24
-client: 3.3.3.3

Estou tentando fazer com que o cliente IP 3.3.3.3 faça uma solicitação HTTP do 1.1.1.1 server . No entanto, quero que o 1.1.1.1 server passe esse pedido para o verdadeiro HTTPD server 2.2.2.2 . O servidor 2.2.2.2 reside na outra extremidade do meu túnel e tem IP de 10.8.0.6 . Desejo que o tráfego seja encaminhado de client > server1 > tunnel > server2 e, em seguida, volte a server2 < tunnel < server 1 < client .

Eu testei várias regras para iptables , mas parece que não consigo funcionar corretamente.

Em server1 , originalmente eu tinha:

iptables -A INPUT -s 3.3.3.3/32 -j ACCEPT

e, em seguida, insira as seguintes regras nat :

iptables -t nat -A PREROUTING -i tun0 -d 3.3.3.3 -j DNAT --to-destination 10.8.0.6
iptables -t nat -A POSTROUTING -s 10.8.0.6 -j SNAT --to-source 3.3.3.3

O resultado foi que 3.3.3.3 continuou atingindo 1.1.1.1 e 1.1.1.1 ainda respondiam e não repassavam a solicitação para 2.2.2.2 pelo túnel.

Eu tentei remover a regra iptables -A INPUT -s 3.3.3.3/32 -j ACCEPT , achando que talvez a regra estivesse sendo lida primeiro na lista de tabelas, deixando assim 1.1.1.1 reply desde que a regra veio antes das regras nat , mas esse não foi o caso. Eu removi a regra e todo o tráfego de 3.3.3.3 para 1.1.1.1 parou, o que eu temia que acontecesse e aconteceu.

Como escrevo uma regra que permite que 3.3.3.3 fale com 2.2.2.2 , mas mantenha o roteamento de tráfego de volta por 1.1.1.1 ?

Obrigado

    
por RCG 20.09.2014 / 02:01

0 respostas