LVS的DR模式html
(1)環境說明nginx
三臺機器:vim
director(eth0192.168.71.100, vip eth0:0: 192.168.71.110)瀏覽器
real server1(eth0 rip: 192.168. 71.111, vip lo:0: 192.168.71.110)bash
real server2(eth0 rip: 192.168.71.166, vip lo:0: 192.168.71.110)服務器
三臺機器及vip必須在一個網段測試
(2)編寫腳本.net
Director 上執行server
# vim /usr/local/sbin/lvs_dr.shhtm
增長以下內容:
#! /bin/bash
# director 服務器上開啓路由轉發功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
vip=192.168.71.110
rs1=192.168.71.111
rs2=192.168.71.166
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
#給eth0:0綁定一個vip地址 子網是255.255.255.255#
route add -host $vip dev ens33:2
#增長一條路由#
$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
#-g是DR模式#
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
兩臺rs上也編寫腳本 vim /usr/local/sbin/lvs_rs.sh//內容以下
#/bin/bash
vip=192.168.71.110
#把vip綁定在lo上,是爲了實現rs直接把結果返回給客戶端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#如下操做爲更改arp內核參數,目的是爲了讓rs順利發送mac地址給客戶端
#參考文檔www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
而後 director 上執行
# bash /usr/local/sbin/lvs_dr.sh
兩臺 rs 上執行
# bash /usr/local/sbin/lvs_dr_rs.sh
兩臺rs要把nginx啓動
(3)測試
Windows 下瀏覽器測試訪問 http://192.168.71.110
在打開一臺虛擬機用crul 192.168.71.110 測試
查看LVS的執行過程
[root@master ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.71.110:80 wrr
-> 192.168.71.111:80 Route 1 0 1
-> 192.168.71.166:80 Route 1 0 4