負載均衡詳解
@(Linux服務)[負載均衡詳解]
負載均衡詳解
負載均衡簡介
?負載均衡 建立在現有網絡結構之上,它提供了一種廉價有效透明的方法擴展網絡設備和服務器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性。我們比較常用的例如:HAPoryx、LVS、nginx這三種。
負載均衡分類
?我們最常見的負載均衡通常是四層和七層負載均衡。下面介紹四種:
二層負載均衡
?負載均衡服務器對外依然提供一個VIP(虛擬IP),在集群中不同的機器采用相同IP地址,但是機器的MAC地址不一樣。當負載均衡服務器接收到請求之后,通過改寫報文的目標MAC地址的方式將請求轉發到目標機器實現負載均衡。
三層負載均衡
?和二層負載均衡類似,負載均衡服務器對外提供一個VIP(虛擬IP),但是集群中不同的機器采用不同的IP地址。負載均衡服務器接受到請求之后,根據不同的負載均衡算法,通過ip將請求轉發至不同的真實服務器。
四層負載均衡
?四層負載均衡工作在OSI模型的傳輸層,由于在傳輸層,只有TCP/UDP協議,這兩種協議中除了包含源IP、目標IP以外,還包含源端口以及目的端口號。四層負載均衡服務器在接受到客戶端請求后,以后通過修改數據包的地址信息(IP+端口號)將流量轉發到應用服務器。
七層負載均衡工作在OSI模型的應用層,應用層協議較多,常用http、radiuus、dns等。七層負載均衡就可以基于這些協議來負載。這些應用層協議中包含很多有意義的內容。比如同一個web服務器的負載均衡,除了根據IP加端口進行負載外,還可以根據七層的URL、瀏覽器類別、語言來決定是否要進行負載均衡。
對于一般的應用來說,有nginx就夠了。nginx也可以用于七層負載均衡。但是對于一些大的網站。一般采用的是DNS+四層負載均衡+七層負載均衡的方式進行多層次負載均衡。
四層、七層負載均衡對比
所謂的四層即傳輸層,就是基于IP+端口的負載均衡(修改包頭目標地址+修改源地址轉發);
七層即應用層,即使基于URL等應用層信息的負載均衡(proxy code代理);
二層負載均衡,即基于MAC地址
三層負載均衡基于IP;
也可以這樣理解:
二層負載均衡會通過一個虛擬的MAC地址接受請求,然后在分配到真實的MAC地址;
三層負載均衡通過一個虛擬的IP地址接收請求,然后在分配到真是的IP地址;
四層負載均衡虛擬 IP + 端口接收請求,然后再分配到真實的服務器;
七層負載均衡通過虛擬的 URL 或主機名接收請求,然后再分配到真實的服務器。
?所謂的四到七層負載均衡,就是在對后臺的服務器進行負載均衡時,依據四層的信息或七層的信息來決定怎么樣轉發流量。
四層負載均衡就是通過發布的三層地址(VIP),然后加四層的端口號來決定那些流量需要做負載均衡。對需要處理的流量進行 NAT 處理,轉發至后臺服務器,并記錄下這個 TCP 或者 UDP 的流量是由哪臺服務器處理的,
后續這個連接的所有流量都同樣轉發到同一臺服務器處理。
七層的負載均衡,就是在四層的基礎上(沒有四層是絕對不可能有七層的),再考慮應用層的特征, 比如同一個 Web 服務器的負載均衡,除了根據 VIP 加 80 端口辨別是否需要處理的流量, 還可根據七層的 URL、瀏覽器類別、語言來決定是否要進行負載均衡。
負載均衡器通常成為四層交換機或七層交換機
四層交換機主要分析IP層及TCP/UDP層,實現四層流量負載均衡。七層交換機除了支持四層負載均衡以外,還有分析應用層的信息,如HTTP協議URL或者Cookie信息。
要明白 4 層負載均衡本質是轉發,而 7 層負載本質是內容交換和代理
四層與七層技術原理上的區別
四層負載均衡:
負載均衡設備在接收到第一個來自客戶端的 SYN 請求時,選擇一個最佳的服務器, 并對報文中的目標 IP 地址進行修改(改為后端服務器 IP),直接轉發給該服務器。 TCP 的連接建立,即三次握手是客戶端和服務器直接建立的,負載均衡設備只是起到一個類似路由器的轉發動作。
為保證服務器回包可以正確返回給負載均衡設備,在轉發報文的同時可能還會對報文原來的源地址進行修改。
七層負載均衡:
主要通過報文中的真正有意義的應用層內容,負載均衡設備如果要根據真正的應用層內容再選擇服務器,只能先代理最終的服務器和客戶端建立連接(TCP 三次握手)后,才可能接收到客戶端發送的真正應用層內容的報文, 然后再根據該報文中的特定字段,再加上負載均衡設備設置的服務器選擇方式,決定最終選擇的內部服務器。
七層應用需要考慮的問題
七層應用的確可以提高流量智能化,同時必不可免的帶來設備配置復雜,負載均衡壓力增高以及故障排查上的復雜性等問題。在設計系統時需要考慮四層七層同時應用的混雜情況。
是否真的可以提高安全性。例如 SYN Flood 攻擊,七層模式的確將這些流量從服務器屏蔽,但負載均衡設備本身要有強大的抗 DDoS 能力,
否則即使服務器正常而作為中樞調度的負載均衡設備故障也會導致整個應用的崩潰。
是否有足夠的靈活度。七層應用的優勢是可以讓整個應用的流量智能化,但是負載均衡設備需要提供完善的七層功能,滿足客戶根據不同情況的基于應用的調度。
最簡單的一個考核就是能否取代后臺 Nginx 或者 Apache 等服務器上的調度功能。
能夠提供一個七層應用開發接口的負載均衡設備,可以讓客戶根據需求任意設定功能,才真正有可能提供強大的靈活性和智能性。

浙公網安備 33010602011771號