1、VS/DR模式前端
①.客戶端將請求發往前端的負載均衡器,請求報文源地址是CIP,目標地址爲VIP。nginx
②.負載均衡器收到報文後,發現請求的是在規則裏面存在的地址,那麼它將目標MAC改成了RIP的MAC地址,並將此包發送給RS。後端
③.RS發現請求報文中的目的MAC是本身,就會將次報文接收下來,處理完請求報文後,將響應報文經過lo接口送給eth0網卡直接發送給客戶端。服務器
注意:網絡
須要設置lo接口的VIP不能響應本地網絡內的arp請求。併發
優勢:負載均衡
和TUN(隧道模式)同樣,負載均衡器也只是分發請求,應答包經過單獨的路由方法返回給客戶端。與VS-TUN相比,VS-DR這種實現方式不須要隧道結構,所以可使用大多數操做系統作爲物理服務器。性能
DR模式的效率很高,可是配置稍微複雜一點,所以對於訪問量不是特別大的公司能夠用haproxy/nginx取代。日1000-2000W PV或者併發請求1萬一下均可以考慮用haproxy/nginx。測試
缺點:操作系統
全部 RS 節點和調度器 LB 只能在一個局域網裏面。
相比於其餘兩種模式性能最好!也能夠實現跨機房,相對比較困難~
2、實驗
1>準備環境
#一、準備三臺虛擬機,一臺Dserver 端, 兩臺REserver端
#二、三臺主機ip 必須是同一網段
REserver1 端 ip : 192.168.206.4
REserver2 端ip : 192.168.206.5
Dserver 端 ip : 192.168.206.3
#三、 vip (虛擬服務ip) : 192.168.206.22
2> Dserver端 下載 ipvsadm 包
查看
3> 添加對外服務的ip ( vip)
4>添加兩臺REserver 主機
5>查看
6>配置網卡的子網口 爲 vip (ens33 :0 )
&1臨時方法
&2永久方法
再編輯一個網卡配置 文件,將DEVICE 改爲 ens33:0 便可 迴環地址 lo:0 同理
查看
注:執行可能會出現下面狀況,找不到 ifconfig 這個命令
#1緣由是 sentos7 最小安裝 沒有自帶 ifconfig這個命令的包,我能夠來查找一下這個命令所在的包,而後去安裝它
#2,經過查找發現它在 net-tools 這個包裏面,咱們去下載它
#3.查看
再使用 ifconfig 這個命令就能夠了
7> 添加靜態路由( 訪問 192.168.206.22 ,都走 ens33:0 這個網卡)
^1
^2, 查看
添加成功!
REserver 1端 與 REserver 2 端
8> 在迴環地址上配置 vip ( REserver 1端 與 REserver 2 端 都須要設置 )
9> 分別添加靜態路由
10>定義接受請求的響應的級別與向外通告的級別 ,使它們不能向外宣告!
arp_ignore:定義接收到ARP請求時的響應級別
0:默認,只用本地配置的有響應地址都給予響應
1:僅僅在目標IP是本地地址,而且是配置在請求進來的接口上的時候纔給予響應 (僅在請求的目標地址配置請求到達的接口上的時候,纔給予響應)
/proc/sys/net/ipv4/conf/lo/arp_ignore
arp_announce:定義將本身的地址向外通告時的級別
0:默認,表示使用配置在任何接口的任何地址向外通告
1:儘可能僅向目標網絡通告與其網絡匹配的地址
2:僅向與本地接口上地址匹配的網絡進行通告
/proc/sys/net/ipv4/conf/all/arp_announce
配置以下
REserver1:
REserver2:
11>所有開啓 httpd 服務
注:這裏使用ansible 開啓 REserver1 端 與 REserver2 端 的httpd 服務
@1
@2查看
所有開始成功
12> 測試 (記得在 REserver端建立測試文件)
抓取成功
2、VS/TUN模式
①.客戶端將請求發往前端的負載均衡器,請求報文源地址是CIP,目標地址爲VIP。
②.負載均衡器收到報文後,發現請求的是在規則裏面存在的地址,那麼它將在客戶端請求報文的首部再封裝一層IP報文,將源地址改成DIP,目標地址改成RIP,並將此包發送給RS。
③.RS收到請求報文後,會首先拆開第一層封裝,而後發現裏面還有一層IP首部的目標地址是本身lo接口上的VIP,因此會處理次請求報文,並將響應報文經過lo接口送給eth0網卡直接發送給客戶端。
注意:
須要設置lo接口的VIP不能在公網上出現。
優勢:
負載均衡器只負責將請求包分發給後端節點服務器,而RS將應答包直接發給用戶。因此,減小了負載均衡器的大量數據流動,負載均衡器再也不是系統的瓶頸,就能處理很巨大的請求量,這種方式,一臺負載均衡器可以爲不少RS進行分發。並且跑在公網上就能進行不一樣地域的分發。
缺點:
隧道模式的RS節點須要合法IP,這種方式須要全部的服務器支持」IP Tunneling」(IP Encapsulation)協議,服務器可能只侷限在部分Linux系統上。
相比於其餘兩種模式,TUN 模式用的很少