Come posso risolvere i problemi di connettività quando utilizzo un gateway NAT sul mio VPC privato?

Ultimo aggiornamento: 12/04/2022

Sto utilizzando un gateway NAT per connettere a Internet le istanze presenti in una sottorete Amazon VPC (Virtual Private Cloud) privata. Le istanze presentano problemi di connessione intermittente. In che modo posso risolvere il problema?

Breve descrizione

Le risorse di una sottorete privata potrebbero riscontrare problemi di timeout di connettività intermittente per i seguenti motivi:

  • Regole della lista di controllo degli accessi (ACL) di rete.
  • Errore ErrorPortAllocation sul gateway NAT.
  • Esaurimento della porta dell'istanza client.

Le risorse di una sottorete privata potrebbero subire un'improvvisa interruzione di connessione per il seguente motivo:

  • Errore IdleTimeoutCount per il rilascio della capacità.

Le risorse di una sottorete privata potrebbero subire un rallentamento per il seguente motivo:

  • Limitazione della larghezza di banda per il gateway NAT.

Risoluzione

Le risorse di una sottorete privata riscontrano problemi di timeout di connettività intermittente

Regole ACL di rete

Verifica che l'ACL di rete associato alla sottorete pubblica in cui è presente il gateway NAT consenta il traffico dall'intervallo di porte effimere (1024-65535). Se l'ACL di rete consente solo un sottoinsieme dell'intervallo di porte effimere e le istanze nella sottorete privata utilizzano una porta di origine al di fuori di tale intervallo, il traffico viene interrotto. Per ulteriori informazioni su come configurare gli ACL di rete, consulta Regole ACL di rete consigliate per un VPC con sottoreti pubbliche e private (NAT).

Errore ErrorPortAllocation sul gateway NAT

Per ulteriori informazioni su questo errore, consulta Come posso risolvere l'errore ErrorPortAllocation sul mio gateway NAT?

Esaurimento della porta dell'istanza client

Verifica se le istanze client nella sottorete privata hanno raggiunto i limiti di connessione a livello di sistema operativo. Per visualizzare il numero di connessioni attive, esegui il comando netstat:

Linux:

netstat -ano | grep ESTABLISHED | wc --l
netstat -ano | grep TIME_WAIT | wc --l

Windows:

netstat -ano | find /i "estab" /c
netstat -ano | find /i "TIME_WAIT" /c

Se il comando precedente restituisce un valore vicino all'intervallo di porte locali consentito (la porta di origine per le connessioni client), è possibile che si verifichi un esaurimento delle porte.

Per ridurre l'esaurimento delle porte, procedi come segue:

  • Risolvi eventuali problemi a livello di applicazione che esauriscono le connessioni disponibili.
  • Aumenta l'intervallo di porte locali (effimere) del sistema operativo eseguendo il seguente comando:
net.ipv4.ip_local_port_range = 1025 61000

Le risorse della sottorete privata subiscono improvvise interruzioni di connessione

Errore IdleTimeoutCount per il rilascio della capacità

Se una connessione che utilizza un gateway NAT è inattiva per 350 secondi o più, si verifica il timeout della connessione e viene visualizzato un picco nel parametro IdleTimeoutCount. In caso di timeout di una connessione, un gateway NAT restituisce un pacchetto RST alle risorse dietro il gateway NAT che tentano di continuare la connessione. Il gateway NAT non invia un pacchetto FIN.

Soluzione alternativa per l'errore IdleTimeoutCount:

  • Utilizza il parametro IdleTimeoutCount in Amazon CloudWatch per monitorare l'aumento delle connessioni inattive. Configura CloudWatch Contributor Insights per ottenere visibilità sui principali fattori di contribuzione dei client con processi in stato di inattività.
  • Chiudi le connessioni inattive dai client per rilasciare capacità.
  • Avvia più traffico sulla connessione.
  • Attiva TCP keepalive sull'istanza con un valore inferiore a 350 secondi.

Le risorse della sottorete privata subiscono un rallentamento

Limitazioni della larghezza di banda sul gateway NAT

  • Un gateway NAT supporta 5 Gbps di larghezza di banda e la larghezza d banda aumenta automaticamente fino a 45 Gbps. Se la somma combinata dei parametri della velocità effettiva di rete in tutte le istanze dietro il gateway NAT è uguale o superiore a picchi di 45 Gbps, il traffico rallenta.
  • Utilizzando i parametri di CloudWatch, la larghezza di banda viene calcolata come: (BytesOutToDestination + BytesOutToSource + BytesInFromDestination + BytesInFromSource) * 8/periodo di tempo in secondi.

Soluzione alternativa alle limitazioni della larghezza di banda per gateway NAT:

Se la larghezza di banda sul gateway NAT è superiore a 45 Gbps, puoi suddividere le risorse tra più sottoreti e creare più gateway NAT.