Como rotear o tráfego de saída para um IP para outro IP?

1

Atualmente, tenho um servidor prestes a entrar em colapso. Eu tenho um aplicativo implantado que infelizmente se conecta a ele por IP.

Como eu poderia proceder se quisesse executar um script nas máquinas clientes para que a solicitação de saída para o IP antigo fosse para a nova?

Estou procurando um caminho pela linha de comando para instruir a máquina local a enviar o tráfego de saída para ip_1 e enviá-lo para ip_2.

O aplicativo não pode ser modificado para que as alterações sejam externas ao aplicativo. (iptables?) Eu estou esperando para empurrar um script de inicialização nos clientes para executar o comando ip routing.

(Temos um nome de domínio para evitar esse tipo de problema, mas algumas de nossas implantações anteriores não o utilizam.)

    
por Ben 02.11.2018 / 16:42

1 resposta

1

A abordagem mais fácil provavelmente usará o NAT do iptables:

iptables -t nat -A OUTPUT -d old-ip -p tcp --dport some-port -j DNAT --to-destination new-ip

deve fazer isso. Você pode usar qualquer um dos seletores normais do iptables para corresponder ao tráfego correto; Eu escolhi endereço IP, protocolo (tcp) e porta. Você definitivamente quer limitar o máximo possível; e se os novos proprietários desse endereço IP o colocassem para usar como algum outro serviço do qual você depende do cliente?

Além disso, você precisa construir algum tipo de túnel (basicamente qualquer tipo serve), depois de ter construído uma rede privada, você pode reivindicar qualquer endereço IP que quiser (nessa rede privada), independentemente do que a Internet pensa. Em particular, você poderia rotear seu endereço IP antigo pelo túnel. Eu só usaria essa abordagem se fosse um protocolo estranho (não-TCP / UDP) que você não pode facilmente NAT.

    
por 02.11.2018 / 17:47