ipvsadm-2 DR模式及自動檢測後端服務器狀態

1 DR模式 wKioL1c92X6Q67ElAAAnkPJ47_Q549.png

1 配置eth0 IP

2 關閉ARP相應

rs1 rs2關閉arp 通告 迴應

sysctl -w net.ipv4.conf.all.arp_ignore=1

sysctl -w net.ipv4.conf.eth0.arp_ignore=1

sysctl -w net.ipv4.conf.all.arp_announce=2

sysctl -w net.ipv4.conf.all.arp_announce=2


3 3個全配置

   rs2 rs1 ifconfig lo:0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.100

   DR ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.100

   rs1 rs2 route add -host 192.168.1.100 dev lo:0

   DR   route add -host 192.168.1.100 dev eth0:0


4 配置ipvsadm  -g  DR模式

ipvsadm -A -t 192.168.1.100:80 -s wrr

ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.10:80 -g -w 2 

ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.12:80 -g -w 1

5  

腳本實現後端健康檢查  自動刪除添加


   #!/bin/bash

        #

        VIP=192.168.1.100    (1 提供服務IP)

        CPORT=80

        FAIL_BACK=127.0.0.1

        FBSTATUS=0

        RS=("192.168.1.10" "192.168.1.12" "192.168.1.13")  (2 此處可以添加其他真實主機)

        RSTATUS=("1" "1" "1")            (3 添加真實主機時, 此處加 一個)

        RW=("2" "1" "1")                    (4 添加真實主機時, 此處加 一個)

        RPORT=80

        TYPE=g

        add() {

          ipvsadm -a -t $VIP:$CPORT -r $1:$RPORT -$TYPE -w $2

          [ $? -eq 0 ] && return 0 || return 1

        }

        del() {

          ipvsadm -d -t $VIP:$CPORT -r $1:$RPORT

          [ $? -eq 0 ] && return 0 || return 1

        }

        while :; do

          let COUNT=0

          for I in ${RS[*]}; do

            if curl --connect-timeout 1 http://$I &> /dev/null; then

              if [ ${RSTATUS[$COUNT]} -eq 0 ]; then

                 add $I ${RW[$COUNT]}

                 [ $? -eq 0 ] && RSTATUS[$COUNT]=1

              fi

            else

              if [ ${RSTATUS[$COUNT]} -eq 1 ]; then

                 del $I

                 [ $? -eq 0 ] && RSTATUS[$COUNT]=0

              fi

            fi

            let COUNT++

          done

          sleep 5

        done

執行 . /zd.sh &


測試   關閉一臺 查看 ipvsadm -L -n

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章