(a) 當用戶請求到達Director Server,此時請求的數據報文會先到內核空間的PREROUTING鏈。 此時報文的源IP爲CIP,目標IP爲VIPphp
(b) PREROUTING檢查發現數據包的目標IP是本機,將數據包送至INPUT鏈前端
(c) IPVS比對數據包請求的服務是否爲集羣服務,如果,將請求報文中的源MAC地址修改成DIP的MAC地址,將目標MAC地址修改RIP的MAC地址,而後將數據包發至POSTROUTING鏈。 此時的源IP和目的IP均未修改,僅修改了源MAC地址爲DIP的MAC地址,目標MAC地址爲RIP的MAC地址mysql
(d) 因爲DS和RS在同一個網絡中,因此是經過二層來傳輸。POSTROUTING鏈檢查目標MAC地址爲RIP的MAC地址,那麼此時數據包將會發至Real Server。linux
(e) RS發現請求報文的MAC地址是本身的MAC地址,就接收此報文。處理完成以後,將響應報文經過lo接口傳送給eth0網卡而後向外發出。 此時的源IP地址爲VIP,目標IP爲CIPweb
(f) 響應報文最終送達至客戶端sql
一、保證前端路由將目標地址爲VIP報文通通發給Director Server,而不是RSvim
二、RS可使用私有地址;也能夠是公網地址,若是使用公網地址,此時能夠經過互聯網對RIP進行直接訪問後端
三、RS跟Director Server必須在同一個物理網絡中瀏覽器
四、全部的請求報文經由Director Server,但響應報文必須不能進過Director Server服務器
五、不支持地址轉換,也不支持端口映射
六、RS能夠是大多數常見的操做系統
七、RS的網關毫不容許指向DIP(由於咱們不容許他通過director)
八、RS上的lo接口配置VIP的IP地址
實驗環境:一臺DR負載均衡器,一塊網卡172.17.252.66,橋接,一臺後端服務器172.17.252.68,一塊網卡,橋接
1.yum install ipvsadm -y
2.grep -i -C 10 "ipvs" /boot/config-VERSION-RELEASE.x86_64,#查看內核是否支持ipvs模塊
3.iptables -F清空防火牆策略
setenforce 0關閉selinux策略
4.ifconfig ens33:0 172.17.252.100 broadcast 172.17.252.100 netmask 255.255.255.255 up #配置VIP到本地網卡別名ens33:0上(vip地址能夠是隨意的),而且只廣播本身,不然,未來會和後端服務器上回環網卡上配置的vip衝突,因此在後端服務器上配置的vip也只廣播本身
5.route add -host 172.17.252.100 dev ens33:0 #配置vip路由
6.ipvsadm -A -t 172.17.252.100:80 -s wrr #開啓一個基於80端口的虛擬web服務,調度方式爲wrr
7.ipvsadm -a -t 172.17.252.100:80 -r 172.17.252.68:80 -g -w 1 #配置web服務後端real server 爲DR工做方式 權重爲1
8.修改內核配置,開啓路由轉發
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p 使修改的內核配置參數生效
iptables -F ;setenforce 0清空防火牆策略,關閉selinux策略
1.ifconfig lo:0 172.17.253.100 broadcast 172.17.253.100 netmask 255.255.255.255 up #配置VIP到本地迴環網卡lo上,並只廣播本身
2.route add -host 172.17.253.100 lo:0 #配置本地迴環網卡路由
3.
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
#1 只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
#2 對查詢目標使用最適當的本地地址.在此模式下將忽略這個IP數據包的源地址並嘗試選擇與能與該地址通訊的本地地址.
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
#關閉arp應答
(1): 僅在請求的目標IP配置在本地主機的接收到請求報文的接口上時,纔給予響應
(2):必須避免將接口信息向非本網絡進行通告
4.開啓web、php-fpm、mysql服務
在瀏覽器上訪問172.17.252.100(vip)