01.01 四層負載均衡轉發模式

負載均衡又分為四層負載均衡和七層負載均衡。四層負載均衡工作在OSI模型的傳輸層,主要工作是轉發,它在接收到客戶端的流量以後通過修改數據包的地址信息將流量轉發到應用服務器。

四層負載均衡轉發模式

image

七層負載均衡工作在OSI模型的應用層,因為它需要解析應用層流量,所以七層負載均衡在接到客戶端的流量以後,還需要一個完整的TCP/IP協議棧。七層負載均衡會與客戶端建立一條完整的連接並將應用層的請求流量解析出來,再按照調度算法選擇一個應用服務器,並與應用服務器建立另外一條連接將請求發送過去,因此七層負載均衡的主要工作就是代理。

既然四層負載均衡做的主要工作是轉發,那就存在一個轉發模式的問題,目前主要有四層轉發模式:DR模式、NAT模式、TUNNEL模式、FULLNAT模式。

四層負載均衡轉發模式

image

DR模式也叫作三角傳輸,通過修改數據包的目的MAC地址來讓流量經過二層轉發到達應用服務器,這樣應用服務器就可以直接將應答發給應用服務器,性能比較好。由於這種模式需要依賴二層轉發,因此它要求負載均衡服務器和應用服務器必須在一個二層可達的環境內,並且需要在應用服務器上配置VIP。

NAT模式通過修改數據包的目的IP地址,讓流量到達應用服務器,這樣做的好處是數據包的目的IP就是應用服務器的IP,因此不需要再在應用服務器上配置VIP了。缺點是由於這種模式修改了目的IP地址,這樣如果應用服務器直接將應答包發給客戶端的話,其源IP是應用服務器的IP,客戶端就不會正常接收這個應答,因此我們需要讓流量繼續回到負載均衡,負載均衡將應答包的源IP改回VIP再發到客戶端,這樣才可以保證正常通信,所以NAT模式要求負載均衡需要以網關的形式存在於網絡中。

TUNNEL模式的優缺點和DR是一樣的,並且TUNNEL模式要求應用服務器必須支持TUNNEL功能。

FULLNAT模式是在NAT模式的基礎上做一次源地址轉換(即SNAT),做SNAT的好處是可以讓應答流量經過正常的三層路由回到負載均衡上,這樣負載均衡就不需要以網關的形式存在於網絡中了,對網絡環境要求比較低,缺點是由於做了SNAT,應用服務器會丟失客戶端的真實IP地址。

四層負載均衡轉發模式

image

下面詳細介紹一下FULLNAT模式。首先負載均衡上需要存在一個localip池,在做SNAT時的源IP就是從localip池中選擇的。當客戶端流量到達負載均衡設備以後,負載均衡會根據調度策略在應用服務器池中選擇一個應用服務器,然後將數據包的目的IP改為應用服務器的IP。同時從localip池中選擇一個localip將數據包的源IP改為localip,這樣應用服務器在應答時,目的IP是localip,而localip是真實存在於負載均衡上的IP地址,因此可以經過正常的三層路由到達負載均衡。由於FULLNAT比NAT模式多做了一次SNAT,並且SNAT中有選端口的操作,因此其性能要遜色於NAT模式,但是其較強的網絡環境適應性。


個人介紹:

高廣超:多年一線互聯網研發與架構設計經驗,擅長設計與落地高可用、高性能、可擴展的互聯網架構。

本文首發在 高廣超的簡書博客 轉載請註明!


分享到:


相關文章: