Gateways NAT - Amazon Virtual Private Cloud

Gateways NAT

Um gateway NAT é um serviço de Network Address Translation (NAT – Conversão de endereços de rede). Você pode usar um gateway NAT para que as instâncias em uma sub-rede privada possam se conectar a serviços fora da VPC, mas os serviços externos não podem iniciar uma conexão com essas instâncias.

O gateway NAT substitui o endereço IPv4 de origem das instâncias pelo endereço IP privado do gateway NAT. Ao enviar tráfego de resposta para as instâncias, o dispositivo de NAT converte os endereços de volta para os endereços IPv4 de origem original.

Ao criar um gateway NAT, você deve especificar um dos seguintes tipos de conectividade:

  • Public: (Padrão) instâncias em sub-redes privadas podem se conectar à Internet por meio de um gateway NAT público, mas não podem receber conexões de entrada não solicitadas da Internet. Você cria um gateway NAT público em uma sub-rede pública e deve associar um endereço IP elástico ao gateway NAT na criação. Encaminhe tráfego do gateway NAT para o gateway da Internet da VPC. Como alternativa, você pode usar um gateway NAT público para se conectar a outras VPCs ou à rede on-premises. Nesse caso, você roteia o tráfego do gateway NAT por meio de um gateway de trânsito ou de um gateway privado virtual.

  • Private (Privado): instâncias em sub-redes privadas podem se conectar a outras VPCs ou à sua rede on-premises por meio de um gateway NAT privado. Você pode rotear o tráfego do gateway NAT por meio de um gateway de trânsito ou de um gateway privado virtual. Não é possível associar um endereço IP elástico a um gateway NAT privado. É possível associar um gateway da Internet a uma VPC com um gateway NAT privado, mas se você rotear o tráfego do gateway NAT privado para o gateway da Internet, o gateway da Internet descartará o tráfego.

Pricing

Ao provisionar um gateway NAT, você é cobrado por cada hora que o gateway NAT está disponível e cada Gigabyte de dados que ele processa. Para obter mais informações, consulte Definição de preço da Amazon VPC.

As estratégias a seguir podem ajudar você a reduzir as cobranças de transferência de dados para o gateway NAT:

  • Se seus recursos AWS enviam ou recebem um volume significativo de tráfego entre zonas de disponibilidade, certifique-se de que os recursos estejam na mesma zona de disponibilidade que o gateway NAT ou crie um gateway NAT na mesma Zona de disponibilidade que os recursos.

  • Se a maior parte do tráfego através do gateway NAT for para serviços AWS compatíveis com endpoints de interface ou endpoints de gateway, considere a criação de um endpoint de interface ou endpoint de gateway para esses serviços. Para obter mais informações sobre as possíveis economias de custo, consulte AWS PrivateLink Preço.

Noções básicas de gateway NAT

Todo gateway NAT é criado em uma Zona de disponibilidade específica e implementado com redundância nessa zona. Há uma cota de gateways NAT que podem ser criados em cada zona de disponibilidade. Para obter mais informações, consulte Cotas da Amazon VPC.

Se você tiver recursos em várias zonas de disponibilidade e eles compartilharem um gateway NAT, caso a zona de disponibilidade do gateway NAT fique inativa, os recursos em outras zonas de disponibilidade perderão o acesso à Internet. Para criar uma Zona de disponibilidade com arquitetura independente, crie um gateway NAT em cada Zona de disponibilidade e configure seu roteamento para garantir que os recursos usem o gateway NAT na mesma Zona de disponibilidade.

