← 返回列表

負載均衡 LoadBalance 詳解:也稱之爲 F5,以及真實案例介紹

itadol5j

做運維和安全的,幾乎都繞不開一個詞——負載均衡。而一說負載均衡,很多人腦子裏蹦出來的第一個設備就是”F5″。有意思的是,F5 其實是個公司名(F5 Networks),但因爲它的產品太出名,慢慢就成了負載均衡器的代名詞,就像”百度一下”變成了搜索的代稱。

負載均衡 F5

這篇就把它講透:F5 到底是什麼、四層和七層差在哪、真實場景怎麼配。

一、負載均衡到底在解決什麼

負載均衡(Load Balance),本質是把工作任務分攤到多個操作單元上執行——比如 Web 服務器、FTP 服務器、企業關鍵應用服務器,讓它們共同完成工作。

從技術角度看,它對外展現一個虛擬服務器地址。用戶來連的時候,它通過雙向網絡地址轉換(NAT)把連接轉到最合適的真實服務器上。用戶看到的永遠是同一個入口,背後是一羣機器在扛。

它要解決三件事:怕宕機(單點故障)、怕扛不住(性能瓶頸)、怕擴不了(無法橫向擴展)。

二、四層 vs 七層:最容易搞混的地方

區別的核心只有一句話:要不要解析應用層協議。這個差異直接決定了能力邊界和性能表現。

四層負載均衡(傳輸層)

  • 工作層級:OSI 第 4 層,TCP/UDP 協議
  • 轉發依據:源 IP、目標 IP、端口號——不碰應用數據
  • 核心能力:端口轉發、TCP 連接複用、四層健康檢查(TCP 握手)、基礎 DDoS 防護
  • 性能:轉發效率極高,接近硬件極限,微秒級延遲
  • 典型場景:數據庫(MySQL/Redis)、TCP 服務(遊戲服務器、Netty 服務)、跨機房鏈路負載
  • 代表產品:LVS、F5(四層模式)、HAProxy(四層模式)、Nginx(stream 模塊)

七層負載均衡(應用層)

  • 工作層級:OSI 第 7 層,HTTP/HTTPS、DNS、FTP 等應用協議
  • 轉發依據:URL、Cookie、HTTP 頭、請求參數、JSON 內容
  • 核心能力:基於內容路由、SSL 卸載、緩存、限流熔斷、WAF 集成、會話保持、灰度發佈
  • 性能:功能豐富,但需解析應用協議,延遲略高(毫秒級),靠集羣擴容彌補
  • 典型場景:Web 應用、微服務 API、HTTPS 服務、灰度發佈、API 網關
  • 代表產品:Nginx、HAProxy(七層模式)、F5(七層模塊)、Kong、Spring Cloud Gateway

一句話記法:四層看”路牌”(IP 和端口)就轉發,七層要”拆包裹”(看內容)再決定送哪兒。要性能選四層,要花活選七層。

三、F5 BIG-IP 到底強在哪

F5 的主力產品 BIG-IP LTM,官方名稱叫本地流量管理器,能做 4-7 層負載均衡。它不只是個轉發器,功能清單相當長:應用交換、會話交換、狀態監控、智能 NAT、通用持續性、響應錯誤處理、IPv6 網關、高級路由、SSL 加速、智能 HTTP 壓縮、TCP 優化、內容緩衝、Cookie 加密、應用攻擊過濾、DoS 和 SYN Flood 防護、防火牆包過濾……

挑幾個最實用的說:

1. 多鏈路負載均衡和冗餘

關鍵業務往往要接多家 ISP 線路,保證質量、消除單點故障。這裏分兩個方向:

  • OUTBOUND 流量(內網訪問外網):BIG-IP LC 把流量智能分配到不同 Internet 接口,並做源地址 NAT
  • INBOUND 流量(外網訪問內網):綁定兩個 ISP 的公網地址,解析兩家 ISP 的 DNS 請求,根據服務器健康狀況和 RTT 時間智能回應

2. 服務器負載均衡

通過 VIP(虛擬 IP,由 IP 地址和 TCP/UDP 端口組成)對外提供服務,持續對目標服務器做 L4 到 L7 的健康檢查。一旦發現故障服務器,就從負載均衡組裏摘除。還能配合 iRules 把 TCP/UDP 數據包打開,按內容特徵做規則處理——比如按 URL 把流量導向不同服務器。

3. 系統高可用性

這是 F5 最能吹的地方。雙機冗餘模式下毫秒級切換(最快 200ms 內),號稱 99.999% 可用性。原理是:所有會話經過 Active 設備時,會通過同步數據線把會話信息同步到 Backup 設備——所以切換時用戶訪問不中斷。設備裏的 watchdog 芯片通過心跳線監控對方電頻,Active 掛了立刻通知 Backup 接管 Shared IP 和 VIP。

