centos系统Lvs负载均衡配置详解

作者:袖梨 2022-06-30


实验用三台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,其他变动不大,此处不加详解。

再来看个简单的例子、LVS负载均衡

LvsIP :118.126.3.42  LvsVIP: 118.126.3.77   Web:1 118.126.3.47   Web2:118.126.3.57


LVS Server 基本配置

[root@LVS ~]#ifconfig seth0:0 118.126.3.77  netmask 255.255.255.255   设置零时虚拟ip 
[root@LVS ~]# router add  -host  118.126.3.77 dev seth0:0          将此IP加入路由队列
[root@LVS ~]#yum –y install ipvsadmin*               安装lvs虚拟服务支持的控制命令 
[root@LVS ~]#ipvsadm –At 118.126.3.77:80  -s  rr     保存虚拟服务器规则
[root@LVS ~]#ipvsadm –at 118.126.7.77:80 –r 118.126.3.47:80 访问7.77会指向到3.47服务上
[root@LVS ~]#ipvsadm –at 118.126.7.77:80 –r 118.126.3.57:80 访问7.77会指向到3.57服务上
 
Web1 Server 基本配置

[root@WEB 1~]#ifconfig lo:0 118.126.3.77 network 255.255.255.255 web1服务器的回环接口
[root@WEB 1~]# router add  -host  118.126.3.77 dev lo:0     加入IP路由队列
[root@WEB 1~]#echo “1”> /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@WEB 1~]#echo “2”> /proc/sys/net/ipv4/conf/all/arp_announce
[root@WEB 1~]#echo “1”> /proc/sys/net/ipv4/conf/all/arp_ignore 
[root@WEB 1~]#echo “2”> /proc/sys/net/ipv4/conf/lo/arp_announce
 
 
Web2 Server 基本配置

[root@WEB 2~]#ifconfig lo:0 118.126.3.77 network 255.255.255.255 web1服务器的回环接口
[root@WEB 2~]# router add  -host  118.126.3.77 dev lo:0     加入IP路由队列
[root@WEB 2~]#echo “1”> /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@WEB 2~]#echo “2”> /proc/sys/net/ipv4/conf/all/arp_announce
[root@WEB 2~]#echo “1”> /proc/sys/net/ipv4/conf/all/arp_ignore 
[root@WEB 2~]#echo “2”> /proc/sys/net/ipv4/conf/lo/arp_announce

相关文章

精彩推荐