咱們都知道LVS有LVS-DR,LVS-NAT,LVS-TUN三種模式,其中DR模式意爲Direct
Routing(直接路由),是調度器與實際服務器都有一塊網卡連在同一物理網段上的狀況。本文主要對LVS/DR模式原理進行了闡述,另外還有一篇FAQs,給有相關疑問的朋友們作個參考。 算法
LVS-DR工做原理詳解 服務器
爲了闡述方便,我根據官方原理圖另外製做了一幅圖,以下圖所示:VS/DR的體系結構: 負載均衡
我將結合這幅原理圖及具體的實例來說解一下LVS-DR的原理,包括數據包、數據幀的走向和轉換過程。 server
官方的原理說明:Director接收用戶的請求,而後根據負載均衡算法選取一臺realserver,將包轉發過去,最後由realserver直接回復給用戶。 htm
實例場景設備清單: ip
說明:我這裏爲了方便,client是與vip同一網段的機器。若是是外部的用戶訪問,將client替換成gateway便可,由於IP包頭是不變的,變的只是源mac地址。 路由
① client向目標vip發出請求,Director接收。此時IP包頭及數據幀頭信息以下: get
②
VS根據負載均衡算法選擇一臺active的realserver(假設是192.168.57.122),將此RIP所在網卡的mac地址做爲目標mac地址,發送到局域網裏。此時IP包頭及數據幀頭信息以下: 原理
③ realserver(192.168.57.122)在局域網中收到這個幀,拆開後發現目標IP(VIP)與本地匹配,因而處理這個報文。隨後從新封裝報文,發送到局域網。此時IP包頭及數據幀頭信息以下: cli
④ 若是client與VS同一網段,那麼client(192.168.57.135)將收到這個回覆報文。若是跨了網段,那麼報文經過gateway/路由器經由Internet返回給用戶。
以上就是對LVS/DR模式的原理介紹。若是還有其餘問題不明白的,能夠參考做者另一篇LVS/DR模式原理剖析的FAQs。