As seguintes características e regras se aplicam aos gateways NAT:

  • Um gateway NAT é compatível com os seguintes protocolos: TCP, UDP e ICMP.

  • Os gateways NAT não são compatíveis com tráfego IPv6, use um gateway da Internet somente de saída em vez disso. Para obter mais informações, consulte Gateways da Internet apenas de saída.

  • Um gateway NAT comporta 5 Gbps de largura de banda e escala automaticamente até 45 Gbps. Se você precisar de mais largura de banda, poderá dividir seus recursos em várias sub-redes e criar um gateway NAT em cada sub-rede.

  • Um gateway NAT comporta no máximo 55.000 conexões simultâneas para cada destino exclusivo. Esse limite também se aplica se você criar aproximadamente 900 por segundo com um único destino (aproximadamente 55.000 conexões por minuto). Se o endereço IP de destino, a porta de destino ou o protocolo (TCP/UDP/ICMP) mudar, você poderá criar 55,000 conexões suplementares. Para mais de 55.000 conexões, há uma chance maior de erros de conexão devido a erros de alocação de porta. Esses erros podem ser monitorados visualizando a métrica do CloudWatch ErrorPortAllocation do gateway NAT. Para obter mais informações, consulte Monitorar gateways NAT usando o Amazon CloudWatch.

  • Você pode associar exatamente um endereço IP elástico a um gateway NAT público. Não é possível dissociar um endereço IP elástico de um gateway NAT depois que ele é criado. Para usar outro endereço IP elástico no gateway NAT, crie um novo gateway NAT com o endereço necessário, atualize suas tabelas de rotas e, em seguida, exclua o gateway NAT existente, caso não precise mais dele.

  • Um gateway NAT privado recebe um endereço IP privado disponível da sub-rede na qual está configurado. Não é possível desanexar este endereço IP privado, assim como não é possível anexar endereços IP privados adicionais.

  • Não é possível associar um security group a um gateway NAT. Você pode associar grupos de segurança às suas instâncias para controlar o tráfego de entrada e saída.

  • Você também pode usar uma ACL da rede para controlar o tráfego que entra e sai da sub-rede para seu gateway NAT. Os gateways NAT usam as portas 1024 a 65535. Para obter mais informações, consulte Network ACLs.

  • Um gateway NAT recebe uma interface de rede que recebe automaticamente um endereço IP privado do intervalo de endereços IP da sub-rede. É possível visualizar a interface de rede do gateway NAT no console do Amazon EC2. Para obter mais informações, consulte Visualizar detalhes sobre uma interface de rede. Não é possível modificar os atributos da interface de rede.

  • Não é possível acessar o gateway NAT por uma conexão ClassicLink associada à sua VPC.

  • Não é possível rotear o tráfego para um gateway NAT por meio de uma conexão de emparelhamento de VPC, uma conexão Site-to-Site VPN ou pelo AWS Direct Connect. Um gateway NAT não pode ser usado por recursos que se encontram no outro lado dessas conexões.

Controlar o uso de gateways NAT

Por padrão, os usuários do IAM não têm permissão para trabalhar com gateways NAT. É possível criar uma política de usuário do IAM que conceda permissão aos usuários para criar, descrever e excluir gateways NAT. Para obter mais informações, consulte Identity and Access Management para o Amazon VPC.

Trabalhar com gateways NAT

Você pode usar o console da Amazon VPC para criar e gerenciar os gateways NAT. Além disso, é possível usar o assistente da Amazon VPC para criar uma VPC com uma sub-rede pública, uma sub-rede privada e um gateway NAT. Para obter mais informações, consulte VPC com sub-redes públicas e privadas (NAT).

Criar um gateway NAT

Para criar um gateway NAT, insira um nome opcional, uma sub-rede e um tipo de conectividade opcional. Com um gateway NAT público, é necessário especificar um endereço IP elástico disponível. Um gateway NAT privado recebe um endereço IP privado primário selecionado aleatoriamente da sub-rede. Não é possível desvincular o endereço IP privado primário ou adicionar endereços IP privados secundários.

Para criar um gateway NAT

  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha NAT Gateways.

  3. Escolha Create NAT Gateway (Criar gateway NAT) e faça o seguinte:

    1. (Opcional) Especifique um nome para o gateway NAT. Isso cria uma tag em que a chave está Name e o valor é o nome que você especificar.

    2. Selecione a sub-rede na qual o gateway NAT deve ser criado.

    3. Para Connectivity type (Tipo de conectividade), selecione Private (Privado) para criar um gateway NAT privado ou Public (Público) (o padrão) para criar um gateway NAT público.

    4. (Somente Public NAT gateway) Para alocação do IP elástico, selecione um endereço IP elástico a ser associado ao gateway NAT.

    5. (Opcional) Para cada tag, escolha Add new tag (Adicionar nova tag) e insira o nome e o valor da chave.

    6. Escolha Create a NAT Gateway (Criar um gateway NAT).

  4. O status inicial do gateway NAT é Pending. Depois que o status for alterado para Available, o gateway NAT estará pronto para você usar. Adicione uma rota para o gateway NAT às tabelas de rota para as sub-redes privadas e adicione rotas à tabela de rotas para o gateway NAT.

    Se o status do gateway NAT mudar para Failed, isso significa que ocorreu um erro durante a criação. Para obter mais informações, consulte Falha na criação do gateway NAT.

Marcar um gateway NAT

Você pode marcar o gateway NAT para ajudar a identificá-lo ou categorizá-lo de acordo com as necessidades da organização. Para obter informações sobre como trabalhar com tags, consulte Marcar recursos do Amazon EC2 no Manual do usuário do Amazon EC2 para instâncias do Linux.

Há suporte a tags de alocação de custo para gateways NAT. Portanto, você também pode usar tags para organizar sua fatura da AWS e refletir sua própria estrutura de custo. Para obter mais informações, consulte Using cost allocation tags(Usar tags de alocação de custos) no AWS Billing and Cost Management User Guide (Manual do usuário do AWS Billing and Cost Management). Para obter mais informações sobre como configurar um relatório de alocação de custos com tags, consulte Relatório mensal de alocação de custos em Sobre o faturamento de contas da AWS.

