Casos de uso do gateway NAT - Amazon Virtual Private Cloud

Casos de uso do gateway NAT

Os exemplos a seguir são casos de uso de gateways NAT públicos e privados.

Acessar a Internet a partir de uma sub-rede privada

Você pode usar um gateway NAT público para permitir que instâncias em uma sub-rede privada enviem tráfego para a Internet, enquanto impede que a Internet estabeleça conexões com essas instâncias.

Visão geral

O diagrama a seguir ilustra esse caso de uso. Existem duas zonas de disponibilidade, com duas sub-redes em cada uma. A tabela de rotas para cada sub-rede determina como o tráfego é encaminhado. Na zona de disponibilidade A, as instâncias na sub-rede pública podem acessar a Internet por meio de uma rota para o gateway da Internet, enquanto as instâncias na sub-rede privada não têm rota para a Internet. Na zona de disponibilidade B, a sub-rede pública contém um gateway NAT e as instâncias na sub-rede privada podem acessar a Internet por meio de uma rota para o gateway NAT na sub-rede pública. Os gateways NAT privados e públicos mapeiam o endereço IPv4 privado de origem das instâncias para o endereço IPv4 privado do gateway NAT privado, mas no caso de um gateway NAT público, o gateway da Internet mapeia o endereço IPv4 privado do gateway NAT público para o endereço IP elástico associado ao gateway NAT. Ao enviar tráfego de resposta para as instâncias, seja um gateway NAT público ou privado, o gateway NAT converte o endereço de volta para o endereço IP de origem inicial.

VPC com sub-redes públicas e privadas, um gateway NAT e um gateway da Internet.

Observe que, se as instâncias na sub-rede privada na zona de disponibilidade A também precisarem acessar a Internet, você poderá criar uma rota dessa sub-rede para o gateway NAT na zona de disponibilidade B. Como alternativa, é possível melhorar a resiliência criando um gateway NAT em cada zona de disponibilidade que contenha recursos que exigem acesso à Internet. Para ver um exemplo de diagrama, consulte Exemplo: VPC com servidores em sub-redes privadas e NAT.

Roteamento

A tabela de rotas a seguir está associada à sub-rede pública na zona de disponibilidade A. A primeira entrada é a rota local. Ela permite que as instâncias na sub-rede se comuniquem com outras instâncias na VPC usando endereços IP privados. A segunda entrada envia todo o outro tráfego da sub-rede para o gateway da Internet; o que permite que as instâncias na sub-rede acessem a Internet.

Destination (Destino) Destino
CIDR DA VPC local
0.0.0.0/0 internet-gateway-id

A tabela de rotas a seguir está associada à sub-rede privada na zona de disponibilidade A. A entrada é a rota local, que permite que as instâncias na sub-rede se comuniquem com outras instâncias na VPC usando endereços IP privados. As instâncias nessa sub-rede não têm acesso à Internet.

Destination (Destino) Destino
CIDR DA VPC local

A tabela de rotas a seguir está associada à sub-rede pública na zona de disponibilidade B. A primeira entrada é a rota local. Ela permite que as instâncias na sub-rede se comuniquem com outras instâncias na VPC usando endereços IP privados. A segunda entrada envia todo o outro tráfego da sub-rede para o gateway da Internet; o que permite que o gateway NAT na sub-rede acesse a Internet.

Destination (Destino) Destino
CIDR DA VPC local
0.0.0.0/0 internet-gateway-id

A tabela de rotas a seguir está associada à sub-rede privada na zona de disponibilidade B. A primeira entrada é a rota local. Ela permite que as instâncias na sub-rede se comuniquem com outras instâncias na VPC usando endereços IP privados. A segunda entrada envia todos os outros tráfegos da sub-rede ao gateway NAT.

Destination (Destino) Destino
CIDR DA VPC local
0.0.0.0/0 nat-gateway-id

Para ter mais informações, consulte Alterar a tabela de rotas de uma sub-rede.

Testar o gateway NAT público

Após criar o gateway NAT e atualizar as tabelas de rotas, você poderá executar ping endereços remotos na internet de uma instância na sua sub-rede privada para testar se ela pode se conectar à Internet. Para obter um exemplo de como fazer isso, consulte Testar a conexão com a internet.