4. 安全性

BIG-IP 採用防火牆設計原理,缺省拒絕。能拆空閒連接防 DoS、執行源路由跟蹤防 IP 欺騙、拒絕無 ACK 的 SYN 防 SYN 攻擊。它的 Dynamic Reaping 特性能高效刪除 DoS 攻擊中的空閒連接,而且會隨攻擊量增加而加快連接切斷速率——這點挺狠。Delay Binding 技術則給後端服務器提供全面的 SYN Flood 保護。

5. SSL 加速

每臺 BIG-IP 都有 SSL 硬件加速芯片,還自帶 100 個 TPS 的 License,不用單獨付費。後面要擴容,升級 License 就行。

F5 BIG-IP 負載均衡器

四、F5 還是 Nginx?選型對比

這是實際工作中最常被問到的問題。兩者不是競爭關係,更多是互補。

F5 BIG-IP(硬件)

  • 部署形態:專用硬件設備(含定製芯片)
  • 性能:百萬級 TCP 連接,微秒級轉發延遲
  • 功能:全能型——四層+七層、SSL 卸載、DDoS 防護、WAF、VPN、鏈路負載
  • 可靠性:硬件冗餘(雙機熱備),99.999% 可用性
  • 成本:高昂(幾十萬到上百萬),需專業工程師維護
  • 擴展性:依賴硬件升級,靈活度低
  • 運維:複雜,需熟悉專屬配置界面和 CLI

Nginx(軟件)

  • 部署形態:軟件,跑在通用服務器或雲主機上
  • 性能:十萬級 TCP 連接,毫秒級延遲,可集羣擴容
  • 功能:輕量高效——七層爲核心,支持四層、SSL 卸載、緩存、限流、反向代理
  • 可靠性:需手動配雙機熱備(Keepalived),依賴服務器硬件穩定性
  • 成本:開源免費,Nginx Plus 收費也較低
  • 擴展性:支持集羣部署,雲環境可彈性擴容
  • 運維:簡單,配置文件易讀,後端工程師能快速上手

選型路口,照着走就行:

  • 高併發 TCP 服務(遊戲、證券)+ 極致可用性 → F5 四層
  • 核心業務入口 + 安全需求(WAF/DDoS) → F5 七層
  • 微服務 API 網關 + 雲環境部署 → Nginx 七層
  • 數據庫/Redis 負載 + 高性價比 → Nginx 四層
  • 中小規模業務 + 快速迭代 → Nginx(四層/七層)
  • 企業級數據中心 + 多鏈路 → F5 做入口,Nginx 做內部服務負載

最後一種組合在實際中大廠很常見——F5 守國門,Nginx 管內部。

五、實戰案例:F5 配置有多繞

很多人拿到 F5 的第一反應是:這跟交換機的思路完全不一樣,根本無從下手。它的配置邏輯是另一套體系。

場景:兩臺 Web 服務器對外服務,IP 爲 192.168.192.10-20/24,要求通過外網地址 192.168.27.100 的 80 端口做負載均衡。

最簡單的負載均衡只需三個參數,關係是層層關聯的:

  • Node(節點):最基本的定義,每臺服務器就是一個 Node
  • Pool(資源池):一組接收和處理流量的 Node,比如 Web 服務器集羣
  • Virtual Server(虛擬服務器):對外入口,關聯到 Pool

數據流向:客戶請求 → Virtual Server → Pool → Node。

實操步驟(BIG-IP 管理界面):

  • 第一步:激活設備。拿到 F5 先激活,嚮導很簡單,但記住一定要聯網,最好在上架前完成——這是踩過坑的經驗
  • 第二步:登錄。瀏覽器打開 https://管理IP,默認用戶名密碼都是 admin
  • 第三步:劃 VLAN。Network → VLANs,創建 VLAN 並把接口加入(選入 Untagged)
  • 第四步:配 IP。Networks → Self IPs,給每個 VLAN 定義地址
  • 第五步:配路由。Networks → Routes,設默認網關或靜態路由
  • 第六步:配 Pool。Local Traffic → Virtual Servers → Pools,設名字、健康檢查(如 TCP)、負載算法(如 observed-member 觀察法)、真實服務器 IP 和端口
  • 第七步:配 Virtual Server。Local Traffic → Virtual Servers,關聯上面的 Pool,選輪詢方式(常用 RoundRobin)
  • 第八步:配 Monitor。Local Traffic → Monitors,檢查服務器健康狀態並關聯 Pool
  • 第九步:配 Redundant,做雙機冗餘

