AWS 為 Gateway Load Balancer 加入 TCP Reset:代理復原鏈路應測試什麼

實體化網際網路路由模型在故障路徑被重置後,將新連線送往健康網路設備

AWS 於 2026 年 9 月 2 日宣布 Gateway Load Balancer 支援 TCP Reset。當後端目標被判定為不健康、完成註銷,或閒置流在逾時後再次收到封包時,GWLB 可以主動回傳 TCP 重置。傳送端不必繼續等待 TCP 重傳耗盡,而能明確知道舊連線已結束並建立新連線。

對於把合規資料收集、區域驗證或代理瀏覽器流量放在防火牆與檢測設備後方的團隊,這不只是負載平衡選項。客戶端看到的故障訊號已改變,因此復原邏輯、工作階段狀態與監控都應在上線前重新驗證。

AWS 改變了什麼

GWLB 會把網路流分配給防火牆、入侵偵測和深度封包檢查等虛擬設備。AWS 說明,原有 fail-open 行為可能繼續把既有流量送向不健康設備,客戶端只能等待 TCP 重試與指數退避,持續數十秒甚至數分鐘。

啟用 TCP Reset 後,GWLB 會移除受影響的流表項目,並在該流再次有封包時回傳 RST。應用程式隨後建立的新連線會形成新流,並可被分配給健康設備。

AWS 列出三類獨立觸發條件:

觸發條件傳送重置的時點設定範圍
目標不健康健康檢查達到失敗門檻後目標群組
目標註銷連線排空時間結束後目標群組
閒置流收到非 SYN 封包TCP 閒置逾時後監聽器

此功能預設關閉,並要求五元組流黏著性。如果同時啟用 Flow Rebalance,則後者優先。

更快的故障訊號不等於立即復原

RST 消除一部分等待,但完整復原仍包含多個時鐘:

  1. 故障偵測時間:健康檢查間隔、失敗門檻與處理時間;
  2. 重置送達時間:目標變為不健康後,到相關封包收到 RST;
  3. 客戶端反應時間:辨識錯誤、執行退避並建立新連線;
  4. 路由復原時間:新流通過健康設備與核准的代理路徑;
  5. 業務復原時間:第一個結果通過內容、位置、工作階段與合規驗證。

AWS 提醒,預設健康檢查仍可能帶來數分鐘的偵測窗口。更積極的檢查可以縮短時間,但也會增加誤判。團隊應依自己的設定測量完整鏈路,而不是籠統宣稱「數秒復原」。

代理應用需要補做的測試

單獨記錄 RST

把 TCP 重置視為獨立傳輸結果,不要與連線逾時、TLS 錯誤、驗證失敗、HTTP 拒絕或內容無效合併。它們對應的安全處理方式不同。

限制重試規模

RST 可能觸發立即重連,大量工作程序容易同時重試。應加入抖動、最大嘗試次數、任務總時限與斷路器,並持續計算「總嘗試次數除以原始任務數」的重試放大倍數。

重新驗證替代路徑

新連線仍必須使用預期閘道、協定、位址家族和區域,並禁止直連回退。對黏著性工作負載,要預先定義出口改變是否會讓應用工作階段失效。

保護結果不確定的操作

RST 只能證明連線已結束,不能證明先前的寫入操作沒有生效。優先使用冪等鍵、檢查點與結果對帳;狀態未知時先隔離,不要自動重播。

同時監控基礎設施與業務結果

AWS 加入 TCP_ELB_Reset_Count 指標。應將它與目標健康變化、代理連線結果、首次成功率、有效內容率、工作階段遺失和業務復原時間一起觀察。只有重置計數,沒有有效結果,不能證明復原成功。

可控驗證流程

僅在自有或明確授權的測試環境執行。

  1. 使用一個健康設備和低固定負載建立基線。
  2. 核對五元組黏著性、閒置逾時與健康檢查設定。
  3. 以可逆方式讓一台測試設備離線或失效。
  4. 分別記錄故障注入、健康狀態變化、RST、新連線與第一個有效結果的時間。
  5. 確認沒有請求繞過代理直接連線。
  6. 核對黏著工作階段、Cookie 與進行中操作是否正確。
  7. 將總嘗試次數、p95 延遲與每個有效結果成本和基線比較。
  8. 分別測試目標註銷與閒置逾時,不要假設它們與健康失敗完全相同。
  9. 恢復設備後確認沒有路由抖動。
  10. 記錄上線與回滾門檻。

發布檢查清單

  • [ ] 僅在預期目標群組和監聽器啟用 TCP Reset。
  • [ ] 五元組黏著性已驗證。
  • [ ] 已理解 Flow Rebalance 的優先關係。
  • [ ] 健康檢查速度符合復原目標且誤判可接受。
  • [ ] 客戶端能單獨辨識 RST,不會形成同步重試風暴。
  • [ ] 已禁止直連回退。
  • [ ] 替代路徑保持所需區域、協定與位址家族。
  • [ ] 不確定寫入具備冪等或隔離機制。
  • [ ] 基礎設施與業務復原指標都可見。
  • [ ] 非正式環境故障演練通過後才上線。

常見問題

TCP Reset 會把舊流移到另一台設備嗎?

不會。它終止受影響的流,應用程式必須建立新連線,新流才會被分配給健康目標。

可以取消應用程式逾時嗎?

不可以。AWS 建議保留應用層逾時。RST 是額外訊號,不能取代任務總時限與有界重試。

它能解決所有代理逾時嗎?

不能。它只處理特定 GWLB 流場景。代理驗證、上游壅塞、目標限流、DNS、TLS 和內容驗證仍是獨立故障層。

最重要的驗收指標是什麼?

測量「第一個有效業務結果」的復原時間,不只看新連線建立時間,並同時驗證工作階段、路由合規與重複操作防護。

可搭配 98IP 的代理故障轉移演練代理逾時預算重試放大控制繼續完善客戶端方案。

合規說明

只測試自有或明確獲准的系統、帳號與流量路徑。遵守目標網站條款、robots 指令、速率限制、隱私義務和適用法律。不得用重置、重試或切換路由覆蓋存取決定,日誌中不得保留代理密碼、Cookie 或權杖。

來源說明:Amazon Web Services,《Reduce Traffic Interruptions with Gateway Load Balancer TCP Reset》,發布於 2026 年 9 月 2 日。