LVS,NET,TUNL,DR实现负载均衡
/* @author:luowen @time:2013-08-09 @LVS+[NET,TUNL,DR]实现负载均衡 [LVS-NAT] 1.原理:外网Ip访问LVS服务器,LVS通过地址转换成外网访问真是的服务器,真是服务器把结 果返回给LVS在由LVS返回给外网IP 客户访问IP:外网 LVS:两个网卡一个外网IP,一个内网IP 真是服务器:和LVS在同一个网段的内网 注:这个模式只需要一个公网ip,但是每次请求和返回都需要经过LVS服务器,服务器可能会成为瓶颈. 2.安装 yum install ipvsadm* 3.配置
[网络拓扑]
lvs-server:
两个网卡: eth0 : 8.8.8.8 eth1 192.168.1.1
real-server1:
一块网卡: eth0 : 192.168.1.2
real-server2:
一块网卡: eth0 : 192.168.1.2
[注] real-server1 eth0,real-server2 eth0 ,lvs-server eth1 在同一个网段
[LVS-SERVER] (1). echo '1' > /proc/sys/net/ipv4/ip_forward 开启路由管道(服务器两个网卡可以链接数据,实现路由) (2). ipvsadm -C //清除所有的转发表 (3).ipvsadm -A -t 8.8.8.8:80 -s rr ipvsadm -a -t 8.8.8.8:80 -r 192.186.10.2:80 -m ipvsadm -a -t 8.8.8.8:80 -r 192.186.10.3:80 -m [REAL-SERVER](两台都一样) (1). route add default gw 192.168.1.1 真实服务器都要通过LVS eth1 网卡出去 //配置网关
(2). 如果实验失败,检查下iptables selinux 设置 [LVS-IP-TUNL] 1. 原理:外网Ip访问LVS服务器,LVS调度到真是服务器,真是服务器把结果直接返回给外网客户 客户访问IP:外网 LVS:公网IP 真是服务器:公网IP 注:LVS和真是服务器都需要配置同样的公网IP,需要租用四个公网的ip,没有瓶颈 2.安装ipvsadm yum install ipvsadm* 3.配置 [LVS SERVER] ifconfig tunl0 192.168.10.10 netmask 255.255.255.255 up //配置隧道ip地址 route add -host 200.168.10.10 dev tunl0 //添加路由 ipvsadm -C ipvsadm -At 200.168.10.10:80 -s rr ipvsadm -at 200.168.10.10:80 -r 200.168.10.3 -i ipvsadm -at 200.168.10.10:80 -r 200.168.10.4 -i [REAL SERVER](两台都一样) ifconfig tunl0 192.168.10.10 netmask 255.255.255.255 up //配置隧道ip地址 route add -host 200.168.10.10 dev tunl0 //添加路由 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 [LVS-DR] 1. 原理:就是讲tunl网卡用lo网卡代替 2.安装ipvsadm yum install ipvsadm* 3.配置 [LVS SERVER] ifconfig eth0:0 192.168.10.10 netmask 255.255.255.255 up //配置隧道ip地址 route add -host 200.168.10.10 dev eth0:0 //添加路由 ipvsadm -C ipvsadm -At 200.168.10.10:80 -s rr ipvsadm -at 200.168.10.10:80 -r 200.168.10.3 -g ipvsadm -at 200.168.10.10:80 -r 200.168.10.4 -g [REAL SERVER] ifconfig lo:0 192.168.10.10 netmask 255.255.255.255 up //配置隧道ip地址 route add -host 200.168.10.10 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 [轮叫算法] 1.Round Robin 平均轮叫 (平均分配) 2.Weighted Round Robin 加权轮叫(自动分配到性能好的服务器) 3.Least Connections 最少链接算法(分配到最少链接的服务器) 4.Weighted Least Connections 加权最少链接算法 /*