LVS負載均衡DR模式理論講解

部署LVS_DR羣集
LVS_DR數據包流向分析
爲了方便進行原理分析,將Client0與羣集機器放在同一網絡中,數據包流經路線爲1-2-3-4
LVS負載均衡DR模式理論講解
LVS負載均衡DR模式理論講解
1.Client向目標VIP發出請求,Director(負載均衡器)接收。此時IP包頭及數據幀信息爲:
LVS負載均衡DR模式理論講解
2.Director根據負載均衡算法選擇RealServer_1,不修改也不封裝IP報文,而是將數據幀的MAC地址改爲RealServer_1的MAC地址,然後在局域網上發送。IP包頭及數據幀頭信息如下:
LVS負載均衡DR模式理論講解
3.RealServer_1收到這個幀,解封裝後發現目標IP與本機匹配(RealServer事先綁定了VIP),於是處理這個報文。隨後重新封裝報文,發送到局域網。此時IP包頭及數據幀頭信息爲:
LVS負載均衡DR模式理論講解
4.Client將收到回覆報文。Client認爲得到正常的服務而不會知道是哪一臺服務器處理的
注意:如果跨網段,那麼報文通過路由器經由Internet返回給用戶
LVS_DR中的ARP問題

  • 在LVS_DR負載均衡羣集中,負載均衡器與節點服務器都要配置相同的VIP地址
  • 在局域網中具有相同的IP地址,勢必會造成各服務器ARP通信的紊亂
    • 當一個ARP廣播發送到LVS_DR集羣時,因爲負載均衡器和節點服務器都是連接到相同的網絡是上的,它們都會接收到ARP廣播
    • 此時只有前端的負載均衡器進行相應,其他節點服務器不應該響應ARP廣播
      LVS負載均衡DR模式理論講解
  • 對節點服務器進行處理,使其不響應針對VIP的ARP請求
    • 使用虛擬接口lo:0承載VIP地址
    • 設置內核參數arp_ignore=1:系統只響應目標IP爲本地IP的ARP請求
  • RealServer返回報文(源IP是VIP)經路由器轉發,再重新封裝報文時,需要先獲取路由器的MAC地址
  • 發送ARP請求時,Linux默認使用IP包的源IP地址(即VIP)作爲ARP請求包中的源IP地址,而不用發送接口IP地址
    LVS負載均衡DR模式理論講解
    LVS負載均衡DR模式理論講解
  • 路由器收到ARP請求後,將更新ARP表項
  • 原有的VIP對應Director的MAC地址會被更新爲VIP對應RealServer的MAC地址
  • 此時新來的請求報文,路由器根據ARP表項,會將該報文轉發給RealServer,從而導致Director的VIP失效
  • 解決方法
    • 對節點服務器進行處理。設置內核參數arp_announce=2:系統不適用IP包的源地址來設置ARP請求的源地址,而選擇發送接口的IP地址。
      解決ARP的兩個問題的設置方法
  • 修改/etc/sysctl.conf文件
    • net.ipv4.conf.lo.arp_ignore=1
    • net.ipv4.conf.lo.arp_announce=2
    • net.ipv4.conf.all.arp_ignore=1
    • net.ipv4.conf.all.arp_announce=2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章