Solucionar problemas de gateways NAT - Amazon Virtual Private Cloud

Solucionar problemas de gateways NAT

Os tópicos a seguir ajudam a solucionar problemas comuns que você pode encontrar ao criar ou usar um gateway NAT.

Falha na criação do gateway NAT

Problema

Você cria um gateway NAT e ele entra no status Failed.

nota

Um gateway NAT com falha é excluído automaticamente, geralmente em cerca de uma hora.

Causa

Ocorreu um erro quando o gateway NAT foi criado. A mensagem de estado retornada fornece o motivo do erro.

Solução

Para visualizar a mensagem de erro, abra o console da Amazon VPC e selecione NAT Gateways (Gateways NAT). Selecione o botão de opção do gateway NAT e, em seguida, encontre a State message (Mensagem de estado) na guia Details (Detalhes).

A tabela a seguir lista as possíveis causas da falha, tal como indicado no console da Amazon VPC. Depois de usar quaisquer etapas de correção indicadas, você pode tentar criar o gateway NAT novamente.

Erro exibido Causa Solução
Subnet has insufficient free addresses to create this NAT gateway A sub-rede que você especificou não tem nenhum endereço IP privado disponível. O gateway NAT requer uma interface de rede com endereço IP privado alocado no intervalo da sub-rede. Verifique quantos endereços IP estão disponíveis na sub-rede acessando a página Subnets (Sub-redes) no console da Amazon VPC. Você pode visualizar os Available IPs (IPs disponíveis) no painel de detalhes da sub-rede. Para criar endereços IP livres em sua sub-rede, você pode excluir interfaces de rede não usadas ou encerrar instâncias das quais não necessita.
Network vpc-xxxxxxxx has no Internet gateway attached É necessário criar um gateway NAT em uma VPC com um gateway da internet. Crie e vincule um gateway da Internet à VPC. Para mais informações, consulte Criar e associar um gateway da Internet à VPC.
Elastic IP address eipalloc-xxxxxxxx is already associated O endereço IP elástico que você especificou já está associado a outro recurso e não pode ser associado ao gateway NAT. Verifique qual recurso está associado ao endereço IP elástico. Acesse a página Elastic IPs (IPs elásticos) no console da Amazon VPC e visualize os valores especificados para o ID da instância ou para o ID da interface de rede. Se você não precisar do endereço IP elástico para aquele recurso, poderá dissociá-lo. Outra opção é alocar um novo endereço IP elástico à sua conta. Para mais informações, consulte Trabalhar com endereços IP elásticos.

Cota de gateway NAT

Ao tentar criar um gateway NAT, você obtém o erro a seguir.

Performing this operation would exceed the limit of 5 NAT gateways

Causa

Você atingiu a cota do número de gateways NAT para essa zona de disponibilidade.

Solução

Se você atingiu essa cota de gateway NAT para sua conta, você pode fazer um dos seguintes procedimentos:

  • Solicite um aumento nos gateways NAT por cota de zona de disponibilidade usando o console Service Quotas.

  • Verifique o status de seu gateway NAT. O status Pending, Available ou Deleting é contado em relação à sua cota. Se você tiver excluído um gateway NAT recentemente, espere alguns minutos para o status passar de Deleting para Deleted. Depois, tente criar outro gateway NAT.

  • Se não precisar de seu gateway NAT em uma zona de disponibilidade específica, tente criar um gateway NAT em uma zona de disponibilidade em que você não tenha atingido sua cota.

Para obter mais informações, consulte Cotas da Amazon VPC.

Cota de endereços IP elásticos

Problema

Quando você tenta alocar um endereço IP elástico para o gateway NAT público, você recebe o seguinte erro:

The maximum number of addresses has been reached.

Causa

Você atingiu a cota do número de endereços IP elásticos para sua conta para essa Região.

Solução

Se tiver atingido a cota de endereços IP elásticos, você poderá desassociar um endereço IP elástico de outro recurso. Como alternativa, você pode solicitar um aumento na cota Elastic IPs usando o console Service Quotas.

A zona de disponibilidade é incompatível

Problema

Ao tentar criar um gateway NAT, você obtém o seguinte erro: NotAvailableInZone.

Causa

Você pode estar tentando criar o gateway NAT em uma zona de disponibilidade restrita, ou seja, uma zona em que nossa capacidade de expandir é restrita.

Solução

Não é possível oferecer suporte a gateways NAT nessas zonas de disponibilidade. Você pode criar um gateway NAT em uma Zona de disponibilidade diferente e usá-lo para sub-redes privadas na zona restringida. Além disso, você pode mover seus recursos para uma zona de disponibilidade irrestrita para que esses recursos e seu gateway NAT fiquem na mesma zona de disponibilidade.

