Conexão AWS VPC e VPN para várias nuvens ou datacenters com datacenters com intervalos de endereços IP sobrepostos

Conexão AWS VPC e VPN para várias nuvens ou datacenters com datacenters com intervalos de endereços IP sobrepostos

Declaração do problema

Tenho um requisito para um plano de continuidade de negócios usando AWS Cloud VPC com os seguintes requisitos -

  1. Na sub-rede privada AWS VPC do nosso desenvolvedor, teremos espaços de trabalho (ou seja, desktop como serviço seguro da AWS) para cada desenvolvedor
  2. A partir desses espaços de trabalho, cada desenvolvedor pode se conectar a diferentes nuvens remotas usando VPN, ou seja, nuvens públicas GCP/AWS/Azure ou até mesmo datacenters locais. Esses diferentes datacenters remotos ou nuvem pública podem ter intervalos de endereços IP sobrepostos e não temos controle sobre o gerenciamento desses intervalos de IP.
  3. O desenvolvedor pode facilmente alternar e conectar-se entre diferentes nuvens do espaço de trabalho usando VPN

Os serviços/recursos nativos da AWS não ajudam diretamente

VPN Site2Site- Para atender a esses requisitos, a rede de trânsito VPN site a site da AWS está fora do escopo porque não permite intervalos de IP sobrepostos.
Seguindo uma maneira indireta de resolver intervalos de endereços IP sobrepostos, há um plano VPN site a site redundante nas documentações da AWS, mas é para cenário de failover e preciso que todas as nuvens remotas possam estar conectadas a qualquer momento, ou seja, estejam sempre ativas.

Portal de trânsito- O AWS Transit Gateway não ajuda porque, idealmente, não permite a sobreposição de intervalos de IP em redes multicloud.
Existe uma maneira de fazer segmentação de rota, ou seja, separação do caminho de roteamento para combinação separada de nuvens interconectadas, usando múltiplas tabelas de rotas no Transit Gateway, mas esta abordagem requer tal segmentação usando anexo do Transit Gateway, e o AWS VPC não pode ter mais de um anexo .
Além disso, mesmo se fizermos algo assim, podemos usar VPN de software em instâncias EC2 (não tenho certeza se possível), não tenho certeza se podemos conectar facilmente a partir de cada espaço de trabalho e mudar para todas as nuvens diferentes porque a tabela de rotas de sub-rede AWS VPC do desenvolvedor não pode haver intervalos de IP sobrepostos no destino.


Minha abordagem para uma solução

Meu plano de rede
Na mesma sub-rede, eu estava pensando em usar a abordagem VPN IPSec baseada em software, ou seja, em uma instância no EC2 terá serviço VPN como Strongswan e regras Iptable para SNAT. Essa abordagem é inspirada na resposta do AWS Support emConfigurar NAT para tráfego VPN.
Para cada nuvem/datacenter, haverá uma configuração de instância EC2 com VPN IPSec de software e regras IPtable.
Também no lado remoto, haverá um gateway para a VPN, assim como o emparelhamento AWS VGW e Customer Gateway.
Para que o tráfego vá do espaço de trabalho para a nuvem remota correta usando VPN, tenho que fazer uma entrada na tabela de rotas da sub-rede com Destino como intervalo de endereços IP da nuvem remota e Destino como o ID eni da instância VPN EC2.
Problema com esta abordagemé, novamente, que para nuvens remotas com endereços IP sobrepostos, não posso ter entrada na tabela de rotas de sub-rede AWS VPC do desenvolvedor.

Para resolver este problema, eu estava pensando em fazer algo como manipulação de intervalo de IP em que terei intervalos de IP completamente inventados ou irreais para cada nuvem remota sobreposta, ou seja, para uma nuvem com intervalo de IP real como 192.168.xy/16, o irreal será 10.10. pág/16.
Depois disso, terei um servidor VPN EC2 separado para cada uma dessas nuvens remotas. Então, para a rota para qualquer nuvem remota, a entrada na tabela de rotas será 10.10.pq/16 como destino e eni id do servidor VPN EC2 como destino.
No servidor VPN EC2, teremos configuração de regras Iptable, que fará algo como PREROUTING DNAT e POSTROUTING SNAT para encaminhamento somente IP, conforme mostrado nesteperguntas e respostas sobre stackoverflow.
O desenvolvedor em espaços de trabalho terá que saber o mapeamento entre IPs irreais e reais e enviar tráfego usando IP irreal. As regras Iptables do servidor VPN EC2 deverão ser atualizadas usando scripts personalizados para que este mapeamento seja mantido atualizado com o mapeamento mais recente.

Não tenho certeza da correção ou eficácia da minha abordagem acima.

Outro problema por implicação da minha abordagem acima
Também cria dúvidas de que mesmo que eu me conecte a instâncias com IPs específicos na nuvem remota, mas que tal acessar outros serviços de nuvem, como funções sem servidor ou APIs ou serviços gerenciados/abstratos, como DBs/LBs.
Embora isso possa ser feito enviando tráfego usando IGW no VPC do desenvolvedor ou conectando-se a um host bastião na nuvem remota.


Outra abordagem, que pesquisei na internetestá configurando uma rede de sobreposição multicloud personalizada que parece assustadora ou complicada.
Também não tenho certeza se VPNs de código aberto como OpenVPN ou pfsense como software de firewall/rede podem ajudar com alguns de seus recursos nativos para resolver meu problema original.

Adquiri todo o meu conhecimento de rede ou VPN enquanto trabalhava apenas na nuvem AWS e não sou muito versado em redes em geral na ciência da computação.

Por favor, ajude com esses problemas.

informação relacionada