LVS实验一:(LVS负载均衡群集DR模式)
名称
|
角色
|
IP地址
|
Load Balancer
(RHEL5)
|
均衡器
|
eth0:0(Vip):172.16.1.198
|
eth0:172.16.1.196
|
RealServer1
(RHEL5)
|
服务器群集节点1
(Web服务器)
|
lo:0(Vip):172.16.1.198
|
eth0:172.16.1.191
|
RealServer2
(RHEL5)
|
服务器群集节点2
(Web服务器)
|
lo:0(Vip):172.16.1.198
|
eth0:172.16.1.192
|
![](http://img1.51cto.com/attachment/201209/144407799.png)
实验1步骤:
一、
Load Balancer
配置
1
)设置网卡
IP
地址
[root@LVS-Master /]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:0c:29:7c:1a:c4
NETMASK=255.255.0.0
IPADDR=172.16.1.196
GATEWAY=172.16.1.254
TYPE=Ethernet
2
)安装
ipvsadm
管理器
[root@LVS-Master /]# mount /dev/cdrom /media/
[root@LVS-Master /]# cd /media/Cluster
[root@LVS-Master Cluster]# rpm -ivh ipvsadm-1.24-8.1.i386.rpm
3
)配置
VIP
设定脚本
[root@LVS-Master ~]# vi /opt/vip.sh
#!/bin/bash
VIP=172.16.1.198
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev eth0:0
4
)设置脚本可执行权限
[root@LVS-Master ~]# chmod u+x /opt/vip.sh
5
)执行
VIP
脚本
[root@LVS-Master ~]# echo "/opt/vip.sh" >> /etc/rc.local
[root@LVS-Master ~]# /opt/vip.sh
[root@LVS-Master ~]# ifconfig eth0:0
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:7C:1A:C4
inet addr:172.16.1.198 Bcast:172.16.1.198 Mask:255.255.255.255
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:67 Base address:0x2000
6
)使用
ipvsadm
命令工具设置
DR
模式负载均衡群集
[root@LVS-Master ~]# ipvsadm -A -t 172.16.1.198:80 -s rr
[root@LVS-Master ~]# ipvsadm -a -t 172.16.1.198:80 -r 172.16.1.191:80 -g
[root@LVS-Master ~]# ipvsadm -a -t 172.16.1.198:80 -r 172.16.1.192:80 –g
保存
ipvsadm
设置到
/etc/sysconfig/ipvsadm
文件以后,下次启动可以直接执行“
service ipvsadm start
”命令,不再需要逐条输入命令。
[root@LVS-Master ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@LVS-Master ~]# ipvsadm –l //
查看
ipvsadm
列表
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.16.1.198:http rr
-> 172.16.1.192:http Route 1 0 0
-> 172.16.1.191:http Route 1 0 0
二、
Realserver
服务器上的配置
提供服务的
RealServer1
和
RealServer2
不需要安装任何
IPVS
软件,只需要设置在开机后自动执行以下脚本:
1
)在
RealServer1
上的设置
[root@localhost ~]# vi /opt/lvs-dr //
编写
lvs-dr
脚本
#!/bin/bash
VIP="172.16.1.198"
/sbin/ifconfig eth0 172.16.1.191/16 up
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/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
[root@localhost ~]# chmod u+x /opt/lvs-dr //
添加脚本
lvs-dr
的执行权限
[root@localhost ~]# echo "/opt/lvs-dr" >> /etc/rc.local //
让脚本
lvs-dr
随机开机启动
[root@localhost ~]# /opt/lvs-dr //
执行
lvs-dr
脚本
[root@localhost ~]# echo "1111" > /var/www/html/index.html //
在
RealServer1
添加测试页
[root@localhost ~]# servcie httpd restart //
重启
web
服务器
2
)在
RealServer2
上的设置
[root@localhost ~]# vi /opt/lvs-dr //
编写
lvs-dr
脚本
#!/bin/bash
VIP="172.16.1.198"
/sbin/ifconfig eth0 172.16.1.192/16 up
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/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
[root@localhost ~]# chmod u+x /opt/lvs-dr //
添加脚本
lvs-dr
的执行权限
[root@localhost ~]# echo "/opt/lvs-dr" >> /etc/rc.local //
让脚本
lvs-dr
随机开机启动
[root@localhost ~]# /opt/lvs-dr //
执行
lvs-dr
脚本
[root@localhost ~]# echo "2222" > /var/www/html/index.html //
在
RealServer1
添加测试页
[root@localhost ~]# servcie httpd restart //
重启
web
服务器
三、测试
在两台客户机上分别打开浏览器,输入
http://172.16.1.198,
将分别看到不同的页面。
在
Balancer
中的查看测试
[root@LVS-Master ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.16.1.198:80 rr
-> 172.16.1.192:80 Route 1 0 5
-> 172.16.1.191:80 Route 1 0 4
LVS实验二:(LVS负载均衡群集NAT模式)
名称
|
角色
|
IP地址
|
Load Balancer
(RHEL5)
|
均衡器
|
eth0:172.16.1.198
|
eth1:192.168.1.1
|
RealServer1
(RHEL5)
|
服务器群集节点1
(Web服务器)
|
eth0:192.168.1.191
|
RealServer2
(RHEL5)
|
服务器群集节点2
(Web服务器)
|
eth0:192.168.1.192
|
![](http://img1.51cto.com/attachment/201209/144423248.png)
实验步骤:
一、
Load Balancer
配置
1)
设置网卡
IP
地址
[root@LVS-Master ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:0c:29:7c:1a:c4
NETMASK=255.255.0.0
IPADDR=172.16.1.198
GATEWAY=172.16.1.1
TYPE=Ethernet
[root@LVS-Master ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1 #内网不用配置网关
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:0c:29:7c:1a:ce
NETMASK=255.255.255.0
IPADDR=192.168.1.1
TYPE=Ethernet
[root@LVS-Master ~]# service network restart
2)
开启内核
IPV4
的路由转发功能
[root@LVS-Master ~]# vi /etc/sysctl.conf
将第七行 :
net.ipv4.ip_forward = 0
改为:
net.ipv4.ip_forward = 1
添加一条防火墙规则(
NAT
转换)
iptables –t nat –A POSTROUTNG –s 192.168.6.0/24 –o eth0 –j SNAT --to-source 172.16.1.198
[root@LVS-Master ~]# sysctl -p //
使上面做的修改生效
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
3
)使用
ipvsadm
命令工具设置
NAT
模式负载均衡群集
[root@LVS-Master ~]# ipvsadm -A -t 172.16.1.198:80 -s wlc
[root@LVS-Master ~]# ipvsadm -a -t 172.16.1.198:80 -r 192.168.1.191:80 -m -w 1
[root@LVS-Master ~]# ipvsadm -a -t 172.16.1.198:80 -r 192.168.1.192:80 –m -w 1
二、
Realserver
服务器上的配置
提供服务的
RealServer1
和
RealServer2
不需要安装任何
IPVS
软件,只需要设置每台机器的
IP
地址,并开启
apache
服务器就好。
1
)在
RealServer1
上的设置
设置本服务器的
ip
地址为:
192.168.1.191/24
网关为:
192.168.1.1
。启动
apache
服务器
[r
oot@localhost ~]# yum install httpd
[root@localhost ~]# echo "1111" > /var/www/html/index.html //
在
RealServer1
添加测试页
[root@localhost ~]# servcie httpd restart //
重启
web
服务器
2
)在
RealServer2
上的设置
设置本服务器的
ip
地址为:
192.168.1.192/24
网关为:
192.168.1.1
。启动
apache
服务器
[r
oot@localhost ~]# yum install httpd
[root@localhost ~]# echo "2222" > /var/www/html/index.html //
在
RealServer1
添加测试页
[root@localhost ~]# servcie httpd restart //
重启
web
服务器
三、测试
在两台客户机上分别打开浏览器,输入
http://172.16.1.198,
将分别看到不同的页面。
在
Balancer
中的查看测试
[root@LVS-Master ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.16.1.198:80 rr
-> 192.168.1.192:80 Masq 1 0 5
-> 192.168.1.191:80 Masq 1 0 5
LVS
实验三:(
LVS
负载均衡群集
TUN
模式)
名称
|
角色
|
IP地址
|
Load Balancer
(RHEL5)
|
均衡器
|
eth0:192.168.5.196
|
eth0:0:192.168.5.198
|
RealServer1
(RHEL5)
|
服务器群集节点1
(Web服务器)
|
eth0:192.168.5.191
|
tunl0:192.168.5.198
|
RealServer2
(RHEL5)
|
服务器群集节点2
(Web服务器)
|
eth0: 192.168.5.192
|
tunl0:192.168.5.198
|
![](http://img1.51cto.com/attachment/201209/144443403.png)
实验步骤:
一、
Load Balancer
配置
1
)安装
ipvsadm
管理器
[root@LVS-Master /]# mount /dev/cdrom /media/
[root@LVS-Master /]# cd /media/Cluster
[root@LVS-Master Cluster]# rpm -ivh ipvsadm-1.24-8.1.i386.rpm
2
)通过脚本
/opt/ld-tun
设置
IP
地址,并调整内核参数
[root@localhost ~]# vi /opt/ld-tun
#!/bin/bash
/sbin/service network stop &> /dev/null
/sbin/ifconfig eth0 192.168.5.196/24 up
/sbin/ifconfig eth0:0 192.168.5.198 broadcast 192.168.5.198 netmask 255.255.255.255 up
/sbin/route add -host 192.168.5.198 dev eth0:0
echo "0" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/conf/all/send_redirects
echo "1" > /proc/sys/net/ipv4/conf/default/send_redirects
echo "1" > /proc/sys/net/ipv4/conf/eth0/send_redirects
[root@localhost ~]# chmod +x /opt/ld-tun
[root@localhost ~]# /opt/ld-tun
3
)使用
ipvsadm
命令工具设置
TUN
模式负载均衡群集
[root@localhost ~]# ipvsadm -A -t 192.168.5.198:80 -s wlc
[root@localhost ~]# ipvsadm -a -t 192.168.5.198:80 -r 192.168.5.191:80 -i
[root@localhost ~]# ipvsadm -a -t 192.168.5.198:80 -r 192.168.5.192:80 -i
[root@localhost ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@localhost ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.5.198:80 wlc
-> 192.168.5.192:80 Tunnel 1 0 0
-> 192.168.5.191:80 Tunnel 1 0 0
二、
Realserver
服务器上的配置
提供服务的
RealServer1
和
RealServer2
不需要安装任何
IPVS
软件,只需要设置每台机器的
IP
地址及修改内核参数,并开启
apache
服务器就好。
1
)在
RealServer1
上的设置
[root@localhost ~]# vi /opt/lvs-tun
#!/bin/bash
#
modprobe ipip
/sbin/service network stop &> /dev/null
/sbin/ifconfig eth0 192.168.5.191/24 up
/sbin/ifconfig tunl0 192.168.5.198 broadcast 192.168.5.198 netmask 255.255.255.255 up
/sbin/route add -host 192.168.5.198 dev tunl0
echo "0" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/tunl0/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter [root@localhost ~]# chmod +x /opt/lvs-tun
[root@localhost ~]# /opt/lvs-tun
1
)在
RealServer2
上的设置
[root@localhost ~]# vi /opt/lvs-tun
#!/bin/bash
#
modprobe ipip
/sbin/service network stop &> /dev/null
/sbin/ifconfig eth0 192.168.5.192/24 up
/sbin/ifconfig tunl0 192.168.5.198 broadcast 192.168.5.198 netmask 255.255.255.255 up
/sbin/route add -host 192.168.5.198 dev tunl0
echo "0" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/tunl0/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
三、测试
在两台客户机上分别打开浏览器,输入
http://192.168.5.198,
将分别看到不同的页面。
[root@localhost ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.5.198:80 wlc
-> 192.168.5.192:80 Tunnel 1 0 7
-> 192.168.5.191:80 Tunnel 1 0 7