1. 程式人生 > >lvs fullnat+ECMP【0】原理簡介

lvs fullnat+ECMP【0】原理簡介

廣播 ext 51cto 需要 使用 col nat 單點 進行

lvs-fullnat模式的優勢

FULLNAT模式下,LB會對請求包和響應包都做SNAT+DNAT。
無論是DR還是NAT模式,不可避免的都有一個問題:LVS和RS必須在同一個VLAN下,否則LVS無法作為RS的網關。
這引發的兩個問題是:
1、同一個VLAN的限制導致運維不方便,跨VLAN的RS無法接入。
2、LVS的水平擴展受到制約。當RS水平擴容時,總有一天其上的單點LVS會成為瓶頸。
Full-NAT由此而生,解決的是LVS和RS跨VLAN的問題,而跨VLAN問題解決後,LVS和RS不再存在VLAN上的從屬關系,可以做到多個LVS對應多個RS,解決水平擴容的問題。

lvs中nat和fullnat的轉發示意圖

技術分享圖片

lvs負載均衡fullnat 模式clientip 怎樣傳遞給 realserver

淘寶通過叫TOA的方式解決的。
主要原理是:將client address放到了TCP Option裏面帶給後端RealServer,RealServer收到後保存在socket
的結構體裏並通過toa內核模塊hook了getname函數,這樣當用戶調用getname獲取遠端地址時,返回的是保
存在socket的TCPOption的IP. 百度的BVS是通過叫ttm模塊實現的,其實現方式跟toa基本一樣,只是沒有開源.

傳統lvs三種工作模式簡介

DR(Direct Routing)模式:負載均衡器和RS都使用同一個IP對外服務,但只有DR對ARP請求進行響應,所有RS對本身這個IP的ARP請求保持靜默,也就是說,網關會把對這個服務IP的請求全部定向給DR,而DR收到數據包後根據調度算法,找出對應的RS,把目的MAC地址改為RS的MAC(因為IP一致)並將請求分發給這臺RS,這時RS收到這個數據包,處理完成之後,由於IP一致,可以直接將數據返給客戶,則等於直接從客戶端收到這個數據包無異,處理後直接返回給客戶端。由於負載均衡器要對二層包頭進行改換,所以負載均衡器和RS之間必須在一個廣播域,也可以簡單的理解為在同一臺交換機上。

LVS NAT 模式:就是把客戶端發來的數據包的IP頭的目的地址,在負載均衡器上換成其中一臺RS的IP地址,並發至此RS來處理,RS處理完成後把數據交給經過負載均衡器,負載均衡器再把數據包的原IP地址改為自己的IP,將目的地址改為客戶端IP地址即可,期間,無論是進來的流量,還是出去的流量,都必須經過負載均衡器。

LVS TUNNEL模式:首先要知道,互聯網上的大多Internet服務的請求包很短小,而應答包通常很大。那麽隧道模式就是,把客戶端發來的數據包,封裝一個新的IP頭標記(僅目的IP)發給RS,RS收到後,先把數據包的頭解開,還原數據包,處理後,直接返回給客戶端,不需要再經過負載均衡器,註意,由於RS需要對負載均衡器發過來的數據包進行還原,所以說必須支持IPTUNNEL協議,所以,在RS的內核中,必須編譯支持IPTUNNEL這個選項。

ECMP

等價路由Equal-CostMultipathRouting
ECMP存在多條不同鏈路到達同一目的地址的網絡環境中,如果使用傳統的路由技術,發往該目的地址的數據包只能利用其中的一條鏈路,其它鏈路處於備份狀態或無效狀態,並且在動態路由環境下相互的切換需要一定時間,而等值多路徑路由協議可以在該網絡環境下同時使用多條鏈路,不僅增加了傳輸帶寬,並且可以無時延無丟包地備份失效鏈路的數據傳輸。
ECMP最大的特點是實現了等值情況下,多路徑負載均衡和鏈路備份的目的,在靜態路由和OSPF中基本上都支持ECMP功能。
如果想了解更深,可以參考ospf原理或者找懂網絡的人問問。

參考

LVS 工作模式以及工作原理:https://blog.csdn.net/caoshuming_500/article/details/8291940
lvs 負載均衡fullnat 模式clientip 怎樣傳遞給 realserver:https://blog.csdn.net/mumumuwudi/article/details/47064281
LVS的nat模式和fullnat模式的區別:https://blog.csdn.net/dingding_02/article/details/79007301
lvs中nat和fullnat的區別與圖示:https://blog.csdn.net/legend_host/article/details/79006825
吳佳明(普空):LVS在大規模網絡環境中的應用:http://blog.sina.com.cn/s/blog_620c47630102v2iz.html
ECMP:https://baike.baidu.com/item/ecmp/9091327

lvs fullnat+ECMP【0】原理簡介