發(fā)布者:售前毛毛 | 本文章發(fā)表于:2022-06-10 閱讀數(shù):10798
在業(yè)務初期,我們一般會先使用單臺服務器對外提供服務。隨著業(yè)務流量越來越大,單臺服務器無論如何優(yōu)化,無論采用多好的硬件,總會有性能天花板,當單服務器的性能無法滿足業(yè)務需求時,就需要把多臺服務器組成集群系統(tǒng)提高整體的處理性能。
基于上述需求,我們要使用統(tǒng)一的流量入口來對外提供服務,本質(zhì)上就是需要一個流量調(diào)度器,通過均衡的算法,將用戶大量的請求流量均衡地分發(fā)到集群中不同的服務器上。這其實就是我們今天要說的負載均衡,什么是負載均衡?
使用負載均衡可以給我們帶來的幾個好處:
提高了系統(tǒng)的整體性能;
提高了系統(tǒng)的擴展性;
提高了系統(tǒng)的可用性;
負載均衡類型
什么是負載均衡?廣義上的負載均衡器大概可以分為 3 類,包括:DNS 方式實現(xiàn)負載均衡、硬件負載均衡、軟件負載均衡。
(一)DNS 實現(xiàn)負載均衡
DNS 實現(xiàn)負載均衡是最基礎簡單的方式。一個域名通過 DNS 解析到多個 IP,每個 IP 對應不同的服務器實例,這樣就完成了流量的調(diào)度,雖然沒有使用常規(guī)的負載均衡器,但實現(xiàn)了簡單的負載均衡功能。
通過 DNS 實現(xiàn)負載均衡的方式,最大的優(yōu)點就是實現(xiàn)簡單,成本低,無需自己開發(fā)或維護負載均衡設備,不過存在一些缺點:
①服務器故障切換延遲大,服務器升級不方便。我們知道 DNS 與用戶之間是層層的緩存,即便是在故障發(fā)生時及時通過 DNS 修改或摘除故障服務器,但中間經(jīng)過運營商的 DNS 緩存,且緩存很有可能不遵循 TTL 規(guī)則,導致 DNS 生效時間變得非常緩慢,有時候一天后還會有些許的請求流量。
②流量調(diào)度不均衡,粒度太粗。DNS 調(diào)度的均衡性,受地區(qū)運營商 LocalDNS 返回 IP 列表的策略有關系,有的運營商并不會輪詢返回多個不同的 IP 地址。另外,某個運營商 LocalDNS 背后服務了多少用戶,這也會構成流量調(diào)度不均的重要因素。
③流量分配策略太簡單,支持的算法太少。DNS 一般只支持 rr 的輪詢方式,流量分配策略比較簡單,不支持權重、Hash 等調(diào)度算法。
④DNS 支持的 IP 列表有限制。我們知道 DNS 使用 UDP 報文進行信息傳遞,每個 UDP 報文大小受鏈路的 MTU 限制,所以報文中存儲的 IP 地址數(shù)量也是非常有限的,阿里 DNS 系統(tǒng)針對同一個域名支持配置 10 個不同的 IP 地址。
(二)硬件負載均衡
硬件負載均衡是通過專門的硬件設備來實現(xiàn)負載均衡功能,是專用的負載均衡設備。目前業(yè)界典型的硬件負載均衡設備有兩款:F5和A10。
這類設備性能強勁、功能強大,但價格非常昂貴,一般只有土豪公司才會使用此類設備,中小公司一般負擔不起,業(yè)務量沒那么大,用這些設備也是挺浪費的。
硬件負載均衡的優(yōu)點:
功能強大:全面支持各層級的負載均衡,支持全面的負載均衡算法。
性能強大:性能遠超常見的軟件負載均衡器。
穩(wěn)定性高:商用硬件負載均衡,經(jīng)過了良好的嚴格測試,經(jīng)過大規(guī)模使用,穩(wěn)定性高。
安全防護:還具備防火墻、防 DDoS 攻擊等安全功能,以及支持 SNAT 功能。
硬件負載均衡的缺點也很明顯:
①價格貴;
②擴展性差,無法進行擴展和定制;
③調(diào)試和維護比較麻煩,需要專業(yè)人員;
(三)軟件負載均衡
軟件負載均衡,可以在普通的服務器上運行負載均衡軟件,實現(xiàn)負載均衡功能。目前常見的有 Nginx、HAproxy、LVS。其中的區(qū)別:
Nginx:七層負載均衡,支持 HTTP、E-mail 協(xié)議,同時也支持 4 層負載均衡;
HAproxy:支持七層規(guī)則的,性能也很不錯。OpenStack 默認使用的負載均衡軟件就是 HAproxy;
LVS:運行在內(nèi)核態(tài),性能是軟件負載均衡中最高的,嚴格來說工作在三層,所以更通用一些,適用各種應用服務。
軟件負載均衡的優(yōu)點:
易操作:無論是部署還是維護都相對比較簡單;
便宜:只需要服務器的成本,軟件是免費的;
靈活:4 層和 7 層負載均衡可以根據(jù)業(yè)務特點進行選擇,方便進行擴展和定制功能。
負載均衡LVS
軟件負載均衡主要包括:Nginx、HAproxy 和 LVS,三款軟件都比較常用。四層負載均衡基本上都會使用 LVS,據(jù)了解 BAT 等大廠都是 LVS 重度使用者,就是因為 LVS 非常出色的性能,能為公司節(jié)省巨大的成本。
LVS,全稱 Linux Virtual Server 是由國人章文嵩博士發(fā)起的一個開源的項目,在社區(qū)具有很大的熱度,是一個基于四層、具有強大性能的反向代理服務器。
它現(xiàn)在是標準內(nèi)核的一部分,它具備可靠性、高性能、可擴展性和可操作性的特點,從而以低廉的成本實現(xiàn)最優(yōu)的性能。
Netfilter基礎原理
LVS 是基于 Linux 內(nèi)核中 netfilter 框架實現(xiàn)的負載均衡功能,所以要學習 LVS 之前必須要先簡單了解 netfilter 基本工作原理。netfilter 其實很復雜,平時我們說的 Linux 防火墻就是 netfilter,不過我們平時操作的都是 iptables,iptables 只是用戶空間編寫和傳遞規(guī)則的工具而已,真正工作的是 netfilter。通過下圖可以簡單了解下 netfilter 的工作機制:
netfilter 是內(nèi)核態(tài)的 Linux 防火墻機制,作為一個通用、抽象的框架,提供了一整套的 hook 函數(shù)管理機制,提供諸如數(shù)據(jù)包過濾、網(wǎng)絡地址轉(zhuǎn)換、基于協(xié)議類型的連接跟蹤的功能。
通俗點講,就是 netfilter 提供一種機制,可以在數(shù)據(jù)包流經(jīng)過程中,根據(jù)規(guī)則設置若干個關卡(hook 函數(shù))來執(zhí)行相關的操作。netfilter 總共設置了 5 個點,包括:
①PREROUTING :剛剛進入網(wǎng)絡層,還未進行路由查找的包,通過此處
②INPUT :通過路由查找,確定發(fā)往本機的包,通過此處
③FORWARD :經(jīng)路由查找后,要轉(zhuǎn)發(fā)的包,在POST_ROUTING之前
④OUTPUT :從本機進程剛發(fā)出的包,通過此處
⑤POSTROUTING :進入網(wǎng)絡層已經(jīng)經(jīng)過路由查找,確定轉(zhuǎn)發(fā),將要離開本設備的包,通過此處
當一個數(shù)據(jù)包進入網(wǎng)卡,經(jīng)過鏈路層之后進入網(wǎng)絡層就會到達 PREROUTING,接著根據(jù)目標 IP 地址進行路由查找,如果目標 IP 是本機,數(shù)據(jù)包繼續(xù)傳遞到 INPUT 上,經(jīng)過協(xié)議棧后根據(jù)端口將數(shù)據(jù)送到相應的應用程序。
應用程序處理請求后將響應數(shù)據(jù)包發(fā)送到 OUTPUT 上,最終通過 POSTROUTING 后發(fā)送出網(wǎng)卡。
如果目標 IP 不是本機,而且服務器開啟了 forward 參數(shù),就會將數(shù)據(jù)包遞送給 FORWARD 上,最后通過 POSTROUTING 后發(fā)送出網(wǎng)卡。
LVS基礎原理
LVS 是基于 netfilter 框架,主要工作于 INPUT 鏈上,在 INPUT 上注冊 ip_vs_in HOOK 函數(shù),進行 IPVS 主流程,大概原理如圖所示:
當用戶訪問 www.sina.com.cn 時,用戶數(shù)據(jù)通過層層網(wǎng)絡,最后通過交換機進入 LVS 服務器網(wǎng)卡,并進入內(nèi)核網(wǎng)絡層。
進入 PREROUTING 后經(jīng)過路由查找,確定訪問的目的 VIP 是本機 IP 地址,所以數(shù)據(jù)包進入到 INPUT 鏈上
LVS 是工作在 INPUT 鏈上,會根據(jù)訪問的 IP:Port 判斷請求是否是 LVS 服務,如果是則進行 LVS 主流程,強行修改數(shù)據(jù)包的相關數(shù)據(jù),并將數(shù)據(jù)包發(fā)往 POSTROUTING 鏈上。
POSTROUTING 上收到數(shù)據(jù)包后,根據(jù)目標 IP 地址(后端真實服務器),通過路由選路,將數(shù)據(jù)包最終發(fā)往后端的服務器上。
開源 LVS 版本有 3 種工作模式,每種模式工作原理都不同,每種模式都有自己的優(yōu)缺點和不同的應用場景,包括以下三種模式:
①DR 模式
②NAT 模式
③Tunnel 模式
這里必須要提另外一種模式是 FullNAT,這個模式在開源版本中是模式?jīng)]有的。這個模式最早起源于百度,后來又在阿里發(fā)揚光大,由阿里團隊開源,代碼地址如下:
https://github.com/alibaba/lvs
LVS 官網(wǎng)也有相關下載地址,不過并沒有合進到內(nèi)核主線版本。
后面會有專門章節(jié)詳細介紹 FullNAT 模式。下邊分別就 DR、NAT、Tunnel 模式分別詳細介紹原理。
DR 模式實現(xiàn)原理
LVS 基本原理圖中描述的比較簡單,表述的是比較通用流程。下邊會針對 DR 模式的具體實現(xiàn)原理,詳細的闡述 DR 模式是如何工作的。
(一)實現(xiàn)原理過程
① 當客戶端請求 www.sina.com.cn 主頁,請求數(shù)據(jù)包穿過網(wǎng)絡到達 Sina 的 LVS 服務器網(wǎng)卡:源 IP 是客戶端 IP 地址 CIP,目的 IP 是新浪對外的服務器 IP 地址,也就是 VIP;此時源 MAC 地址是 CMAC,其實是 LVS 連接的路由器的 MAC 地址(為了容易理解記為 CMAC),目標 MAC 地址是 VIP 對應的 MAC,記為 VMAC。
② 數(shù)據(jù)包經(jīng)過鏈路層到達 PREROUTING 位置(剛進入網(wǎng)絡層),查找路由發(fā)現(xiàn)目的 IP 是 LVS 的 VIP,就會遞送到 INPUT 鏈上,此時數(shù)據(jù)包 MAC、IP、Port 都沒有修改。
③ 數(shù)據(jù)包到達 INPUT 鏈,INPUT 是 LVS 主要工作的位置。此時 LVS 會根據(jù)目的 IP 和 Port 來確認是否是 LVS 定義的服務,如果是定義過的 VIP 服務,就會根據(jù)配置信息,從真實服務器列表 中選擇一個作為 RS1,然后以 RS1 作為目標查找 Out 方向的路由,確定一下跳信息以及數(shù)據(jù)包要通過哪個網(wǎng)卡發(fā)出。最后將數(shù)據(jù)包投遞到 OUTPUT 鏈上。
④ 數(shù)據(jù)包通過 POSTROUTING 鏈后,從網(wǎng)絡層轉(zhuǎn)到鏈路層,將目的 MAC 地址修改為 RealServer 服務器 MAC 地址,記為 RMAC;而源 MAC 地址修改為 LVS 與 RS 同網(wǎng)段的 selfIP 對應的 MAC 地址,記為 DMAC。此時,數(shù)據(jù)包通過交換機轉(zhuǎn)發(fā)給了 RealServer 服務器(注:為了簡單圖中沒有畫交換機)。
⑤ 請求數(shù)據(jù)包到達后端真實服務器后,鏈路層檢查目的 MAC 是自己網(wǎng)卡地址。到了網(wǎng)絡層,查找路由,目的 IP 是 VIP(lo 上配置了 VIP),判定是本地主機的數(shù)據(jù)包,經(jīng)過協(xié)議??截愔翍贸绦颍ū热?nginx 服務器),nginx 響應請求后,產(chǎn)生響應數(shù)據(jù)包。
然后以 CIP 查找出方向的路由,確定下一跳信息和發(fā)送網(wǎng)卡設備信息。此時數(shù)據(jù)包源、目的 IP 分別是 VIP、CIP,而源 MAC 地址是 RS1 的 RMAC,目的 MAC 是下一跳(路由器)的 MAC 地址,記為 CMAC(為了容易理解,記為 CMAC)。然后數(shù)據(jù)包通過 RS 相連的路由器轉(zhuǎn)發(fā)給真正客戶端,完成了請求響應的全過程。
從整個過程可以看出,DR 模式 LVS 邏輯比較簡單,數(shù)據(jù)包通過直接路由方式轉(zhuǎn)發(fā)給后端服務器,而且響應數(shù)據(jù)包是由 RS 服務器直接發(fā)送給客戶端,不經(jīng)過 LVS。
我們知道通常請求數(shù)據(jù)包會比較小,響應報文較大,經(jīng)過 LVS 的數(shù)據(jù)包基本上都是小包,所以這也是 LVS 的 DR 模式性能強大的主要原因。
(二)優(yōu)缺點和使用場景
DR 模式的優(yōu)點
1.響應數(shù)據(jù)不經(jīng)過 lvs,性能高
2.對數(shù)據(jù)包修改小,信息保存完整(攜帶客戶端源 IP)
DR 模式的缺點
1.lvs 與 rs 必須在同一個物理網(wǎng)絡(不支持跨機房)
2.服務器上必須配置 lo 和其它內(nèi)核參數(shù)
3.不支持端口映射
DR 模式的使用場景
如果對性能要求非常高,可以首選 DR 模式,而且可以透傳客戶端源 IP 地址。
NAT 模式實現(xiàn)原理
(一)實現(xiàn)原理與過程
① 用戶請求數(shù)據(jù)包經(jīng)過層層網(wǎng)絡,到達 lvs 網(wǎng)卡,此時數(shù)據(jù)包源 IP 是 CIP,目的 IP 是 VIP。
② 經(jīng)過網(wǎng)卡進入網(wǎng)絡層 prerouting 位置,根據(jù)目的 IP 查找路由,確認是本機 IP,將數(shù)據(jù)包轉(zhuǎn)發(fā)到 INPUT 上,此時源、目的 IP 都未發(fā)生變化。
③ 到達 lvs 后,通過目的 IP 和目的 port 查找是否為 IPVS 服務。若是 IPVS 服務,則會選擇一個 RS 作為后端服務器,將數(shù)據(jù)包目的 IP 修改為 RIP,并以 RIP 為目的 IP 查找路由信息,確定下一跳和出口信息,將數(shù)據(jù)包轉(zhuǎn)發(fā)至 output 上。
④ 修改后的數(shù)據(jù)包經(jīng)過 postrouting 和鏈路層處理后,到達 RS 服務器,此時的數(shù)據(jù)包源 IP 是 CIP,目的 IP 是 RIP。
⑤ 到達 RS 服務器的數(shù)據(jù)包經(jīng)過鏈路層和網(wǎng)絡層檢查后,被送往用戶空間 nginx 程序。nginx 程序處理完畢,發(fā)送響應數(shù)據(jù)包,由于 RS 上默認網(wǎng)關配置為 lvs 設備 IP,所以 nginx 服務器會將數(shù)據(jù)包轉(zhuǎn)發(fā)至下一跳,也就是 lvs 服務器。此時數(shù)據(jù)包源 IP 是 RIP,目的 IP 是 CIP。
⑥ lvs 服務器收到 RS 響應數(shù)據(jù)包后,根據(jù)路由查找,發(fā)現(xiàn)目的 IP 不是本機 IP,且 lvs 服務器開啟了轉(zhuǎn)發(fā)模式,所以將數(shù)據(jù)包轉(zhuǎn)發(fā)給 forward 鏈,此時數(shù)據(jù)包未作修改。
⑦ lvs 收到響應數(shù)據(jù)包后,根據(jù)目的 IP 和目的 port 查找服務和連接表,將源 IP 改為 VIP,通過路由查找,確定下一跳和出口信息,將數(shù)據(jù)包發(fā)送至網(wǎng)關,經(jīng)過復雜的網(wǎng)絡到達用戶客戶端,最終完成了一次請求和響應的交互。
NAT 模式雙向流量都經(jīng)過 LVS,因此 NAT 模式性能會存在一定的瓶頸。不過與其它模式區(qū)別的是,NAT 支持端口映射,且支持 windows 操作系統(tǒng)。
NAT 模式優(yōu)點
1.能夠支持 windows 操作系統(tǒng)
2.支持端口映射。
如果 rs 端口與 vport 不一致,lvs 除了修改目的 IP,也會修改 dport 以支持端口映射。
NAT 模式缺點
1.后端 RS 需要配置網(wǎng)關
2.雙向流量對 lvs 負載壓力比較大
NAT 模式的使用場景
如果你是 windows 系統(tǒng),使用 lvs 的話,則必須選擇 NAT 模式了。
Tunnel 模式在國內(nèi)使用的比較少,不過據(jù)說騰訊使用了大量的 Tunnel 模式。它也是一種單臂的模式,只有請求數(shù)據(jù)會經(jīng)過 lvs,響應數(shù)據(jù)直接從后端服務器發(fā)送給客戶端,性能也很強大,同時支持跨機房。下邊繼續(xù)看圖分析原理。
(一)實現(xiàn)原理與過程
① 用戶請求數(shù)據(jù)包經(jīng)過多層網(wǎng)絡,到達 lvs 網(wǎng)卡,此時數(shù)據(jù)包源 IP 是 cip,目的 ip 是 vip。
② 經(jīng)過網(wǎng)卡進入網(wǎng)絡層 prerouting 位置,根據(jù)目的 ip 查找路由,確認是本機 ip,將數(shù)據(jù)包轉(zhuǎn)發(fā)到 input 鏈上,到達 lvs,此時源、目的 ip 都未發(fā)生變化。
③ 到達 lvs 后,通過目的 ip 和目的 port 查找是否為 IPVS 服務。若是 IPVS 服務,則會選擇一個 rs 作為后端服務器,以 rip 為目的 ip 查找路由信息,確定下一跳、dev 等信息,然后 IP 頭部前邊額外增加了一個 IP 頭(以 dip 為源,rip 為目的 ip),將數(shù)據(jù)包轉(zhuǎn)發(fā)至 output 上。
④ 數(shù)據(jù)包根據(jù)路由信息經(jīng)最終經(jīng)過 lvs 網(wǎng)卡,發(fā)送至路由器網(wǎng)關,通過網(wǎng)絡到達后端服務器。
⑤ 后端服務器收到數(shù)據(jù)包后,ipip 模塊將 Tunnel 頭部卸載,正??吹降脑?ip 是 cip,目的 ip 是 vip,由于在 tunl0 上配置 vip,路由查找后判定為本機 ip,送往應用程序。應用程序 nginx 正常響應數(shù)據(jù)后以 vip 為源 ip,cip 為目的 ip 數(shù)據(jù)包發(fā)送出網(wǎng)卡,最終到達客戶端。
Tunnel 模式具備 DR 模式的高性能,又支持跨機房訪問,聽起來比較完美。不過國內(nèi)運營商有一定特色性,比如 RS 的響應數(shù)據(jù)包的源 IP 為 VIP,VIP 與后端服務器有可能存在跨運營商的情況,很有可能被運營商的策略封掉,Tunnel 在生產(chǎn)環(huán)境確實沒有使用過,在國內(nèi)推行 Tunnel 可能會有一定的難度吧。
(二)優(yōu)點、缺點與使用場景
Tunnel 模式的優(yōu)點
1.單臂模式,對 lvs 負載壓力小
2.對數(shù)據(jù)包修改較小,信息保存完整
3.可跨機房(不過在國內(nèi)實現(xiàn)有難度)
Tunnel 模式的缺點
1.需要在后端服務器安裝配置 ipip 模塊
2.需要在后端服務器 tunl0 配置 vip
3.隧道頭部的加入可能導致分片,影響服務器性能
4.隧道頭部 IP 地址固定,后端服務器網(wǎng)卡 hash 可能不均
5.不支持端口映射
Tunnel 模式的使用場景
理論上,如果對轉(zhuǎn)發(fā)性能要求較高,且有跨機房需求,Tunnel 可能是較好的選擇。
以上是主題為:什么是負載均衡?的教學全部內(nèi)容,希望對您有幫助!
快快網(wǎng)絡致力于安全防護、服務器高防、網(wǎng)絡高防、ddos防護、cc防護、dns防護、防劫持、高防服務器、網(wǎng)站防護等方面的服務,自研的WAF提供任意CC和DDOS攻擊防御。
更多詳情聯(lián)系客服QQ 537013901
高防CDN可以解決哪些問題?
在攻擊橫行的現(xiàn)代互聯(lián)網(wǎng)環(huán)境下,怎么才能避免因為攻擊導致的宕機呢?如何更好的解決訪問并發(fā)量高的問題呢?減輕網(wǎng)站服務器的壓力,同時還可以隱藏網(wǎng)站源IP,只要找不到源IP攻擊就沒辦法精準的攻擊到,同時,還能提高用戶訪問響應速度和命中率,不用直接訪問網(wǎng)站源服務器。高防CDN可以解決哪些問題?高防CDN能夠解決很多網(wǎng)站的問題,比如DDoS攻擊、CC攻擊、惡意爬蟲訪問等。它能夠提高網(wǎng)站的訪問速度和穩(wěn)定性,同時也能夠保護網(wǎng)站用戶的隱私和安全。高防CDN能夠為網(wǎng)站提供多種防御措施,包括源站防護、節(jié)點防護、流量清洗、智能識別等,使得網(wǎng)站在面臨各種攻擊時能夠保持正常的運行狀態(tài)。因此,高防CDN已成為越來越多企業(yè)和機構在網(wǎng)絡安全方面的首選。高防CDN可以解決網(wǎng)站的哪些問題?1、完全不用擔心自己網(wǎng)站訪客來源,完美解決跨網(wǎng)絡運營商數(shù)據(jù)傳輸問題,在任何時間,任何地點,任何網(wǎng)絡運營商,都能快速打開網(wǎng)站。2、大幅度提高網(wǎng)站加載速度,減少因網(wǎng)絡等問題導致的頁面打開慢的問題,提高用戶對網(wǎng)站的好感度。高防CDN可以解決哪些問題?3、給網(wǎng)站直接帶來的好處就是:流量,咨詢量,客戶量,成單量,都會得到大幅度提升。4、高防CDN技術以其全新加速理論,保障了對動態(tài)網(wǎng)站高效穩(wěn)定的加速效果。5、高防CDN技術擁有高防屬性,可保護加速站點,大大減少網(wǎng)站被攻擊次數(shù),提高黑客攻擊網(wǎng)站難度,提高站點安全性。CDN加速可以解決哪些痛點?高防CDN可以解決網(wǎng)站的哪些問題?1、每個網(wǎng)站的帶寬資源有限,訪問流量過大,就很容易出現(xiàn)訪問慢、卡頓,甚至打不開等現(xiàn)象。2、如果你網(wǎng)站的服務器配置比較低、性能差,那么承載能力就不行,可能由于突發(fā)的流量,導致網(wǎng)站無法打開。3、你的網(wǎng)站在跨地區(qū),跨運營商訪問方面,體驗較差。4、網(wǎng)站有很多靜態(tài)和動態(tài)的頁面內(nèi)容,用戶每次訪問網(wǎng)站都需要加載太多的資源,導致加載時間過長,容易出現(xiàn)頁面卡頓現(xiàn)象。高防CDN可以解決哪些問題?高防安全專家快快網(wǎng)絡!新一代云安全引領者-----------------快快裸金屬,正式上線!快快i9,才是真正i9聯(lián)系專屬售前:快快網(wǎng)絡朵兒,企鵝:537013900,CALL:18050128237
游戲盾SDK有哪些功能?
隨著游戲行業(yè)的發(fā)展和玩家人數(shù)的不斷增加,游戲服務器面臨的安全威脅也在增加。游戲盾SDK是一款為游戲開發(fā)者量身定制的防護工具,旨在幫助游戲應用抵御多種攻擊,提升游戲安全性和用戶體驗。通過集成游戲盾SDK,游戲運營商可以有效防護各類惡意攻擊,確保游戲的穩(wěn)定運行。一、DDoS攻擊防護DDoS(分布式拒絕服務)攻擊是游戲服務器常見的安全威脅之一,會導致游戲服務器資源被大量惡意流量耗盡,最終影響正常玩家的登錄和游戲體驗。游戲盾SDK通過智能識別并阻止異常流量,有效防止DDoS攻擊的發(fā)生。流量識別與過濾:游戲盾SDK能夠自動識別正常和異常流量,快速清洗掉惡意請求,保障服務器資源。動態(tài)防護策略:SDK根據(jù)實時監(jiān)控數(shù)據(jù)調(diào)整防護策略,確保防護的靈活性和適用性,防止高流量攻擊對游戲性能的影響。二、CC攻擊防護CC(Challenge Collapsar)攻擊主要針對服務器的計算資源,通過大量的惡意請求耗盡服務器資源,使正常玩家的請求得不到及時響應。游戲盾SDK可以識別并攔截異常請求,防止服務器因負載過重而影響游戲的正常運行。請求頻率控制:SDK能夠?qū)崟r監(jiān)控請求頻率,對于頻繁訪問的可疑IP進行限制,有效減少CC攻擊帶來的系統(tǒng)資源消耗。IP信譽系統(tǒng):游戲盾SDK內(nèi)置IP信譽數(shù)據(jù)庫,能夠識別高風險IP,并對這些IP的訪問進行限制,減少惡意訪問的概率。三、玩家身份驗證為了確保游戲的安全性和公平性,游戲盾SDK提供了多種身份驗證功能,幫助游戲運營商識別并管理玩家的行為。這些功能可以有效防止惡意用戶進行違規(guī)操作,保護游戲的正常秩序。雙因子認證:通過結合密碼和動態(tài)驗證碼的方式,增加了玩家登錄的安全性,防止賬號被盜用。行為監(jiān)測:SDK可以監(jiān)測玩家的異常行為,如短時間內(nèi)頻繁登錄或切換IP,及時標記并限制異常賬號。四、實時監(jiān)控與數(shù)據(jù)分析游戲盾SDK具備實時監(jiān)控功能,能夠?qū)τ螒蚍掌鞯脑L問流量、攻擊情況和異常事件進行全程跟蹤。開發(fā)者可以通過可視化的數(shù)據(jù)分析了解服務器的安全狀況,及時發(fā)現(xiàn)并應對潛在威脅。實時告警:當檢測到異常流量或攻擊事件時,SDK會立即觸發(fā)告警通知,幫助開發(fā)者快速采取防護措施。安全報告:SDK會生成定期的安全報告,包含各類攻擊的發(fā)生頻率、流量波動和安全事件詳情,方便運營商分析安全趨勢。五、低延遲防護與優(yōu)化在防護安全的同時,游戲盾SDK注重低延遲處理,能夠保證防護過程不影響玩家的游戲體驗。特別是對實時對戰(zhàn)類的游戲,SDK的低延遲優(yōu)化功能極為重要,確保玩家操作的及時響應。邊緣計算防護:通過分布式節(jié)點在邊緣層進行流量處理,減少防護過程中的網(wǎng)絡延遲。智能調(diào)控:SDK會智能選擇最優(yōu)路徑進行流量清洗和防護,降低防護措施對玩家操作的影響。游戲盾SDK通過多層次、多功能的防護策略,為游戲服務器提供了全面的安全保障。它不僅能夠防止常見的DDoS、CC攻擊,還具備身份驗證、實時監(jiān)控等功能,進一步優(yōu)化了用戶體驗。對于游戲開發(fā)者和運營商而言,選擇并集成游戲盾SDK可以顯著提升游戲的安全性和穩(wěn)定性,為玩家提供一個安全、公平的游戲環(huán)境。
游戲盾SDK有什么功能
游戲盾SDK通過流量清洗功能,可以過濾掉惡意流量,并確保游戲服務器只接收合法的流量。就好比是一個保安,站在游戲服務器的大門前,檢查每個進入的流量是否合法。如果發(fā)現(xiàn)可疑流量,保安就會將其攔下,不準進入游戲服務器。入侵檢測和防御:游戲盾SDK可以檢測和防御各種網(wǎng)絡攻擊,例如DDoS攻擊、SYN洪泛攻擊、UDP洪泛攻擊等。就好比是一個監(jiān)控攝像頭,時刻監(jiān)視著游戲服務器周圍的網(wǎng)絡環(huán)境。如果發(fā)現(xiàn)有攻擊者企圖入侵游戲服務器,監(jiān)控攝像頭就會發(fā)出警報,并通知保安采取行動。應用層防護:游戲盾SDK可以檢測和防御各種應用層攻擊,例如SQL注入攻擊、跨站腳本攻擊、緩沖區(qū)溢出攻擊等。就好比是一個防火墻,安裝在游戲服務器的入口處。防火墻會檢查每個進入游戲服務器的數(shù)據(jù)包,如果發(fā)現(xiàn)數(shù)據(jù)包中含有惡意代碼,防火墻就會將其攔截下來,不準進入游戲服務器。外掛檢測:游戲盾SDK可以檢測并阻止外掛的使用,確保游戲環(huán)境的公平性。就好比是一個反外掛系統(tǒng),時刻掃描游戲服務器中的玩家行為。如果發(fā)現(xiàn)有玩家使用外掛,反外掛系統(tǒng)就會將其踢出游戲服務器。防盜號:游戲盾SDK可以防止玩家的賬號被盜,并提供賬號找回服務。就好比是一個保險箱,用來存放玩家的賬號信息。保險箱有堅固的鎖,可以防止其他人打開。即使有人偷走了保險箱,他們也無法打開保險箱,拿到玩家的賬號信息。防沉迷:游戲盾SDK可以限制未成年玩家的游戲時間,并防止他們沉迷于游戲。就好比是一個家長,可以控制孩子玩游戲的時間。家長可以設置一個時間限制,當孩子玩游戲的時間達到限制時,游戲盾SDK就會自動下線孩子。游戲盾SDK通過以上方式防護網(wǎng)絡攻擊,就像是一個全副武裝的衛(wèi)士,時刻守護著游戲服務器的安全。它可以抵御各種網(wǎng)絡攻擊,確保游戲服務器的安全穩(wěn)定運行,并為玩家提供一個安全的游戲環(huán)境。
閱讀數(shù):10798 | 2022-06-10 10:59:16
閱讀數(shù):6771 | 2022-11-24 17:19:37
閱讀數(shù):5954 | 2022-09-29 16:02:15
閱讀數(shù):5344 | 2021-08-27 14:37:33
閱讀數(shù):4618 | 2021-09-24 15:46:06
閱讀數(shù):4303 | 2021-06-10 09:52:18
閱讀數(shù):4230 | 2021-05-28 17:17:40
閱讀數(shù):4087 | 2021-05-20 17:22:42
閱讀數(shù):10798 | 2022-06-10 10:59:16
閱讀數(shù):6771 | 2022-11-24 17:19:37
閱讀數(shù):5954 | 2022-09-29 16:02:15
閱讀數(shù):5344 | 2021-08-27 14:37:33
閱讀數(shù):4618 | 2021-09-24 15:46:06
閱讀數(shù):4303 | 2021-06-10 09:52:18
閱讀數(shù):4230 | 2021-05-28 17:17:40
閱讀數(shù):4087 | 2021-05-20 17:22:42
發(fā)布者:售前毛毛 | 本文章發(fā)表于:2022-06-10
在業(yè)務初期,我們一般會先使用單臺服務器對外提供服務。隨著業(yè)務流量越來越大,單臺服務器無論如何優(yōu)化,無論采用多好的硬件,總會有性能天花板,當單服務器的性能無法滿足業(yè)務需求時,就需要把多臺服務器組成集群系統(tǒng)提高整體的處理性能。
基于上述需求,我們要使用統(tǒng)一的流量入口來對外提供服務,本質(zhì)上就是需要一個流量調(diào)度器,通過均衡的算法,將用戶大量的請求流量均衡地分發(fā)到集群中不同的服務器上。這其實就是我們今天要說的負載均衡,什么是負載均衡?
使用負載均衡可以給我們帶來的幾個好處:
提高了系統(tǒng)的整體性能;
提高了系統(tǒng)的擴展性;
提高了系統(tǒng)的可用性;
負載均衡類型
什么是負載均衡?廣義上的負載均衡器大概可以分為 3 類,包括:DNS 方式實現(xiàn)負載均衡、硬件負載均衡、軟件負載均衡。
(一)DNS 實現(xiàn)負載均衡
DNS 實現(xiàn)負載均衡是最基礎簡單的方式。一個域名通過 DNS 解析到多個 IP,每個 IP 對應不同的服務器實例,這樣就完成了流量的調(diào)度,雖然沒有使用常規(guī)的負載均衡器,但實現(xiàn)了簡單的負載均衡功能。
通過 DNS 實現(xiàn)負載均衡的方式,最大的優(yōu)點就是實現(xiàn)簡單,成本低,無需自己開發(fā)或維護負載均衡設備,不過存在一些缺點:
①服務器故障切換延遲大,服務器升級不方便。我們知道 DNS 與用戶之間是層層的緩存,即便是在故障發(fā)生時及時通過 DNS 修改或摘除故障服務器,但中間經(jīng)過運營商的 DNS 緩存,且緩存很有可能不遵循 TTL 規(guī)則,導致 DNS 生效時間變得非常緩慢,有時候一天后還會有些許的請求流量。
②流量調(diào)度不均衡,粒度太粗。DNS 調(diào)度的均衡性,受地區(qū)運營商 LocalDNS 返回 IP 列表的策略有關系,有的運營商并不會輪詢返回多個不同的 IP 地址。另外,某個運營商 LocalDNS 背后服務了多少用戶,這也會構成流量調(diào)度不均的重要因素。
③流量分配策略太簡單,支持的算法太少。DNS 一般只支持 rr 的輪詢方式,流量分配策略比較簡單,不支持權重、Hash 等調(diào)度算法。
④DNS 支持的 IP 列表有限制。我們知道 DNS 使用 UDP 報文進行信息傳遞,每個 UDP 報文大小受鏈路的 MTU 限制,所以報文中存儲的 IP 地址數(shù)量也是非常有限的,阿里 DNS 系統(tǒng)針對同一個域名支持配置 10 個不同的 IP 地址。
(二)硬件負載均衡
硬件負載均衡是通過專門的硬件設備來實現(xiàn)負載均衡功能,是專用的負載均衡設備。目前業(yè)界典型的硬件負載均衡設備有兩款:F5和A10。
這類設備性能強勁、功能強大,但價格非常昂貴,一般只有土豪公司才會使用此類設備,中小公司一般負擔不起,業(yè)務量沒那么大,用這些設備也是挺浪費的。
硬件負載均衡的優(yōu)點:
功能強大:全面支持各層級的負載均衡,支持全面的負載均衡算法。
性能強大:性能遠超常見的軟件負載均衡器。
穩(wěn)定性高:商用硬件負載均衡,經(jīng)過了良好的嚴格測試,經(jīng)過大規(guī)模使用,穩(wěn)定性高。
安全防護:還具備防火墻、防 DDoS 攻擊等安全功能,以及支持 SNAT 功能。
硬件負載均衡的缺點也很明顯:
①價格貴;
②擴展性差,無法進行擴展和定制;
③調(diào)試和維護比較麻煩,需要專業(yè)人員;
(三)軟件負載均衡
軟件負載均衡,可以在普通的服務器上運行負載均衡軟件,實現(xiàn)負載均衡功能。目前常見的有 Nginx、HAproxy、LVS。其中的區(qū)別:
Nginx:七層負載均衡,支持 HTTP、E-mail 協(xié)議,同時也支持 4 層負載均衡;
HAproxy:支持七層規(guī)則的,性能也很不錯。OpenStack 默認使用的負載均衡軟件就是 HAproxy;
LVS:運行在內(nèi)核態(tài),性能是軟件負載均衡中最高的,嚴格來說工作在三層,所以更通用一些,適用各種應用服務。
軟件負載均衡的優(yōu)點:
易操作:無論是部署還是維護都相對比較簡單;
便宜:只需要服務器的成本,軟件是免費的;
靈活:4 層和 7 層負載均衡可以根據(jù)業(yè)務特點進行選擇,方便進行擴展和定制功能。
負載均衡LVS
軟件負載均衡主要包括:Nginx、HAproxy 和 LVS,三款軟件都比較常用。四層負載均衡基本上都會使用 LVS,據(jù)了解 BAT 等大廠都是 LVS 重度使用者,就是因為 LVS 非常出色的性能,能為公司節(jié)省巨大的成本。
LVS,全稱 Linux Virtual Server 是由國人章文嵩博士發(fā)起的一個開源的項目,在社區(qū)具有很大的熱度,是一個基于四層、具有強大性能的反向代理服務器。
它現(xiàn)在是標準內(nèi)核的一部分,它具備可靠性、高性能、可擴展性和可操作性的特點,從而以低廉的成本實現(xiàn)最優(yōu)的性能。
Netfilter基礎原理
LVS 是基于 Linux 內(nèi)核中 netfilter 框架實現(xiàn)的負載均衡功能,所以要學習 LVS 之前必須要先簡單了解 netfilter 基本工作原理。netfilter 其實很復雜,平時我們說的 Linux 防火墻就是 netfilter,不過我們平時操作的都是 iptables,iptables 只是用戶空間編寫和傳遞規(guī)則的工具而已,真正工作的是 netfilter。通過下圖可以簡單了解下 netfilter 的工作機制:
netfilter 是內(nèi)核態(tài)的 Linux 防火墻機制,作為一個通用、抽象的框架,提供了一整套的 hook 函數(shù)管理機制,提供諸如數(shù)據(jù)包過濾、網(wǎng)絡地址轉(zhuǎn)換、基于協(xié)議類型的連接跟蹤的功能。
通俗點講,就是 netfilter 提供一種機制,可以在數(shù)據(jù)包流經(jīng)過程中,根據(jù)規(guī)則設置若干個關卡(hook 函數(shù))來執(zhí)行相關的操作。netfilter 總共設置了 5 個點,包括:
①PREROUTING :剛剛進入網(wǎng)絡層,還未進行路由查找的包,通過此處
②INPUT :通過路由查找,確定發(fā)往本機的包,通過此處
③FORWARD :經(jīng)路由查找后,要轉(zhuǎn)發(fā)的包,在POST_ROUTING之前
④OUTPUT :從本機進程剛發(fā)出的包,通過此處
⑤POSTROUTING :進入網(wǎng)絡層已經(jīng)經(jīng)過路由查找,確定轉(zhuǎn)發(fā),將要離開本設備的包,通過此處
當一個數(shù)據(jù)包進入網(wǎng)卡,經(jīng)過鏈路層之后進入網(wǎng)絡層就會到達 PREROUTING,接著根據(jù)目標 IP 地址進行路由查找,如果目標 IP 是本機,數(shù)據(jù)包繼續(xù)傳遞到 INPUT 上,經(jīng)過協(xié)議棧后根據(jù)端口將數(shù)據(jù)送到相應的應用程序。
應用程序處理請求后將響應數(shù)據(jù)包發(fā)送到 OUTPUT 上,最終通過 POSTROUTING 后發(fā)送出網(wǎng)卡。
如果目標 IP 不是本機,而且服務器開啟了 forward 參數(shù),就會將數(shù)據(jù)包遞送給 FORWARD 上,最后通過 POSTROUTING 后發(fā)送出網(wǎng)卡。
LVS基礎原理
LVS 是基于 netfilter 框架,主要工作于 INPUT 鏈上,在 INPUT 上注冊 ip_vs_in HOOK 函數(shù),進行 IPVS 主流程,大概原理如圖所示:
當用戶訪問 www.sina.com.cn 時,用戶數(shù)據(jù)通過層層網(wǎng)絡,最后通過交換機進入 LVS 服務器網(wǎng)卡,并進入內(nèi)核網(wǎng)絡層。
進入 PREROUTING 后經(jīng)過路由查找,確定訪問的目的 VIP 是本機 IP 地址,所以數(shù)據(jù)包進入到 INPUT 鏈上
LVS 是工作在 INPUT 鏈上,會根據(jù)訪問的 IP:Port 判斷請求是否是 LVS 服務,如果是則進行 LVS 主流程,強行修改數(shù)據(jù)包的相關數(shù)據(jù),并將數(shù)據(jù)包發(fā)往 POSTROUTING 鏈上。
POSTROUTING 上收到數(shù)據(jù)包后,根據(jù)目標 IP 地址(后端真實服務器),通過路由選路,將數(shù)據(jù)包最終發(fā)往后端的服務器上。
開源 LVS 版本有 3 種工作模式,每種模式工作原理都不同,每種模式都有自己的優(yōu)缺點和不同的應用場景,包括以下三種模式:
①DR 模式
②NAT 模式
③Tunnel 模式
這里必須要提另外一種模式是 FullNAT,這個模式在開源版本中是模式?jīng)]有的。這個模式最早起源于百度,后來又在阿里發(fā)揚光大,由阿里團隊開源,代碼地址如下:
https://github.com/alibaba/lvs
LVS 官網(wǎng)也有相關下載地址,不過并沒有合進到內(nèi)核主線版本。
后面會有專門章節(jié)詳細介紹 FullNAT 模式。下邊分別就 DR、NAT、Tunnel 模式分別詳細介紹原理。
DR 模式實現(xiàn)原理
LVS 基本原理圖中描述的比較簡單,表述的是比較通用流程。下邊會針對 DR 模式的具體實現(xiàn)原理,詳細的闡述 DR 模式是如何工作的。
(一)實現(xiàn)原理過程
① 當客戶端請求 www.sina.com.cn 主頁,請求數(shù)據(jù)包穿過網(wǎng)絡到達 Sina 的 LVS 服務器網(wǎng)卡:源 IP 是客戶端 IP 地址 CIP,目的 IP 是新浪對外的服務器 IP 地址,也就是 VIP;此時源 MAC 地址是 CMAC,其實是 LVS 連接的路由器的 MAC 地址(為了容易理解記為 CMAC),目標 MAC 地址是 VIP 對應的 MAC,記為 VMAC。
② 數(shù)據(jù)包經(jīng)過鏈路層到達 PREROUTING 位置(剛進入網(wǎng)絡層),查找路由發(fā)現(xiàn)目的 IP 是 LVS 的 VIP,就會遞送到 INPUT 鏈上,此時數(shù)據(jù)包 MAC、IP、Port 都沒有修改。
③ 數(shù)據(jù)包到達 INPUT 鏈,INPUT 是 LVS 主要工作的位置。此時 LVS 會根據(jù)目的 IP 和 Port 來確認是否是 LVS 定義的服務,如果是定義過的 VIP 服務,就會根據(jù)配置信息,從真實服務器列表 中選擇一個作為 RS1,然后以 RS1 作為目標查找 Out 方向的路由,確定一下跳信息以及數(shù)據(jù)包要通過哪個網(wǎng)卡發(fā)出。最后將數(shù)據(jù)包投遞到 OUTPUT 鏈上。
④ 數(shù)據(jù)包通過 POSTROUTING 鏈后,從網(wǎng)絡層轉(zhuǎn)到鏈路層,將目的 MAC 地址修改為 RealServer 服務器 MAC 地址,記為 RMAC;而源 MAC 地址修改為 LVS 與 RS 同網(wǎng)段的 selfIP 對應的 MAC 地址,記為 DMAC。此時,數(shù)據(jù)包通過交換機轉(zhuǎn)發(fā)給了 RealServer 服務器(注:為了簡單圖中沒有畫交換機)。
⑤ 請求數(shù)據(jù)包到達后端真實服務器后,鏈路層檢查目的 MAC 是自己網(wǎng)卡地址。到了網(wǎng)絡層,查找路由,目的 IP 是 VIP(lo 上配置了 VIP),判定是本地主機的數(shù)據(jù)包,經(jīng)過協(xié)議棧拷貝至應用程序(比如 nginx 服務器),nginx 響應請求后,產(chǎn)生響應數(shù)據(jù)包。
然后以 CIP 查找出方向的路由,確定下一跳信息和發(fā)送網(wǎng)卡設備信息。此時數(shù)據(jù)包源、目的 IP 分別是 VIP、CIP,而源 MAC 地址是 RS1 的 RMAC,目的 MAC 是下一跳(路由器)的 MAC 地址,記為 CMAC(為了容易理解,記為 CMAC)。然后數(shù)據(jù)包通過 RS 相連的路由器轉(zhuǎn)發(fā)給真正客戶端,完成了請求響應的全過程。
從整個過程可以看出,DR 模式 LVS 邏輯比較簡單,數(shù)據(jù)包通過直接路由方式轉(zhuǎn)發(fā)給后端服務器,而且響應數(shù)據(jù)包是由 RS 服務器直接發(fā)送給客戶端,不經(jīng)過 LVS。
我們知道通常請求數(shù)據(jù)包會比較小,響應報文較大,經(jīng)過 LVS 的數(shù)據(jù)包基本上都是小包,所以這也是 LVS 的 DR 模式性能強大的主要原因。
(二)優(yōu)缺點和使用場景
DR 模式的優(yōu)點
1.響應數(shù)據(jù)不經(jīng)過 lvs,性能高
2.對數(shù)據(jù)包修改小,信息保存完整(攜帶客戶端源 IP)
DR 模式的缺點
1.lvs 與 rs 必須在同一個物理網(wǎng)絡(不支持跨機房)
2.服務器上必須配置 lo 和其它內(nèi)核參數(shù)
3.不支持端口映射
DR 模式的使用場景
如果對性能要求非常高,可以首選 DR 模式,而且可以透傳客戶端源 IP 地址。
NAT 模式實現(xiàn)原理
(一)實現(xiàn)原理與過程
① 用戶請求數(shù)據(jù)包經(jīng)過層層網(wǎng)絡,到達 lvs 網(wǎng)卡,此時數(shù)據(jù)包源 IP 是 CIP,目的 IP 是 VIP。
② 經(jīng)過網(wǎng)卡進入網(wǎng)絡層 prerouting 位置,根據(jù)目的 IP 查找路由,確認是本機 IP,將數(shù)據(jù)包轉(zhuǎn)發(fā)到 INPUT 上,此時源、目的 IP 都未發(fā)生變化。
③ 到達 lvs 后,通過目的 IP 和目的 port 查找是否為 IPVS 服務。若是 IPVS 服務,則會選擇一個 RS 作為后端服務器,將數(shù)據(jù)包目的 IP 修改為 RIP,并以 RIP 為目的 IP 查找路由信息,確定下一跳和出口信息,將數(shù)據(jù)包轉(zhuǎn)發(fā)至 output 上。
④ 修改后的數(shù)據(jù)包經(jīng)過 postrouting 和鏈路層處理后,到達 RS 服務器,此時的數(shù)據(jù)包源 IP 是 CIP,目的 IP 是 RIP。
⑤ 到達 RS 服務器的數(shù)據(jù)包經(jīng)過鏈路層和網(wǎng)絡層檢查后,被送往用戶空間 nginx 程序。nginx 程序處理完畢,發(fā)送響應數(shù)據(jù)包,由于 RS 上默認網(wǎng)關配置為 lvs 設備 IP,所以 nginx 服務器會將數(shù)據(jù)包轉(zhuǎn)發(fā)至下一跳,也就是 lvs 服務器。此時數(shù)據(jù)包源 IP 是 RIP,目的 IP 是 CIP。
⑥ lvs 服務器收到 RS 響應數(shù)據(jù)包后,根據(jù)路由查找,發(fā)現(xiàn)目的 IP 不是本機 IP,且 lvs 服務器開啟了轉(zhuǎn)發(fā)模式,所以將數(shù)據(jù)包轉(zhuǎn)發(fā)給 forward 鏈,此時數(shù)據(jù)包未作修改。
⑦ lvs 收到響應數(shù)據(jù)包后,根據(jù)目的 IP 和目的 port 查找服務和連接表,將源 IP 改為 VIP,通過路由查找,確定下一跳和出口信息,將數(shù)據(jù)包發(fā)送至網(wǎng)關,經(jīng)過復雜的網(wǎng)絡到達用戶客戶端,最終完成了一次請求和響應的交互。
NAT 模式雙向流量都經(jīng)過 LVS,因此 NAT 模式性能會存在一定的瓶頸。不過與其它模式區(qū)別的是,NAT 支持端口映射,且支持 windows 操作系統(tǒng)。
NAT 模式優(yōu)點
1.能夠支持 windows 操作系統(tǒng)
2.支持端口映射。
如果 rs 端口與 vport 不一致,lvs 除了修改目的 IP,也會修改 dport 以支持端口映射。
NAT 模式缺點
1.后端 RS 需要配置網(wǎng)關
2.雙向流量對 lvs 負載壓力比較大
NAT 模式的使用場景
如果你是 windows 系統(tǒng),使用 lvs 的話,則必須選擇 NAT 模式了。
Tunnel 模式在國內(nèi)使用的比較少,不過據(jù)說騰訊使用了大量的 Tunnel 模式。它也是一種單臂的模式,只有請求數(shù)據(jù)會經(jīng)過 lvs,響應數(shù)據(jù)直接從后端服務器發(fā)送給客戶端,性能也很強大,同時支持跨機房。下邊繼續(xù)看圖分析原理。
(一)實現(xiàn)原理與過程
① 用戶請求數(shù)據(jù)包經(jīng)過多層網(wǎng)絡,到達 lvs 網(wǎng)卡,此時數(shù)據(jù)包源 IP 是 cip,目的 ip 是 vip。
② 經(jīng)過網(wǎng)卡進入網(wǎng)絡層 prerouting 位置,根據(jù)目的 ip 查找路由,確認是本機 ip,將數(shù)據(jù)包轉(zhuǎn)發(fā)到 input 鏈上,到達 lvs,此時源、目的 ip 都未發(fā)生變化。
③ 到達 lvs 后,通過目的 ip 和目的 port 查找是否為 IPVS 服務。若是 IPVS 服務,則會選擇一個 rs 作為后端服務器,以 rip 為目的 ip 查找路由信息,確定下一跳、dev 等信息,然后 IP 頭部前邊額外增加了一個 IP 頭(以 dip 為源,rip 為目的 ip),將數(shù)據(jù)包轉(zhuǎn)發(fā)至 output 上。
④ 數(shù)據(jù)包根據(jù)路由信息經(jīng)最終經(jīng)過 lvs 網(wǎng)卡,發(fā)送至路由器網(wǎng)關,通過網(wǎng)絡到達后端服務器。
⑤ 后端服務器收到數(shù)據(jù)包后,ipip 模塊將 Tunnel 頭部卸載,正??吹降脑?ip 是 cip,目的 ip 是 vip,由于在 tunl0 上配置 vip,路由查找后判定為本機 ip,送往應用程序。應用程序 nginx 正常響應數(shù)據(jù)后以 vip 為源 ip,cip 為目的 ip 數(shù)據(jù)包發(fā)送出網(wǎng)卡,最終到達客戶端。
Tunnel 模式具備 DR 模式的高性能,又支持跨機房訪問,聽起來比較完美。不過國內(nèi)運營商有一定特色性,比如 RS 的響應數(shù)據(jù)包的源 IP 為 VIP,VIP 與后端服務器有可能存在跨運營商的情況,很有可能被運營商的策略封掉,Tunnel 在生產(chǎn)環(huán)境確實沒有使用過,在國內(nèi)推行 Tunnel 可能會有一定的難度吧。
(二)優(yōu)點、缺點與使用場景
Tunnel 模式的優(yōu)點
1.單臂模式,對 lvs 負載壓力小
2.對數(shù)據(jù)包修改較小,信息保存完整
3.可跨機房(不過在國內(nèi)實現(xiàn)有難度)
Tunnel 模式的缺點
1.需要在后端服務器安裝配置 ipip 模塊
2.需要在后端服務器 tunl0 配置 vip
3.隧道頭部的加入可能導致分片,影響服務器性能
4.隧道頭部 IP 地址固定,后端服務器網(wǎng)卡 hash 可能不均
5.不支持端口映射
Tunnel 模式的使用場景
理論上,如果對轉(zhuǎn)發(fā)性能要求較高,且有跨機房需求,Tunnel 可能是較好的選擇。
以上是主題為:什么是負載均衡?的教學全部內(nèi)容,希望對您有幫助!
快快網(wǎng)絡致力于安全防護、服務器高防、網(wǎng)絡高防、ddos防護、cc防護、dns防護、防劫持、高防服務器、網(wǎng)站防護等方面的服務,自研的WAF提供任意CC和DDOS攻擊防御。
更多詳情聯(lián)系客服QQ 537013901
高防CDN可以解決哪些問題?
在攻擊橫行的現(xiàn)代互聯(lián)網(wǎng)環(huán)境下,怎么才能避免因為攻擊導致的宕機呢?如何更好的解決訪問并發(fā)量高的問題呢?減輕網(wǎng)站服務器的壓力,同時還可以隱藏網(wǎng)站源IP,只要找不到源IP攻擊就沒辦法精準的攻擊到,同時,還能提高用戶訪問響應速度和命中率,不用直接訪問網(wǎng)站源服務器。高防CDN可以解決哪些問題?高防CDN能夠解決很多網(wǎng)站的問題,比如DDoS攻擊、CC攻擊、惡意爬蟲訪問等。它能夠提高網(wǎng)站的訪問速度和穩(wěn)定性,同時也能夠保護網(wǎng)站用戶的隱私和安全。高防CDN能夠為網(wǎng)站提供多種防御措施,包括源站防護、節(jié)點防護、流量清洗、智能識別等,使得網(wǎng)站在面臨各種攻擊時能夠保持正常的運行狀態(tài)。因此,高防CDN已成為越來越多企業(yè)和機構在網(wǎng)絡安全方面的首選。高防CDN可以解決網(wǎng)站的哪些問題?1、完全不用擔心自己網(wǎng)站訪客來源,完美解決跨網(wǎng)絡運營商數(shù)據(jù)傳輸問題,在任何時間,任何地點,任何網(wǎng)絡運營商,都能快速打開網(wǎng)站。2、大幅度提高網(wǎng)站加載速度,減少因網(wǎng)絡等問題導致的頁面打開慢的問題,提高用戶對網(wǎng)站的好感度。高防CDN可以解決哪些問題?3、給網(wǎng)站直接帶來的好處就是:流量,咨詢量,客戶量,成單量,都會得到大幅度提升。4、高防CDN技術以其全新加速理論,保障了對動態(tài)網(wǎng)站高效穩(wěn)定的加速效果。5、高防CDN技術擁有高防屬性,可保護加速站點,大大減少網(wǎng)站被攻擊次數(shù),提高黑客攻擊網(wǎng)站難度,提高站點安全性。CDN加速可以解決哪些痛點?高防CDN可以解決網(wǎng)站的哪些問題?1、每個網(wǎng)站的帶寬資源有限,訪問流量過大,就很容易出現(xiàn)訪問慢、卡頓,甚至打不開等現(xiàn)象。2、如果你網(wǎng)站的服務器配置比較低、性能差,那么承載能力就不行,可能由于突發(fā)的流量,導致網(wǎng)站無法打開。3、你的網(wǎng)站在跨地區(qū),跨運營商訪問方面,體驗較差。4、網(wǎng)站有很多靜態(tài)和動態(tài)的頁面內(nèi)容,用戶每次訪問網(wǎng)站都需要加載太多的資源,導致加載時間過長,容易出現(xiàn)頁面卡頓現(xiàn)象。高防CDN可以解決哪些問題?高防安全專家快快網(wǎng)絡!新一代云安全引領者-----------------快快裸金屬,正式上線!快快i9,才是真正i9聯(lián)系專屬售前:快快網(wǎng)絡朵兒,企鵝:537013900,CALL:18050128237
游戲盾SDK有哪些功能?
隨著游戲行業(yè)的發(fā)展和玩家人數(shù)的不斷增加,游戲服務器面臨的安全威脅也在增加。游戲盾SDK是一款為游戲開發(fā)者量身定制的防護工具,旨在幫助游戲應用抵御多種攻擊,提升游戲安全性和用戶體驗。通過集成游戲盾SDK,游戲運營商可以有效防護各類惡意攻擊,確保游戲的穩(wěn)定運行。一、DDoS攻擊防護DDoS(分布式拒絕服務)攻擊是游戲服務器常見的安全威脅之一,會導致游戲服務器資源被大量惡意流量耗盡,最終影響正常玩家的登錄和游戲體驗。游戲盾SDK通過智能識別并阻止異常流量,有效防止DDoS攻擊的發(fā)生。流量識別與過濾:游戲盾SDK能夠自動識別正常和異常流量,快速清洗掉惡意請求,保障服務器資源。動態(tài)防護策略:SDK根據(jù)實時監(jiān)控數(shù)據(jù)調(diào)整防護策略,確保防護的靈活性和適用性,防止高流量攻擊對游戲性能的影響。二、CC攻擊防護CC(Challenge Collapsar)攻擊主要針對服務器的計算資源,通過大量的惡意請求耗盡服務器資源,使正常玩家的請求得不到及時響應。游戲盾SDK可以識別并攔截異常請求,防止服務器因負載過重而影響游戲的正常運行。請求頻率控制:SDK能夠?qū)崟r監(jiān)控請求頻率,對于頻繁訪問的可疑IP進行限制,有效減少CC攻擊帶來的系統(tǒng)資源消耗。IP信譽系統(tǒng):游戲盾SDK內(nèi)置IP信譽數(shù)據(jù)庫,能夠識別高風險IP,并對這些IP的訪問進行限制,減少惡意訪問的概率。三、玩家身份驗證為了確保游戲的安全性和公平性,游戲盾SDK提供了多種身份驗證功能,幫助游戲運營商識別并管理玩家的行為。這些功能可以有效防止惡意用戶進行違規(guī)操作,保護游戲的正常秩序。雙因子認證:通過結合密碼和動態(tài)驗證碼的方式,增加了玩家登錄的安全性,防止賬號被盜用。行為監(jiān)測:SDK可以監(jiān)測玩家的異常行為,如短時間內(nèi)頻繁登錄或切換IP,及時標記并限制異常賬號。四、實時監(jiān)控與數(shù)據(jù)分析游戲盾SDK具備實時監(jiān)控功能,能夠?qū)τ螒蚍掌鞯脑L問流量、攻擊情況和異常事件進行全程跟蹤。開發(fā)者可以通過可視化的數(shù)據(jù)分析了解服務器的安全狀況,及時發(fā)現(xiàn)并應對潛在威脅。實時告警:當檢測到異常流量或攻擊事件時,SDK會立即觸發(fā)告警通知,幫助開發(fā)者快速采取防護措施。安全報告:SDK會生成定期的安全報告,包含各類攻擊的發(fā)生頻率、流量波動和安全事件詳情,方便運營商分析安全趨勢。五、低延遲防護與優(yōu)化在防護安全的同時,游戲盾SDK注重低延遲處理,能夠保證防護過程不影響玩家的游戲體驗。特別是對實時對戰(zhàn)類的游戲,SDK的低延遲優(yōu)化功能極為重要,確保玩家操作的及時響應。邊緣計算防護:通過分布式節(jié)點在邊緣層進行流量處理,減少防護過程中的網(wǎng)絡延遲。智能調(diào)控:SDK會智能選擇最優(yōu)路徑進行流量清洗和防護,降低防護措施對玩家操作的影響。游戲盾SDK通過多層次、多功能的防護策略,為游戲服務器提供了全面的安全保障。它不僅能夠防止常見的DDoS、CC攻擊,還具備身份驗證、實時監(jiān)控等功能,進一步優(yōu)化了用戶體驗。對于游戲開發(fā)者和運營商而言,選擇并集成游戲盾SDK可以顯著提升游戲的安全性和穩(wěn)定性,為玩家提供一個安全、公平的游戲環(huán)境。
游戲盾SDK有什么功能
游戲盾SDK通過流量清洗功能,可以過濾掉惡意流量,并確保游戲服務器只接收合法的流量。就好比是一個保安,站在游戲服務器的大門前,檢查每個進入的流量是否合法。如果發(fā)現(xiàn)可疑流量,保安就會將其攔下,不準進入游戲服務器。入侵檢測和防御:游戲盾SDK可以檢測和防御各種網(wǎng)絡攻擊,例如DDoS攻擊、SYN洪泛攻擊、UDP洪泛攻擊等。就好比是一個監(jiān)控攝像頭,時刻監(jiān)視著游戲服務器周圍的網(wǎng)絡環(huán)境。如果發(fā)現(xiàn)有攻擊者企圖入侵游戲服務器,監(jiān)控攝像頭就會發(fā)出警報,并通知保安采取行動。應用層防護:游戲盾SDK可以檢測和防御各種應用層攻擊,例如SQL注入攻擊、跨站腳本攻擊、緩沖區(qū)溢出攻擊等。就好比是一個防火墻,安裝在游戲服務器的入口處。防火墻會檢查每個進入游戲服務器的數(shù)據(jù)包,如果發(fā)現(xiàn)數(shù)據(jù)包中含有惡意代碼,防火墻就會將其攔截下來,不準進入游戲服務器。外掛檢測:游戲盾SDK可以檢測并阻止外掛的使用,確保游戲環(huán)境的公平性。就好比是一個反外掛系統(tǒng),時刻掃描游戲服務器中的玩家行為。如果發(fā)現(xiàn)有玩家使用外掛,反外掛系統(tǒng)就會將其踢出游戲服務器。防盜號:游戲盾SDK可以防止玩家的賬號被盜,并提供賬號找回服務。就好比是一個保險箱,用來存放玩家的賬號信息。保險箱有堅固的鎖,可以防止其他人打開。即使有人偷走了保險箱,他們也無法打開保險箱,拿到玩家的賬號信息。防沉迷:游戲盾SDK可以限制未成年玩家的游戲時間,并防止他們沉迷于游戲。就好比是一個家長,可以控制孩子玩游戲的時間。家長可以設置一個時間限制,當孩子玩游戲的時間達到限制時,游戲盾SDK就會自動下線孩子。游戲盾SDK通過以上方式防護網(wǎng)絡攻擊,就像是一個全副武裝的衛(wèi)士,時刻守護著游戲服務器的安全。它可以抵御各種網(wǎng)絡攻擊,確保游戲服務器的安全穩(wěn)定運行,并為玩家提供一個安全的游戲環(huán)境。
查看更多文章 >