如果對我在私有 Amazon VPC 上使用 NAT 閘道時出現的連線問題進行疑難排解?

2 分的閱讀內容
0

我想對我在私有 Amazon Virtual Private Cloud (Amazon VPC) 上使用 NAT 閘道時出現的連線問題進行疑難排解。

簡短說明

由於下列原因,私有子網路資源可能會遇到連線逾時、突然中斷或連線速度緩慢:

  • 網路存取控制清單 (網路 ACL) 規則
  • NAT 閘道上的 ErrorPortAllocation 錯誤
  • 用戶端執行個體連接埠耗盡
  • 釋放容量的 IdleTimeoutCount 錯誤
  • 每個 NAT 閘道的頻寬限制

解決方法

對基於下列原因的連線逾時、突然中斷或連線速度緩慢進行疑難排解:

網路 ACL 規則

請確定與 NAT 閘道公用子網路相關聯的網路 ACL 允許來自暫時連接埠範圍 (1024-65535) 的流量。如果網路 ACL 允許部分連接埠範圍,而執行個體使用範圍以外的來源連接埠,則流量會被刪除。如需更多資訊,請參閱範例: 具有私有子網路和 NAT 中的伺服器的 VPC

NAT 閘道上的 ErrorPortAllocation 錯誤

NAT 閘道支援最多 55,000 個同時連線至每個目的地。如果超過此閾值,則與目的地的新連線會失敗,且 Amazon CloudWatch 中 NAT 閘道的 ErrorPortAllocation 指標會增加。若要解決此問題,請將最多八個 IPv4 地址與 NAT 閘道關聯,以增加限制。您可以關聯一個主要和七個次要 IPv4 地址。

**注意:**次要 IPv4 地址會增加可用連接埠的數量。這表示您的工作負載可用於連線至 NAT 閘道以建立的並行連線數量也會增加。

如需詳細資訊,請參閱如何解決 NAT 閘道上的 ErrorPortAllocation 錯誤?

用戶端執行個體連接埠耗盡

檢查私有子網路中的用戶端執行個體是否已達到其作業系統 (OS) 連線限制:

檢視作用中連線的數目:

Linux:

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

Windows:

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

如果前面的命令傳回接近允許的本機連接埠範圍 (用於用戶端連線的來源連接埠) 的值,則可能是連接埠耗盡。

若要緩減連接埠耗盡,請完成下列工作:

  • 解決任何耗盡可用連線的應用程式層級問題。
  • 增大作業系統本機 (暫時) 連接埠範圍:
net.ipv4.ip_local_port_range = 1025 61000

**注意:**連接埠範圍總數可能有助於解決連接埠配置問題,因為連線無提示關閉。

釋放容量的 IdleTimeoutCount 錯誤

如果使用 NAT 閘道的連線閒置 350 秒或更長時間,則連線逾時。您也會看到 IdleTimeoutCount 指標的尖峰。若連線逾時,NAT 閘道會傳回 RST 封包給嘗試繼續連線的 NAT 閘道後方的任何資源。NAT 閘道不會傳送 FIN 封包。

若要解決 IdleTimeoutCount 錯誤,請完成下列工作:

  • 使用 Amazon CloudWatch ** 中的 IdleTimeoutCount ** 指標來監控閒置連線的增加。請確保設定 CloudWatch Contributor Insights 以瞭解處理程序處於閒置狀態的用戶端的頂級貢獻者。
  • 關閉用戶端的閒置連線以釋放容量。
  • 透過連接啟動更多流量。
  • 在值小於 350 秒的執行個體上開啟 TCP Keepalive

NAT 閘道的頻寬限制

NAT 閘道支援 5 Gbps 的頻寬,並自動擴充至 100 Gbps。如果 NAT 閘道中所有執行個體的網路輸送量指標等於或超過 100 Gbps,則流量會變慢。如需詳細資訊,請參閱 NAT 閘道指標和維度

若要解決 NAT 閘道的頻寬限制,請在多個子網路之間分割資源,並建立多個 NAT 閘道。

如需詳細資訊,請參閱如何使用 Amazon CloudWatch 指標來識別 NAT 閘道頻寬問題?

相關資訊

如何解決使用 NAT 執行個體時的反覆連線問題?

NAT 閘道疑難排解

AWS 官方
AWS 官方已更新 1 年前