Se conseguir conectar à Internet, você também poderá testar se o tráfego da Internet é roteado via gateway NAT:

  • rastreie a rota do tráfego de uma instância em sua sub-rede privada. Para isso, execute o comando traceroute em uma instância Linux em sua sub-rede privada. Na saída, você deve ver o endereço IP privado do gateway NAT em um dos saltos (em geral, o primeiro salto).

  • Use um site ou uma ferramenta de terceiros que exiba o endereço IP de origem quando você se conecta a ele de uma instância de sua sub-rede privada. O endereço IP de origem deve ser o endereço IP elástico do seu gateway NAT.

Se esses testes falharem, consulte Solucionar problemas de gateways NAT.

Testar a conexão com a internet

O exemplo a seguir demonstra como testar se uma instância em uma sub-rede privada pode se conectar com a Internet.

  1. Execute uma instância em sua sub-rede pública (use-a como bastion host). No Launch Wizard, é necessário selecionar uma AMI do Amazon Linux e atribuir um endereço IP público à instância. Verifique se as regras do grupo de segurança permitem tráfego SSH de entrada do intervalo de endereços IP de sua rede local e tráfego SSH de saída para o intervalo de endereços IP da sub-rede privada (você também pode usar 0.0.0.0/0 para tráfego SSH de entrada e de saída para este teste).

  2. Execute uma instância em sua sub-rede privada. No Launch Wizard, selecione uma Amazon Linux AMI. Não atribua um endereço IP público à sua instância. Confirme se as regras de seu grupo de segurança permitem tráfego SSH de entrada do intervalo de endereços IP privados da instância que você executou na sub-rede pública e todos os tráfegos ICMP de saída. Você deve escolher o mesmo par de chaves que usou para executar sua instância na sub-rede pública.

  3. Configure o encaminhamento de agente SSH no computador local e conecte-se ao bastion host na sub-rede pública. Para obter mais informações, consulte Para configurar o encaminhamento de agente SSH para Linux ou macOS ou Configurar o encaminhamento de agente SSH para Windows.

  4. No bastion host, conecte-se à instância na sub-rede privada e teste a conexão com a internet na instância na sub-rede privada. Para obter mais informações, consulte Para testar a conexão com a internet.

Para configurar o encaminhamento de agente SSH para Linux ou macOS
  1. Em seu computador local, adicione sua chave privada para o agente de autenticação.

    No Linux, use o comando a seguir:

    ssh-add -c mykeypair.pem

    No macOS, use o comando a seguir:

    ssh-add -K mykeypair.pem
  2. Conecte-se à sua instância na sub-rede pública usando a opção -A para permitir o encaminhamento de agente SSH e use o endereço público da instância, conforme mostrado no exemplo a seguir.

    ssh -A ec2-user@54.0.0.123
Configurar o encaminhamento de agente SSH para Windows

Você pode usar o cliente OpenSSH disponível no Windows ou instalar seu cliente SSH preferencial (por exemplo, PuTTY).

OpenSSH

Instale o OpenSSH para Windows conforme descrito neste artigo: Getting started with OpenSSH for Windows. Em seguida, adicione sua chave ao agente de autenticação. Para obter mais informações, consulte Key-based authentication in OpenSSH for Windows.

PuTTY
  1. Faça download e instale o Pageant na página de download PuTTY, se ele ainda não estiver instalado.

  2. Converta sua chave privada no formato .ppk. Para obter mais informações, consulte Converter a chave privada usando o PuTTYgen no Guia do usuário do Amazon EC2.

  3. Inicie o Pageant, clique com o botão direito no ícone do Pageant na barra de tarefas (ele pode estar oculto) e escolha Add Key. Selecione o arquivo .ppk que você criou, digite a senha se necessário e escolha Open (Abrir).

  4. Inicie a sessão PuTTY session e conecte-se à sua instância na sub-rede pública usando o respectivo endereço IP. Para obter mais informações, consulte Conectar-se à instância do Linux. Na categoria Auth, selecione a opção Allow agent forwarding e deixe a caixa Private key file for authentication em branco.

