NAT インスタンスを使用するときに発生する断続的な接続の問題を解決するするにはどうすればよいですか?

所要時間2分
0

NAT インスタンスを使用して Amazon Virtual Private Cloud (Amazon VPC) サブネットのインターネットにインスタンスを接続していますが、インスタンスに断続的な接続の問題が発生しています。

簡単な説明

断続的な接続の問題は、以下に関連している可能性があります。

  • ソースのポート枯渇
  • ネットワークアクセスコントロールリスト (ネットワーク ACL) ルール
  • ネットワークの問題

解決策

ソースのポート枯渇を軽減

プライベートサブネットのインスタンスがオペレーティングシステムレベルの接続制限に達したことを確認します。アクティブな接続の数を取得するには、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

注: TIME\ _WAIT 状態でポートを再利用するように TCP パラメータを設定した場合は、前述のコマンドから TIME\ _WAIT を削除してください。

コマンドがローカルポートの許容範囲 (クライアント接続の送信元ポート) に近い値を返す場合は、ポートが枯渇する可能性があります。ポートの枯渇を防ぐには、次のいずれかの解決策を試してください。

次のコマンドを実行して、オペレーティングシステムのエフェメラルポートの範囲を広げます。

Windows の場合は、管理者として実行してください。

netsh int ipv4 set dynamicport tcp start=1025 num=61000

Linux の場合は、root として実行してください。

$echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range

**注:**ディストリビューションの種類によっては、再起動中に前述のパラメータを永続的に設定してください。

-または-

利用可能な接続を枯渇させるアプリケーションレベルの問題を解決します。

ネットワーク ACL ルールでエフェメラルポート範囲のトラフィックが許可されていることを確認する

パブリックサブネットとプライベートサブネットのネットワーク ACL は、エフェメラルポート範囲 (1024 ~ 65535) のトラフィックを許可する必要があります。

たとえば、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスが HTTPS ウェブサイトにアクセスできるようにするには、プライベートサブネットに関連付けられているネットワーク ACL に次のルールが必要です。

インバウンドルール:

ソースプロトコルポート範囲許可/拒否
PUBLIC_IPTCP1024-65535ALLOW

アウトバウンドルール:

宛先プロトコルポート範囲許可/拒否
PUBLIC_IPTCP443ALLOW

NAT インスタンスのサブネットに関連付けられているネットワーク ACL には、次のルールが必要です。

インバウンドルール:

ソースプロトコルポート範囲許可/拒否
VPC CIDRTCP443ALLOW
PUBLIC_IPTCP1024-65535ALLOW

アウトバウンドルール:

宛先プロトコルポート範囲許可/拒否
PUBLIC_IPTCP443ALLOW
VPC CIDRTCP1024-65535ALLOW

次の場合、トラフィックはドロップされます。

  • ネットワーク ACL はエフェメラルポート範囲のサブセットのみを許可します。
  • プライベートサブネットまたは NAT インスタンスのインスタンスは、エフェメラルポートの範囲外の送信元ポートを使用します。

ネットワークの問題の確認

ソース、NAT、ネットワークメディア、またはターゲットのネットワークパフォーマンスが低下すると、接続の問題が発生する可能性があります。詳細については、「 VPC 内の EC2 Linux または Windows インスタンスと、インターネットゲートウェイ経由でのオンプレミスホスト間におけるネットワークパフォーマンスの問題をトラブルシューティングするにはどうすればよいですか?」を参照してください。

また、ネットワークがインスタンスレベルで最大値を超えると、ネットワークの問題が発生する可能性があります。サポートされているインスタンスタイプでは、Elastic Network Adaptor (ENA) のネットワークパフォーマンスメトリックスを使用して、トラフィックが最大値を超えたときにモニタリングできます。詳細については、「 EC2 インスタンスのネットワークパフォーマンスの監視」を参照してください。

関連情報

エフェメラルポート


AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