O gateway NAT não está mais visível

Problema

Você criou um gateway NAT, mas ele não está mais visível no console da Amazon VPC.

Causa

Pode ter ocorrido um erro durante a criação do gateway NAT e a criação falhou. Um gateway NAT com um status Failed fica visível no console da Amazon VPC por mais ou menos uma hora). Após uma hora, ele é excluído automaticamente.

Solução

Examine as informações em Falha na criação do gateway NAT e tente criar um novo gateway NAT.

O gateway NAT não responde a um comando ping

Problema

Ao tentar executar ping em um endereço IP elástico ou em um endereço IP privado do gateway NAT na internet (por exemplo, no computador doméstico) ou em uma instância na VPC, você não receberá uma resposta.

Causa

O gateway NAT só transfere tráfego de uma instância em uma sub-rede privada para a internet.

Solução

Para testar se um gateway NAT está funcionando, consulte Testar o gateway NAT público.

As instâncias não conseguem acessar a Internet

Problema

Você criou um gateway NAT público e seguiu as etapas para testá-lo, mas o comando ping apresenta falha ou suas instâncias da sub-rede privada não conseguem acessar a Internet.

Causas

A causa desse problema pode ser uma das seguintes:

  • O gateway NAT não está pronto para enviar tráfego.

  • Sua tabela de rotas não está configurada de corretamente.

  • Seus grupos de segurança ou network ACLs estão bloqueando o tráfego de entrada ou de saída.

  • Você está usando um protocolo incompatível.

Solução

Verifique as seguintes informações:

  • Verifique se o gateway NAT encontra-se no estado Available. No console da Amazon VPC, acesse a página NAT Gateways (Gateways NAT) e visualize as informações de status no painel de detalhes. Se o gateway NAT estiver no estado de falha, pode ter havido um erro no momento de criá-lo. Para obter mais informações, consulte Falha na criação do gateway NAT.

  • Verifique se você configurou corretamente as tabelas de rotas:

    • O gateway NAT deve estar em uma sub-rede pública com uma tabela de rotas que roteia o tráfego da internet para um gateway da internet.

    • A instância deve estar em uma sub-rede privada com uma tabela de rotas que roteia o tráfego da internet para o gateway NAT.

    • Verifique se não existe nenhuma outra entrada na tabela de rotas que roteia todo ou parte do tráfego da internet para outro dispositivo, e não para o gateway NAT.

  • Verifique se as regras do security group para a instância privada permitem tráfego de saída pela internet. Para o comando ping funcionar, as regras devem também permitir tráfego ICMP de saída.

    O gateway NAT propriamente dite permite tráfego de saída e tráfego recebido em resposta a uma solicitação de saída (por isso, ele é com estado).

  • Verifique se as Network ACLs associadas à sub-rede privada e às sub-redes públicas não têm regras que bloqueiam o tráfego de entrada e saída de internet. Para o comando ping funcionar, as regras devem também permitir tráfego ICMP de entrada e saída.

    Você pode permitir logs de fluxo para ajudá-lo a diagnosticar conexões encerradas por causa de regras de Network ACL ou security group. Para obter mais informações, consulte Como registrar tráfego IP em log com logs de fluxo da VPC.

  • Se estiver usando o comando ping, verifique se está executando um ping para um host habilitado para ICMP. Se o ICMP não estiver habilitado, você não receberá pacotes de resposta. Para testar, execute o mesmo comando ping no terminal de linha de comando de seu computador.

  • Verifique se sua instância pode executar ping em outros recursos; por exemplo, outras instâncias na sub-rede privada (supondo que as regras de security group permitam isso).

  • Verifique se sua conexão está usando somente o protocolo TCP, UDP ou ICMP.

A conexão TCP para um destino apresenta falha

Problema

Algumas conexões TCP de instâncias em uma sub-rede privada para um destino específico por um gateway NAT são bem-sucedidas, mas outras estão apresentando falha ou atingindo o tempo limite.

Causas

A causa desse problema pode ser uma das seguintes:

  • O endpoint de destino está respondendo com pacotes TCP fragmentados. Os gateways NAT não suportam fragmentação de IP para TCP ou ICMP. Para obter mais informações, consulte Comparar gateways NAT e instâncias NAT.

  • A opção tcp_tw_recycle está habilitada no servidor remoto, que é conhecido por causar problemas quando há várias conexões por trás de um dispositivo NAT.

Soluções

