Aplicativo requer endereço IP, precisa ir ao domínio

15

Usamos um aplicativo (mal projetado) que requer o endereço IP de nosso escritório corporativo, que possui um endereço IP público estático. No entanto, quando nossa Internet de failover entra em ação, obviamente ela tem um endereço IP público estático diferente e as conexões remotas falham.

Se o aplicativo aceitar um nome de domínio, eu o usaria com DNS dinâmico, mas ele não aceita um nome de domínio.

Existe alguma maneira de inserir um endereço IP, mas acessar nosso nome de domínio? Eu tinha dois pensamentos que ainda não tentei.

  1. Configure um endereço IP local que redirecione para o nosso nome de domínio (por exemplo, 10.0.1.99 vai para local.ourdomain.com). No entanto, não tenho muita certeza de como faria isso. Configure um Raspberry Pi com um servidor web, talvez.

  2. Compre hospedagem na web com um endereço IP dedicado e faça com que ele seja redirecionado para o nosso domínio, que poderá ser atualizado conforme necessário.

Alguma idéia de como conseguir isso?

MrPeanut
fonte
1
Que tipo de aplicação? Você quer dizer algo hospedado internamente? Como algum tipo de Ruby ou Java ou mesmo framework JavaScript?
precisa saber é o seguinte
1
Proxy reverso. Cole-o em um endereço fixo e envie-o para o endereço apropriado.
Ignacio Vazquez-Abrams
Apenas um programa do Windows que um fornecedor nos forneceu que envia e recupera dados de nosso escritório corporativo.
MrPeanut
2
Você precisará hospedar um proxy reverso em algum lugar com um endereço IP que nunca seja alterado. Isso vai custar dinheiro. Você já pensou em mudar o serviço para a nuvem onde a redundância é construída de qualquer maneira? O custo é provavelmente semelhante. A outra sugestão de usar uma VPN faz muito sentido. Não vejo como um proxy reverso é uma boa solução para isso.
precisa saber é o seguinte
1
@Appleoddity O proxy reverso é simplesmente a implementação do ponto 1 do OP. Você não tem a framboesa no escritório corporativo, mas na rede local em que o aplicativo está sendo executado. Como isso é possível no cenário fornecido, de acordo com o OP, é provavelmente a solução mais simples e barata.
Voo

Respostas:

37

Um proxy reverso é uma boa ideia, mas pode ser limitado pelo protocolo.

Eu resolveria esse problema configurando uma VPN (que fornece segurança - se o aplicativo está tão mal escrito, ele não faz uma pesquisa de DNS, provavelmente também não está usando criptografia decente). Usar uma VPN significa que todos os seus endereços podem ser rfc1918 (por exemplo, privados), e o aplicativo nem se importa quando os endereços externos são alterados.

davidgo
fonte
0

Uma VPN é meio cara quando você pode obter um Raspberry Pi ou Pi Zero e executar o Debian nele, e configurar iptables nele para mascarar da maneira que desejar

Os detalhes dependeriam de como sua rede local foi configurada, mas a idéia geral seria fornecer ao Pi dois endereços locais fixos.

Um endereço seria reservado para administrar o Raspberry Pi. É assim que você entra e altera as coisas, se necessário.

O outro atuaria como proxy para o primário remoto (ou backup).

Os pacotes enviados para esse endereço podem ser encaminhados usando-se iptablesum disfarce para o primário ou o fallback, dependendo das condições. O NAT alteraria os endereços de origem e destino do pacote, conforme necessário, antes da retransmissão.

Os pacotes retornados recebem o NAT de volta para o solicitante.

Isso deve funcionar bem, desde que não haja endereços IP incorporados mais profundamente nos pacotes ou casos como o FTP clássico que estabelece conexões paralelas.

Pontos de bônus se você puder fazer com que o Pi observe que o site principal desapareceu e alterne automaticamente para o backup

infixado
fonte
Eu corro um vpn de graça, eu não vejo por que ele não podia. Ele não está escondendo o tráfego do ISP. OpenVPN
FreeSoftwareServers
-4

Use o Route53 (amazon) ou qualquer outro DNS que tenha um roteamento de fallback. Se você usa verificações de saúde, pode atribuir um IP de entrada DNS secundairy quando a verificação de saúde falhar no IP primário.

Ramon Fincken
fonte
7
Como isso ajuda se o aplicativo não resolver um registro DNS?
precisa saber é o seguinte
você verificará o IP primário da Internet, para NÃO o IP do dispositivo. o IP primário da Internet precisa ser resolvido. quando não, isso significa que você precisa de um failover.
Ramon Fincken
@ Ramon Considerando que o aplicativo nunca usa o registro DNS, como exatamente a adaptação do registro DNS ajudaria?
Voo
4 IPs: Um IP primário da Internet, B IP da Internet substituta, C IP do dispositivo, D IP IP do dispositivo, você verificará o IP A e retornará o IP C do dispositivo. se A cair, retorne o ip D
Ramon Fincken
1
@Ramon A aplicação codificou em alguma configuração "connect to IP ABCD", o problema exato é que ela não está perguntando qual IP deve usar. Ou é a ideia de que eles devem executar o aplicativo várias vezes para cada IP do servidor e depois alternar entre aplicativos? Isso poderia funcionar, assumindo que não há problemas de licenciamento e que é possível configurar os aplicativos para compartilhar o estado armazenado e que não há problema em executar vários aplicativos com o mesmo armazenamento ao mesmo tempo (isso parece muito improvável para a grande maioria dos aplicativos).
Voo