天天看點

LVS 各種模式分析

作者: xiaodongpan

Linux伺服器叢集系統即LVS(Linux Virtual Server),是章文嵩在國防科技大學博士期間開發的一個開源項目,該項目也是中國開源少有的幾個成功項目之一,該項目已經進入到Linux核心,在國内外被廣泛的使用。章文嵩博士目前就職到淘寶,繼續主持LVS的相關工作。各大網際網路公司都在對LVS進行修改和使用,是以産生了不通的LVS變種,比如百度的BIG-NAT,淘寶的FullNAT,騰訊的TGW(目前我還不太了解)。其基本原理都是在netfilter層,對資料包進行過濾、修改和僞裝。

LVS原生的三種轉發模式:

LVS-DR

LVS-NAT

LVS-TUN

原理: mac位址僞裝,通過修改源包的mac位址進行投遞

示意圖:

LVS 各種模式分析

原理: 通過修改源目的IP實作,進入時DNAT,出去時SNAT

原理: 通過IP tunnel實作,進入時加上IP頭部

介紹:一種新型新型的轉發模式,NAT的加強版,由吳佳明等在章文嵩帶帶領下實作 原理: 通過修改改源目的IP實作,但是比LVS-NAT更徹底,進入時DNAT+SNAT,出去時由SNAT+DNAT

▲NAT包修改示意圖

在入包時,進行目的位址轉換,出包時進行源位址轉換,為了讓出去的資料包,經過LVS,需要添加政策路由。

▲FullNAT實作原理

在入包時修改目的位址,同時把源位址改為内網位址,這樣包就可以完全無限制的在整個内外路由,出包時修改源位址為vip位址,目的位址為真實的ClientIP位址,進而實作回包到目的地。

•優點:性能好,rs直接回包

• 缺點:

1、 rs必須在一個vlan中,這在多網絡環境中限制非常大;

2、 rs必須綁定vip,麻煩且風險大

3、不支援端口映射

• 優點:

1、 rs可以在整個内網中,沒有vlan的限制

2、支援端口映射

1、 rs的網關必須是lvs機器,如果不是,則需要配置靜态路由

• 優點:性能好,rs直接回包

• 缺點:

1、 rs配置複雜,需要配置ipip子產品

2、 rs綁定vip,風險大

1、資料包可以在整個内外中任意路由

2、交換機和路由器無需任何特殊配置

• 缺點: windows無法擷取client ip

從上面幾種模式來看,FullNAT無疑是一種最好的轉發模式,他無需要對路由器,rs進行特殊操作,就可以完成整個代理轉發。其實在具有一定網絡規模的環境中,無論是要求在同一個VLAN,還是要配置靜态路由,對網絡拓撲配置都是極大的破壞,而且綁定vip風險極大,而且實作自動化困難。從實際應用來看,LVS-DR,LVS-NAT,LVS-TUNNEL都沒有很大規模的應用案例,相反,LVS-FullNAT已經被大範圍的使用,包括阿裡,小米,汽車之家,UC等很多網際網路公司,規模都是很大。鑒于DR的操作複雜性和風險,建議考慮FullNAT作為替代方案。