Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux系統常見問題解答 >> lvs中dr模式配置腳本

lvs中dr模式配置腳本

日期:2017/1/20 17:35:16      編輯:Linux系統常見問題解答

1 dr模式介紹

1.1 lvs的安裝

1.2 lvs模式

lvs有三種模式dr,nat,tun。這裡先介紹dr模式。

1.3 dr特點

1)Load Balancer和所有的Real Server在同一個局域網段上。
2)Real Server將請求處理後,直接返回給用戶,不需要在通過調度器返回。

1.4 處理過程

請求過程:客戶 => vip => RealServer。
響應過程:RealServer =>客戶。

2 配置環境

2.1 LoadBalancer

DIP:192.168.142.133(eth0)。
VIP:192.168.142.211(eth0:1)。

2.2 RealServer1

DIP:192.168.142.130(eth0)。

2.3 RealServer2

DIP:192.168.142.131(eth0)。

3 配置腳本

3.1 配置LoadBalancer

# mkdir -p /usr/local/lvs
# cd /usr/local/lvs
# vi lvs-dr.sh

 

#!/bin/sh

# lvs-dr.sh
#
# lvs的dr模式LVS server腳本
#
# 
# vip和rip必須在同一個網段。VS/DR通過改寫請求報文的MAC地址,將請求的包發送到realserver上,
# 不改變包的源和目標的IP地址,然後realserver直接回復客戶端,不再經過LVS調度器,這樣大大的減輕了LVS的負擔。

# set the vip and port
VIP=192.168.142.211
VPORT1=80

# set the rip and port
# web
RIP1=192.168.142.130
RIP2=192.168.142.131
# port
RPORT1=80

Usage (){
    echo "Usage:`basename $0` (start|stop|status) "
    exit 1
}

if [ $# -ne 1 ];then
  Usage
fi

case $1 in
    start)
        echo "start LVS of DirectorServer"
        echo 1 > /proc/sys/net/ipv4/ip_forward
        
        # set the vip
        /sbin/ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up
        /sbin/route add -host $VIP dev eth0:1
        
        # clear ipvs table
        /sbin/ipvsadm -C
        
        # add lvs vip and port
        /sbin/ipvsadm -A -t $VIP:$VPORT1 -s rr
        
        # add rip and port
        /sbin/ipvsadm -a -t $VIP:$VPORT1 -r $RIP1:$RPORT1 -g -w 1
        /sbin/ipvsadm -a -t $VIP:$VPORT1 -r $RIP2:$RPORT1 -g -w 1
                
        /sbin/ipvsadm -L -n
        ;;
      
    stop)
        echo "close LVS DirectorServer"
        /sbin/ipvsadm -C
        /sbin/ifconfig eth0:1 down
        ;;

    
    status)
        /sbin/ipvsadm -L -n
        ;;
          
    
    *)
        Usage
esac
啟動
#sh lvs-dr.sh start

3.2 配置RealServer1

# mkdir -p /usr/local/lvs

# cd /usr/local/lvs

# vi realServer.sh
 

#!/bin/sh

# realServer.sh
#
# lvs的dr模式RIP server腳本
#  

VIP=192.168.142.211

#vip's broadcast
BROADCAST=192.168.142.255 

Usage ()
{
    echo "Usage:`basename $0` (start|stop)"
    exit 1
}

if [ $# -ne 1 ];then
    Usage
fi

case $1 in
    start)
        echo "reparing for Real Server"
        echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
        echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
        echo "1" >/proc/sys/net/ipv4/conf/eth0/arp_ignore
        echo "2" >/proc/sys/net/ipv4/conf/eth0/arp_announce
        /sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $BROADCAST up
        /sbin/route add -host $VIP dev lo:0
        ;;
        
    stop)
        /sbin/ifconfig lo:0 down
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
        echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_ignore
        echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_announce
        echo "stop Real Server"
        ;;
    
    *)
        Usage
esac

啟動
#sh realServer.sh start

3.3 配置RealServer2

配置同理RealServer1。

4 建立web服務器測試

1)RealServer1與RealServer2安裝與配置Nginx(詳解:http://blog.csdn.net/clevercode/article/details/45442155)

2)在RealServer1的web服務器根目錄建立index.html

# vi index.html
if you see this page,then you know this ip is 192.168.142.130 and this page is from nginx!

3)在RealServer2的web服務器根目錄建立index.html

# vi index.html
if you see this page,then you know this ip is 192.168.142.131 and this page is from nginx!

4)配置host或者dns。將my.domain.com指向VIP:192.168.142.211。

5)刷新頁面將會看到不同的內同。

\

\

Copyright © Windows教程網 All Rights Reserved