1. 程式人生 > >2018-7-5

2018-7-5

sta broadcast oca 微軟雅黑 微軟 ces mark ant res

18.11 LVS DR模式搭建
18.12 keepalived + LVS




18.11 LVS DR模式搭建

準備三臺機器rs1,rs2,vip。一個網卡一個ip

修改網關:

技術分享圖片

技術分享圖片


systemctl restart network

vip需要綁定在所有的機器上


dir上編寫腳本 vim /usr/local/sbin/lvs_dr.sh

內容:

#! /bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward

ipv=/usr/sbin/ipvsadm

vip=192.168.133.200

rs1=192.168.133.132

rs2=192.168.133.133

#註意這裏的網卡名字

ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up

route add -host $vip dev ens33:2

$ipv -C

$ipv -A -t $vip:80 -s wrr

$ipv -a -t $vip:80 -r $rs1:80 -g -w 1

$ipv -a -t $vip:80 -r $rs2:80 -g -w 1

技術分享圖片

設置之前

ifdown 網卡名

ifup 網卡名

相當於重啟,會把原來的ip清空掉。



兩臺rs上也編寫腳本 vim /usr/local/sbin/lvs_rs.sh

內容:

#/bin/bash

vip=192.168.133.200

#把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



最後網頁測試





18.12 keepalived + LVS

技術分享圖片

同樣三臺機器:rs1 rs2 vip


編輯keepalived配置文件 vim /etc/keepalived/keepalived.conf

技術分享圖片

內容如下:

vrrp_instance VI_1 {

#備用服務器上為 BACKUP

state MASTER

#綁定vip的網卡為ens33,你的網卡和阿銘的可能不一樣,這裏需要你改一下

interface ens33

virtual_router_id 51

#備用服務器上為90

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass aminglinux

}

virtual_ipaddress {

192.168.188.110

}

}

virtual_server 192.168.188.110 80 {

#(每隔10秒查詢realserver狀態)

delay_loop 10

#(lvs 算法)

lb_algo wlc

#(DR模式)

lb_kind DR

#(同一IP的連接60秒內被分配到同一臺realserver)

persistence_timeout 60

#(用TCP協議檢查realserver狀態)

protocol TCP


real_server 192.168.188.129 80 {

#(權重)

weight 100

TCP_CHECK {

#(10秒無響應超時)

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

real_server 192.168.188.127 80 {

weight 100

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}


需要更改裏面的ip信息

執行ipvsadm -C 把之前的ipvsadm規則清空掉

systemctl restart network 可以把之前的vip清空掉

兩臺rs上,依然要執行/usr/local/sbin/lvs_rs.sh腳本

keepalived有一個比較好的功能,可以在一臺rs宕機時,不再把請求轉發過去

測試


2018-7-5