centos下做Lvs负载均衡

 实验用三台Vmware下虚拟的centos5.5服务器,一台作为负载调度器(Lvs-server),两台真实web服务器(web1,web2).

一、Lvs-nat实验:

配置IP:

1.window7下与虚拟机相连的网卡配置成8.8.8.1,不虚配置网关。

2.Lvs-server需要配置两块网卡,一块(eth0)模拟与外网连接(本实验下与Windows相连),一块(eth1)与内部真实服务器通信。eth0:8.8.8.8,eth1:192.168.10.1

3.web1:eth0:192.168.10.2

4.web2:eth0:192.168.10.3

配置web1,web2的默认网关地址为Lvs-server eth0地址,表示返回的信息通过Lvs-server给浏览器

此时需要在Lvs-server上安装Lvs软件,即ipvsadm

开启Lvs-server路由功能:echo 1 > /proc/sys/net/ipv4/ip_forward(此步必须执行,否则Lvs-server上两块网卡之间不能通信)

然后写调度脚本lvsnat.sh,

#!/bin/bash

#lvsnat.sh

ipvsadm -C(删除此前添加的所有的转化表)

ipvsadm -A -t(表示tcp协议) 8.8.8.8:80 -s rr(轮叫模式)

ipvsadm -a -t 8.8.8.8:80 -r 192.168.10.2:80 -m(把访问8.8.8.8的请求通过轮叫模式转到192.168.10.2服务器上,-m表示nat方式)

ipvsadm -a -t 8.8.8.8:80 -r 192.168.10.3:80 -m

ipvsadm -L -n(打印执行结果)

保存后赋予执行权,然后执行。

最后在windows的浏览器中输入8.8.8.8即可访问真实服务器上的网页。(注意,实验中必须关闭服务器防火墙,包括iptables 和selinux)

 

二、Lvs ip-tun:

实验设备与之前一致。

配置IP:

1.window7下与虚拟机相连的网卡配置成200.168.10.4,不虚配置网关。

2.Lvs-server只需要配置一块网卡,另外还需要配置tun(隧道网卡)。eth0:200.168.10.1,tunl0:200.168.10.10 netmask 255.255.255.255(此处4个255将200.168.10.10限定为另一个网段,此网段只有一个Ip)

3.web1:eth0:200.168.10.2,tunl0:200.168.10.10 netmask 255.255.255.255

4.web2:eth0:200.168.10.3,tunl0:200.168.10.10 netmask 255.255.255.255

修改路由表:

Lvs-server:route add -host 200.168.10.10 dev tunl0

web1:

route del default(删除上个实验添加的网关)

route add -host 200.168.10.10 dev tunl0

web2:

route del default

route add -host 200.168.10.10 dev tunl0

 

Lvs-server服务器脚本:

#!/bin/bash

#..

ipvsadm -C(删除此前添加的所有的转化表)

ipvsadm -A -t(表示tcp协议) 200.168.10.10:80 -s rr(轮叫模式)

ipvsadm -a -t  200.168.10.10:80  -r  200.168.10.2:80 :80 -i(把访问200.168.10.10:80 的请求通过轮叫模式转到200.168.10.2服务器上,-i表示ip-tun方式)

ipvsadm -a -t  200.168.10.10:80  -r  200.168.10.3:80 :80 -i

ipvsadm -L -n(打印执行结果)

执行脚本

 

然后写真实服务器脚本:

#!/bin/bash

#..

echo "1" > /proc/sys/net/ipv4/tunlo/arp_ignore

echo "2" > /proc/sys/net/ipv4/tunlo/arp_announce

echo "1" > /proc/sys/net/ipv4/all/arp_ignore

echo "2" > /proc/sys/net/ipv4/all/arp_announce

(此段含义:外界访问200.168.10.10时忽略,而当Lvs-server将请求转发过来时响应,并把200.168.10.2的mac地址给交换机)

执行脚本

最后在windows的浏览器中输入8.8.8.8即可访问真实服务器上的网页。

 

Lvs dr与ip-tun相似,只不过在lvs-server上用eth0:0代替tunlo,在web1与web2上用lo代替tunlo,其他变动不大,此处不加详解。

你可能感兴趣的:(centos,lvs负载均衡)