Excluir um gateway NAT

Caso não precise mais de um gateway NAT, você pode excluí-lo. Depois de excluir um gateway NAT, sua entrada permanece visível no console da Amazon VPC durante um breve período (normalmente, uma hora) após o qual ela é automaticamente removida. Você não consegue removê-la.

A exclusão de um gateway NAT dissocia o respectivo endereço IP elástico, mas não libera o endereço de sua conta. Se excluir um gateway NAT, as rotas desse gateway permanecerão com o status blackhole até o momento em que excluir ou atualizar as rotas.

Para excluir um gateway NAT

  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha NAT Gateways.

  3. Selecione o botão de opção para o gateway NAT e, em seguida, escolhaActions (Ações),Delete NAT gateway (Excluir gateway NAT).

  4. Quando a confirmação for solicitada, insira delete e escolha Delete (Excluir).

  5. Se não for mais necessário o endereço IP elástico associado ao gateway NAT público, recomendamos que você o libere. Para obter mais informações, consulte Liberar um endereço IP elástico.

Cenários de gateway NAT

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

Cenário: 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, mas a Internet não pode estabelecer conexões com essas instâncias.

O diagrama a seguir ilustra a arquitetura desse caso de uso. A sub-rede pública na zona de disponibilidade A contém o gateway NAT. A sub-rede privada na zona de disponibilidade B contém instâncias. O roteador envia o tráfego das instâncias na sub-rede privada direcionado à Internet para o gateway NAT. O gateway NAT envia o tráfego para o gateway da internet usando o endereço IP elástico do gateway NAT como o endereço IP de origem.


          VPC com sub-redes públicas e privadas e um gateway NAT

A tabela de rotas a seguir está associada à sub-rede pública na zona de disponibilidade A. A primeira entrada é a padrão para o roteamento local na VPC; essa entrada permite que as instâncias na VPC se comuniquem umas com as outras. A segunda entrada envia todo o outro tráfego da sub-rede para o gateway da Internet; isso permite que o gateway NAT acesse a Internet.

Destino Destino
10.0.0.0/16 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 padrão para o roteamento local na VPC; essa entrada permite que as instâncias na VPC se comuniquem umas com as outras. A segunda entrada envia todo o outro tráfego da sub-rede para o gateway NAT.

Destino Destino
10.0.0.0/16 local
0.0.0.0/0 nat-gateway-id

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). Para obter mais informações, consulte Iniciar uma instância na sub-rede.. 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 security group 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 host bastion na sub-rede pública. Para obter mais informações, consulte Para configurar o encaminhamento de agente SSH para Linux ou macOS ou Para configurar o encaminhamento de agente SSH para Windows (PuTTY).

  4. No host bastion, 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

Para configurar o encaminhamento de agente SSH para 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 com PuTTYgen no Manual do usuário do Amazon EC2 para instâncias do Linux.

  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, encerre-as. Para obter mais informações, consulte Encerrar a instância no Manual do usuário do Amazon EC2 para instâncias do Linux.

Cenário: permitir acesso à sua rede a partir de endereços IP permitidos

Em vez de atribuir a cada instância um endereço IP separado do intervalo de endereços IP que têm permissão para acessar sua rede on-premises, você pode criar uma sub-rede em sua VPC com o intervalo de endereços IP permitido, criar um gateway NAT privado na sub-rede e rotear o tráfego de sua VPC destinado à sua rede on-premises via gateway NAT.

Migrar de uma instância NAT

Se você já tiver uma instância NAT, poderá substituí-la por um gateway NAT. Para isso, crie um gateway NAT na mesma sub-rede de sua instância NAT e substitua a rota existente em sua tabela direcionada à instância NAT que tem uma rota para o gateway NAT. Para usar o mesmo endereço IP elástico para o gateway NAT que você usa atualmente para a instância NAT, primeiro é necessário desassociar o endereço IP elástico da instância NAT e associá-lo a seu gateway NAT ao criar o gateway.

Se mudar o roteamento de uma instância NAT para um gateway NAT ou se dissociar o endereço IP elástico de sua instância NAT, qualquer conexão atual será interrompida e precisará ser restabelecida. Verifique se não há nenhuma tarefa essencial em execução (ou qualquer tarefa que seja executada por meio de uma instância NAT).

Visão geral da API e da CLI

Você pode executar as tarefas descritas nesta página usando a linha de comando ou uma API. Para obter mais informações sobre as interfaces de linha de comando e uma lista de operações de API disponíveis, consulte Acessar a Amazon VPC.

Criar um gateway NAT

Descrever um gateway NAT

Marcar um gateway NAT

Excluir um gateway NAT