AWS Gateway Load Balancer の背後にある VM シリーズのファイアウォールで TCP セッションの終了理由が期限切れになった
16099
Created On 11/25/22 16:07 PM - Last Modified 02/02/24 06:08 AM
Symptom
- Gateway Load Balancer (GWLB) の背後にある複数の VM シリーズ ファイアウォールの 1 つを通過する TCP セッションで、[Monitor > Logs > Traffic] に "Session end reason" が "aged-out" と表示される
- AWS GWLBからトラフィックを受信し、元のセッション(PA-VM-1)を作成するVMシリーズファイアウォールの受信段階でのパケットキャプチャは、(i)GWLB(172.21.200.78)とファイアウォールの信頼できないインターフェイス(172.21.200.84)間のアンダーレイGENEVEトンネル、(ii)TCP 3ウェイハンドシェイク、および(iii)TLS交換の正しい確立を示しています。 また、オーバーレイTCPセッションの一部として、クライアント(172.21.43.170)とサーバー(XXX.18.226.52)の間で、AWS環境外でパブリックインターネットに面しているアプリケーションデータトラフィックとTCP確認応答(ACK)を送受信します。
- ある時点で、パケット フローは停止します(たとえば、クライアントがアイドル状態の場合)。 クライアントまたはサーバーのいずれかがTCPセッションタイムアウト制限(たとえば、以下のサーバーでは400秒)に達すると、TCPセッションを正常に終了するためにTCPFIN-ACKメッセージを送信します。
- ただし、 AWS GWLB の TCP セッション タイムアウトは 350 秒であるため、その TCP セッションの PA-VM-1 を使用したアンダーレイ GENEVE トンネルはすでに切断されています。 したがって、サーバの元の TCP FIN-ACK とその後の再送信(クライアントからの応答がないため)は、送信段階での PA-VM-1 のパケット キャプチャには表示されません。
- ある時点で、クライアントはサーバーに別のリクエストを送信しますが、AWS GWLB はそれをまったく新しい TCP セッションと見なします。 その結果、GWLB はターゲット グループ内のファイアウォール (TCP セッションが最初に作成されたファイアウォールと同じ場合とそうでない場合がある) を選択し、そのファイアウォールを使用して新しいアンダーレイ GENEVE トンネルを作成します。 たとえば、この場合、別のファイアウォール PA-VM-2 が選択されます。 PA-VM-2 は最初の TCP 3 ウェイ ハンドシェイクを認識していないため、クライアントからサーバに送信されたパケットをドロップします。 これは、受信段階とドロップ段階の両方で、PA-VM-2 の PA-VM-1 への同時パケット キャプチャで確認できます。
- 一方、PA-VM-1 の元の TCP セッションは最終的にタイムアウトし、[Monitor > Traffic > Logs] に [Session end reason" "aged-out" と表示されます。 元の 3 ウェイ TCP ハンドシェイクがキャプチャされなかったため、セッションが作成されなかったため、PA-VM-2 のトラフィック ログにセッションは表示されません。
Environment
- アマゾンウェブサービス (AWS)
- トランジットゲートウェイ経由でセキュリティ VPC に接続されたコンシューマー VPC
- セキュリティ VPC には、Gateway Load Balancer (GWLB) の背後にある異なるアベイラビリティーゾーン (AZ) に複数の VM シリーズファイアウォールが含まれています
- セキュリティ VPC の各アベイラビリティーゾーンには、Gateway Load Balancer エンドポイント (GWLBE) が含まれています
- VM シリーズ ファイアウォール(PAN-OS 10.2.2-h2)
Cause
AWS GWLB の TCP セッション タイムアウトは 350 秒ですが、クライアントとサーバーのタイムアウトはそれより長くなります。
Resolution
- クライアントまたはサーバーのTCPセッションタイムアウトをAWS GWLBの値より小さい値(例:325秒)に減らします。又は
- クライアントでTCPキープアライブメッセージを有効にし、AWS GWLBよりも小さい値(例:325秒)に設定します。
手記:VM シリーズ ファイアウォールの TCP タイムアウトを、グローバル デフォルトの 3,600 秒、または [オブジェクト> アプリケーション] で影響を受けるアプリケーションに固有のデフォルトの TCP タイムアウト (ssl の場合は 1,800 秒など) から AWS GWLB の値 (325 秒など) よりも小さい値に減らしても、 VM シリーズ ファイアウォールは TCP セッションをサイレントに (つまり、クライアントとサーバーの両方に TCP RESET メッセージを送信せずに) 終了するため、問題は解決しません。 AWS GWLBとまったく同じです。 したがって、クライアントとサーバーの両方が、TCPセッションが終了したことを認識しません。 このファイアウォールの動作は変更できません。
Additional Information
PALO ALTO NETWORKS DOCUMENTATION
パロアルトネットワークス ファイアウォールがセッションを終了するために TCP リセット (RST) を送信するのはどのような場合ですか?
AWS ドキュメント
Gateway Load Balancer をデプロイするためのベストプラクティス