Eu descobri:
iptables -t nat -A PREROUTING -d 3.3.3.3 -j DNAT --to-destination 2.2.2.2
iptables -t nat -A POSTROUTING -s 2.2.2.2 -j SNAT --to-source 3.3.3.3
Eu tenho uma configuração de teste:
Estou tentando fazer com que o IP 3.3.3.3 do cliente faça uma solicitação HTTP do servidor 1.1.1.1. No entanto, eu quero que o servidor 1.1.1.1 passe este pedido para o servidor HTTPD real 2.2.2.2.
Gostaria que o 2.2.2.2 falasse diretamente com o cliente 3.3.3.3 com a resposta HTTP.
Acho, no entanto, que eu preciso do 1.1.1.1 para aceitar o pedido HTTP e então ele deve encaminhar o pedido para o 2.2.2.2 e ter o 2.2.2.2 respondido e então voltar para o 3.3.3.3 com a resolução para isto funcionar? Caso contrário, o cliente 3.3.3.3 obterá uma resposta do 2.2.2.2 e não saberá porque o 2.2.2.2 está respondendo em vez de 1.1.1.1 e ignorando-o?
De qualquer forma, é isso que eu tentei por meio de iptables
em 1.1.1.1:
iptables -t nat -A POSTROUTING -o venet0:0 -j SNAT --to-source 2.2.2.2
iptables -t nat -A PREROUTING -i venet0:0 -j DNAT --to-destination 2.2.2.2
iptables -t nat -A PREROUTING -d 3.3.3.3 -j DNAT --to-destination 2.2.2.2
iptables -t nat -A POSTROUTING -s 2.2.2.2 -j SNAT --to-source 3.3.3.3
Isso pareceu não mudar.
Tags networking iptables routing