六、Virtual Server 的幾個關鍵參數

F5 的核心就是 Virtual Server,幾個參數不注意會出問題。

VS Type(類型),常見三種:

  • Performance L4:純四層轉發,TMM 只負責連接分配,不改 TCP 參數,客戶端與服務器連接是 1:1。轉發速率快,企業中常用。爲減少對應用的影響,能選就優先選這個
  • Standard VS:客戶端與服務器 TCP 連接完全獨立。需要七層功能時用(Cookie 會話保持、Session ID 保持、Header 保持、基於交易的長連接拆分、SYN 攻擊防護)。注意一個特性:它的端口永遠對外開放——就算後端 Node 全 down 了,VIP 的 80 端口還是能 telnet 通,只是網頁打不開。用這個排查故障時要記住
  • Forwarding IP:用於內外網連接,沒有 Pool Member,轉發取決於本地路由。默認情況下 F5 沒有路由功能,需要建一個全 0 的 VS 來開啓路由功能

Timeout 要對齊(這是真坑)。VS 上如果配了 TCP Profile,那 UDP 連接就不會被接受。更要注意 tcp 裏的 Idle Timeout 值——必須和服務器配合。如果 F5 上設 150 秒,而 IIS 服務器是 300 秒,就會產生大量錯誤。兩邊的時間要商量好。

Address/Port Translation:默認都是 enabled。VS IP 和真實機器 IP 不同時要開 Address Translation;VS 的 8080 端口對應真實地址的 80 端口時,要開 Port Translation。

SNAT AutoMap:請求從哪個 VLAN 出去,SNAT 源地址就是該 VLAN 上的 Self IP。一個 VLAN 上有多個 Self IP 時,會輪詢使用。

七、爲什麼必須懂”會話保持”

這是負載均衡裏最容易被忽略、又最容易出事的概念。

在電商、在線認證這類系統裏,一個客戶要經過多次交互才能完成一筆交易。這些交互密切相關——服務器處理第二步時,往往需要知道第一步的結果。這就要求所有這些交互必須由同一臺服務器完成,不能被負載均衡器分散到不同機器上。

這就是會話保持(Persistence)存在的意義。F5 通過 Connectivity 實現,可選模式包括:

  • 源地址保持:按客戶端源 IP 綁定
  • Cookie 保持:F5 自動插入會話 Cookie,最常用在七層
  • SSL Session ID 保持:複用 SSL 會話
  • 會話保持表:支持多種超時和匹配規則

配錯了什麼後果?用戶在購物車裏加了商品,刷新一下東西沒了——因爲請求被分到了另一臺服務器。這類線上故障,排查起來非常費勁。

八、幾個繞不開的實戰細節

最後挑幾個別人踩過的坑,直接給結論:

  • 健康檢查要選對層次:只看 TCP 握手,服務器端口活着但應用掛了照樣被轉發;要檢查應用層,就用 HTTP 類型 Monitor 探 /actuator/health 這類接口
  • 防火牆要做”三明治”:單臺防火牆往往只能達到線速的 30% 吞吐,要提升就得堆多臺。但防火牆要求數據同進同出,否則連接被拒——F5 的防火牆負載均衡方案能解決這個問題,實現透明設備的持續性
  • SSL 卸載是省 CPU 的大頭:讓 F5 處理 HTTPS 握手和加解密,後端 Java 應用只處理 HTTP,性能提升明顯
  • 連生產環境前先做壓測:四層雖快,但如果你在四層 VS 上開了會話保持,等於引入了狀態,性能預期要重新算
  • 監控指標盯三個:池狀態、虛擬服務器吞吐量、節點健康狀態
  • 排障命令:tmsh show ltm pool <pool-name> 看池狀態,tmsh show ltm virtual <vs-name> 看虛擬服務器狀態
四層七層負載均衡

寫在最後

負載均衡看着是個”轉發設備”,實際上它站在整個架構最關鍵的位置——所有流量都要從它手裏過。它配得好,用戶感覺不到它的存在;它配得差,半夜的電話就找你。

現在雲原生的浪潮下,LVS、Nginx、HAProxy 這些軟件方案在中小場景完全夠用,成本優勢明顯。但涉及金融、證券、大型電商的核心入口,硬件負載均衡在穩定性、毫秒級切換、一站式安全能力上的價值,短期還是替代不了。

至於”F5″這個名字,從公司變成品類的過程本身就很說明問題——當一個產品被當作動詞用的時候,它就已經贏得了這個市場。

四層看路牌,七層拆包裹;性能選四層,花活選七層。

參考:F5 BIG-IP LTM 官方資料、《網絡運維與管理》F5 負載均衡案例、四層/七層負載均衡技術對比