Para testar a conexão com a internet
  1. Em sua instância na sub-rede pública, conecte-se à sua instância na sub-rede privada usando o endereço IP privado, conforme mostrado no exemplo a seguir.

    ssh ec2-user@10.0.1.123
  2. Na instância privada, teste se é possível conectar-se à Internet executando o comando ping para um site que tenha o ICMP habilitado.

    ping ietf.org
    PING ietf.org (4.31.198.44) 56(84) bytes of data. 64 bytes from mail.ietf.org (4.31.198.44): icmp_seq=1 ttl=47 time=86.0 ms 64 bytes from mail.ietf.org (4.31.198.44): icmp_seq=2 ttl=47 time=75.6 ms ...

    Pressione Ctrl+C no teclado para cancelar o comando ping. Se o comando ping falhar, consulte As instâncias não conseguem acessar a Internet.

  3. (Opcional) Se você não precisar mais das instâncias, termine-as. Para obter mais informações, consulte Terminar sua instância no Guia do usuário do Amazon EC2.

Acessar sua rede de endereços IP permitidos

Você pode usar um gateway NAT privado para permitir a comunicação de suas VPCs para sua rede on-premises usando um grupo de endereços permitidos. Em vez de atribuir a cada instância um endereço IP separado do intervalo de endereços IP permitidos, você pode rotear o tráfego da sub-rede destinado à rede on-premises por meio de um gateway NAT privado, com um endereço IP do intervalo de endereços IP permitidos.

Visão geral

O diagrama a seguir mostra como as instâncias podem acessar os recursos on-premises por meio da AWS VPN. O tráfego das instâncias é roteado para um gateway privado virtual, pela conexão VPN, para o gateway do cliente e, em seguida, para o destino na rede on-premises. No entanto, suponha que o destino permita tráfego somente de um intervalo de endereços IP específico, como 100.64.1.0/28. Isso impediria que o tráfego dessas instâncias chegasse à rede on-premises.

Acessar uma rede on-premises usando uma conexão da AWS VPN.

O diagrama a seguir mostra os principais componentes da configuração deste cenário. A VPC tem seu intervalo de endereços IP original e o intervalo de endereços IP permitidos. A VPC tem uma sub-rede do intervalo de endereços IP permitidos com um gateway NAT privado. O tráfego das instâncias destinadas à rede on-premises é enviado para o gateway NAT antes de ser roteado para a conexão VPN. A rede on-premises recebe o tráfego das instâncias com o endereço IP de origem do gateway NAT, que está no intervalo de endereços IP permitidos.

Tráfego de sub-rede de VPC roteado por meio de gateway NAT privado

Recursos

Crie ou atualize recursos da seguinte maneira:

  • Associe o intervalo de endereços IP permitidos à VPC.

  • Crie uma sub-rede na VPC do intervalo de endereços IP permitidos.

  • Crie um gateway NAT privado na nova sub-rede.

  • Atualize a tabela de rotas para a sub-rede com as instâncias, para enviar tráfego destinado à rede on-premises para o gateway NAT. Adicione uma rota à tabela de rotas para a sub-rede com o gateway NAT privado que envia o tráfego destinado à rede on-premises para o gateway privado virtual.

Roteamento

A tabela de rotas a seguir está associada à primeira sub-rede. Existe uma rota local para cada CIDR da VPC. As rotas locais permitem que os recursos na sub-rede se comuniquem com outros recursos na VPC usando endereços IP privados. A terceira entrada envia tráfego destinado à rede on-premises para o gateway NAT privado.

Destination (Destino) Destino
10.0.0.0/16 local
100.64.1.0/24 local
192.168.0.0/16 nat-gateway-id

A tabela de rotas a seguir está associada à segunda sub-rede. Existe uma rota local para cada CIDR da VPC. As rotas locais permitem que os recursos na sub-rede se comuniquem com outros recursos na VPC usando endereços IP privados. A terceira entrada envia o tráfego destinado à rede on-premises para o gateway privado virtual.

Destination (Destino) Destino
10.0.0.0/16 local
100.64.1.0/24 local
192.168.0.0/16 vgw-id

Habilitar a comunicação entre redes sobrepostas

Você pode usar um gateway NAT privado para habilitar a comunicação entre redes, mesmo se elas tiverem intervalos CIDR sobrepostos. Por exemplo, suponha que as instâncias na VPC A precisem acessar os serviços fornecidos pelas instâncias na VPC B.

