Linux

ssl 和負載平衡:直接從後端回答?

  • August 26, 2014

語境

Debian 64 位。

我嘗試學習https。我創建了一個負載均衡器,但我無法直接從後端回答客戶端,因為它接收到 LB ip。

問題

我想知道如何通過 ssl 連接實現以下目標:

客戶端 ——-> 負載均衡器 Level4 —–> 3 個後端(ssl 終止) —–> 返回客戶端

目標是避免在負載均衡器上解密,但仍然能夠將請求發送到每個後端伺服器,在那裡解密並直接發送回客戶端。

有什麼辦法讓它發生嗎?我正在學習,很難跟踪 haproxy 或 tinyproxy 中發生的所有事情。我需要視覺幫助。

您要求的是直接伺服器返回。它是某些負載均衡器上可用的功能,但不是全部。關於 HAProxy 或 tinyproxy 是否支持 DSR,我還沒有找到任何明確的答案。

DSR 的幾個顯著優勢是:

  • 您可以在 LB 後面的後端上進行 SSL 並且仍然知道客戶端的 IP
  • 您可以獲得更好的可擴展性,因為 LB 只需要處理一個方向的數據包(通常是流量最少的方向)。

DSR 的一個缺點是您不能再依賴標準 IP 路由將數據包從 LB 發送到後端。這是由於數據包仍然以 VIP 作為目標地址,因此 IP 路由會將它們路由到 LB。

解決此問題的兩種方法如下:

  • LB 在轉發傳入的數據包時繞過 ARP/ND 層。相反,LB 用所選後端的 MAC 填充目標 MAC。此方法僅在 LB 和後端位於同一段時才有效。
  • 在 LB 和後端之間使用 IP 隧道。即使 LB 和後端之間有路由器,這種方法也有效。使用這種方法時,必須注意避免 MTU 問題。降低 MSS 可以避免 MTU 問題,但是由於 DSR,LB 無法做到這一點,因此後端需要配置較低的 MSS。

引用自:https://serverfault.com/questions/624187