Eu tenho procurado uma resposta para isso e criei algumas regras de IPtable, mas não encontrei exatamente o que estou procurando.
Eu hospedo um serviço ao qual os clientes se conectam, mas devido a uma complicação de um cliente, eu preciso que eles se conectem duas vezes ao mesmo endereço IP público que causa um problema do nosso lado. Então eu preciso que eles venham de um endereço IP público diferente. Normalmente, parece que isso (detalhes foram alterados);
O cliente em 50.10.10.1 conecta-se ao nosso servidor 60.60.10.1 via TCP 1234
Para permitir que o cliente se conecte duas vezes, achei que posso ativar uma instância do EC2 à qual eles se conectam e isso substituirá o endereço IP de origem pelo da instância; então parece que eles estão vindo de algum outro lugar. Ficaria assim:
Um cliente em 50.10.10.1 se conecta à nossa instância em 30.20.10.1 via TCP 1234. A instância então substitui o endereço IP de origem para 30.20.10.1 e encaminha os pacotes para 60.60.10.1 TCP 1234
Eu posso encontrar maneiras de fazer isso com um servidor proxy interno, como o squid ou apenas uma regra de firewall, mas não consigo descobrir como fazer isso com uma instância do EC2 na Internet com o IPTables. Alguém tem alguma recomendação? Eu encontrei uma recomendação dessa regra, mas não está funcionando;
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 30.20.10.1 --dport 1234 -s 50.10.10.1 -j DNAT --to-destination 60.60.10.1:1234