Verifique se o endpoint ao qual você está tentando conectar está respondendo com pacotes TCP fragmentados fazendo o seguinte:

  1. Use uma instância em uma sub-rede pública com um endereço IP pública para acionar uma resposta grande o suficiente para causar uma fragmentação de um endpoint específico.

  2. Use o utilitário Use the tcpdump para verificar se o endpoint está enviando pacotes fragmentados.

    Importante

    É necessário usar uma instância em uma sub-rede pública para executar essas verificações. Não é possível usar a instância na qual a conexão original estava falhando ou uma instância em uma sub-rede privada subjacente a um gateway NAT ou a uma instância NAT.

    As ferramentas de diagnóstico que enviam ou recebem grandes pacotes ICMP relatarão perda de pacote. Por exemplo, o comando ping -s 10000 example.com não funciona com um gateway NAT.

  3. Se o endpoint estiver enviando pacotes TCP fragmentados, você poderá usar uma instância NAT, em vez de um gateway NAT.

Se tiver acesso ao servidor remoto, você poderá verificar se a opção tcp_tw_recycle está habilitada fazendo o seguinte:

  1. No servidor, execute o comando a seguir.

    cat /proc/sys/net/ipv4/tcp_tw_recycle

    Se a saída for 1, a opção tcp_tw_recycle estará habilitada.

  2. Se a opção tcp_tw_recycle estiver habilitada, recomendamos desabilitá-la. Se precisar reutilizar conexões, tcp_tw_reuse é uma opção mais segura.

Se não tiver acesso ao servidor remoto, você poderá testar desabilitando temporariamente a opção tcp_timestamps em uma instância na sub-rede privada. Depois, conecte ao servidor remoto novamente. Se a conexão for bem-sucedida, a causa da falha anterior provavelmente ocorreu porque tcp_tw_recycle está habilitado no servidor remoto. Se for possível, entre em contato com o proprietário do servidor remoto para verificar se essa opção está habilitada e solicite que ela seja desabilitada.

O resultado do traceroute não exibe endereço IP privado do gateway NAT

Problema

A instância pode acessar a internet, mas quando você executa o comando traceroute, o resultado não exibe o endereço IP privado do gateway NAT.

Causa

A instância está acessando a internet usando um gateway diferente, como um gateway da Internet.

Solução

Na tabela de rotas da sub-rede na qual sua instância está localizada, verifique as informações a seguir:

  • Verifique se existe uma rota que envia tráfego de internet para o gateway NAT.

  • Verifique se não existe mais de uma rota específica enviando tráfego de internet para outros dispositivos, como um gateway privado virtual ou um gateway da internet.

A conexão com a Internet cai após 350 segundos

Problema

A instância pode acessar a Internet, mas a conexão cai após 350 segundos.

Causa

Se uma conexão que usa um gateway NAT ficar ociosa por 350 segundos ou mais, ela expirará.

Quando uma conexão atinge o tempo limite, uma gateway NAT retorna um pacote RST a qualquer recurso subjacente ao gateway NAT que tenta dar continuidade à conexão (ele não envia um pacote FIN).

Solução

Para evitar que a conexão caia, você pode iniciar mais tráfegos por meio da conexão. Como alternativa, é possível habilitar o keepalive TCP na instância com um valor menor que 350 segundos.

Não é possível estabelecer uma conexão IPsec

Problema

Não é possível estabelecer uma conexão IPsec em um destino.

Causa

Atualmente, os gateways NAT não são compatíveis com o protocolo IPsec.

Solução

Você pode usar o NAT- Traversal (NAT-T) para encapsular o tráfego IPsec na UDP, que é um protocolo compatível com gateways NAT. Lembre-se de testar sua configuração de NAT-T e de IPsec para verificar se o tráfego IPsec não é interrompido.

Não é possível iniciar mais conexões

Problema

Você tem conexões existentes para um destino por meio de um gateway NAT, mas não é possível estabelecer mais conexões.

Causa

Talvez você tenha atingido o limite de conexões simultâneas para um único gateway NAT. Para obter mais informações, consulte Noções básicas de gateway NAT. Se as instâncias na sub-rede privada criarem um grande número de conexões, você poderá atingir esse limite.

Solução

Execute um destes procedimentos:

  • Criar um gateway NAT por Zona de disponibilidade e distribuir seus clientes nessas zonas.

  • Criar outros gateways NAT na sub-rede pública e distribuir seus clientes em várias sub-redes privadas, cada uma com uma rota para um gateway NAT diferente.

  • Limitar o número de conexões que seus clientes podem criar para o destino.

  • Use a métrica IdleTimeoutCount no CloudWatch para monitorar aumentos nas conexões ociosas. Fechar as conexões ociosas para liberar capacidade.