Duas VPCs com intervalos CIDR sobrepostos.

Visão geral

O diagrama a seguir mostra os principais componentes da configuração deste cenário. Primeiro, sua equipe de gerenciamento de IP determina quais intervalos de endereços podem se sobrepor (intervalos de endereços não roteáveis) e quais não podem (intervalos de endereços roteáveis). A equipe de gerenciamento de IP aloca intervalos de endereços do grupo de intervalos de endereços roteáveis a projetos, mediante solicitação.

Cada VPC tem seu intervalo de endereços IP original, que não é roteável, além do intervalo de endereços IP roteáveis atribuído a ela pela equipe de gerenciamento de IP. A VPC A tem uma sub-rede de seu intervalo roteável com um gateway NAT privado. O gateway NAT privado obtém seu endereço IP de sua sub-rede. A VPC B tem uma sub-rede de seu intervalo roteável com um Application Load Balancer. O Application Load Balancer obtém seus endereços IP de suas sub-redes.

O tráfego de uma instância na sub-rede não roteável da VPC A destinada às instâncias na sub-rede não roteável da VPC B é enviado por meio do gateway NAT privado e, em seguida, roteado para o gateway de trânsito. O gateway de trânsito envia o tráfego ao Application Load Balancer, que o roteia a uma das instâncias de destino na sub-rede não roteável da VPC B. O tráfego do gateway de trânsito para o Application Load Balancer tem o endereço IP de origem do gateway NAT privado. Portanto, o tráfego de resposta do balanceador de carga usa o endereço do gateway NAT privado como destino. O tráfego de resposta é enviado para o gateway de trânsito e, em seguida, roteado para o gateway NAT privado, que traduz o destino para a instância na sub-rede não roteável da VPC A.

Uma VPC com gateway NAT e gateway de trânsito privados para comunicação entre VPCs com um CIDR sobreposto

Recursos

Crie ou atualize recursos da seguinte maneira:

  • Associe os intervalos de endereços IP roteáveis atribuídos às respectivas VPCs.

  • Crie uma sub-rede na VPC A de seu intervalo de endereços IP roteáveis e crie um gateway NAT privado nessa nova sub-rede.

  • Crie uma sub-rede na VPC B de seu intervalo de endereços IP roteáveis e crie um Application Load Balancer nessa nova sub-rede. Registre as instâncias na sub-rede não roteável com o grupo de destino para o balanceador de carga.

  • Crie um gateway de trânsito para conectar as VPCs. Certifique-se de desabilitar a propagação de rotas. Quando você anexar cada VPC ao gateway de trânsito, use o intervalo de endereços roteáveis da VPC.

  • Atualize a tabela de rotas da sub-rede não roteável na VPC A para enviar todo o tráfego destinado ao intervalo de endereços roteáveis da VPC B para o gateway NAT privado. Atualize a tabela de rotas da sub-rede roteável na VPC A para enviar todo o tráfego destinado ao intervalo de endereços roteáveis da VPC B para o gateway de trânsito.

  • Atualize a tabela de rotas da sub-rede roteável na VPC B para enviar todo o tráfego destinado ao intervalo de endereços roteáveis da VPC A para o gateway de trânsito.

Roteamento

A tabela a seguir é a tabela de rotas para a sub-rede não roteável na VPC A.

Destination (Destino) Destino
10.0.0.0/16 local
100.64.1.0/24 local
100.64.2.0/24 nat-gateway-id

A tabela a seguir é a tabela de rotas para a sub-rede roteável na VPC A.

Destination (Destino) Destino
10.0.0.0/16 local
100.64.1.0/24 local
100.64.2.0/24 transit-gateway-id

A tabela a seguir é a tabela de rotas para a sub-rede não roteável na VPC B.

Destination (Destino) Destino
10.0.0.0/16 local
100.64.2.0/24 local

A tabela a seguir é a tabela de rotas para a sub-rede roteável na VPC B.

Destination (Destino) Destino
10.0.0.0/16 local
100.64.2.0/24 local
100.64.1.0/24 transit-gateway-id

Veja a seguir a tabela de rotas de gateway de trânsito.

CIDR Attachment Tipo de rota
100.64.1.0/24 Anexo para a VPC A Estático
100.64.2.0/24 Anexo para a VPC B Estático