1.1 DR部署方式

 

              在LVS-DR 中,调度器根据各个服务器的负载情况,动态地选择一台服务器,不修改也不封装
IP 报文,而是将数据帧的MAC 地址改为选出服务器的MAC 地址,再将修改后的数据帧在与服务器组
的局域网上发送。因为数据帧的MAC 地址是选出的服务器,所以服务器肯定可以收到这个数据帧,
从中可以获得该IP 报文。当服务器发现报文的目标地址VIP 是在本地的网络设备上,服务器处理这
个报文,然后根据路由表将响应报文直接返回给客户。

        

             在LVS-DR中,根据缺省的TCP/IP协议处理,请求报文的目标地址是VIP,响应报文的源地址肯定也是VIP,所以响应报文不需要任何修改,直接返回给客户,对于客户来说只有一台服务器在运行服务器而完全透明。

清除上个实验的配置

 

OSCentOS5.4 32bit 

 

安装时选择了集群组件,所以就使用这个自带的ipvsadm

 

LVS Server

Eth0192.168.1.43/255.255.255.0/192.168.1.254

Eth0:1192.168.1.40/ 255.255.255.255 (VIP)

 

Real Server A

Eth0192.168.1.44/255.255.255.0/192.168.1.254

Lo:0192.168.1.40/ 255.255.255.255 (VIP)

 

RealServer B

Eth0192.168.1.45/255.255.255.0/192.168.1.254

Lo:0192.168.1.40/ 255.255.255.255 (VIP)

 

首先,在两台Real Server上启动需要负载均衡的服务,例如Tomcat,也就是HTTP-8080

然后,配置LVS Server

Lvsup.sh

#!/bin/bash

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

 

IPVSADM='/sbin/ipvsadm'

 

VIP=192.168.1.40

RS1=192.168.1.44

RS2=192.168.1.45

 

ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up

 

route add –host $VIP dev eth0:1

 

$IPVSADM -C

$IPVSADM -A -t $VIP:8080 -s lc -p 600

$IPVSADM -a -t $VIP:8080 -r $RS1:8080 -g -w 1

$IPVSADM -a -t $VIP:8080 -r $RS2:8080 -g -w 1

 

最后,配置RealServer(两台一样)

 

RSup.sh

 

#!/bin/bash

VIP=192.168.1.40

ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

route add –host $VIP dev lo:0

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
sysctl –p

 

效果说明:

1.按照lc方式调度后面的两台服务器,即最少连接模式,且有600秒连接保持

2.这个Lvsup.shRSup.sh是个shell脚本,放在哪里都行,只要能运行,其中的ipvsadm -C命令,会在每次运行这个脚本式把现有lvs服务规则清空

3.RealServer需要接受VIP为目的地址的数据包,所以有了后面的lo:0配置和ARP的忽略宣告配置