LVS的DR模式与NET模式的负载均衡实验

yungame 2019-12-28

LVS 实现负载均衡

  • lvs(Linux Virtual Server) linux虚拟服务
  • VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS。LVS是内核级功能,工作在INPUT链的位置,将发往INPUT的流量进行“处理

    net模式

  • 基于轮询的实验
#设备:
client      :       172.20.0.20
LVS         :       172.20.0.10、192.168.20.10
Real Server :      192.168.20.20 、192.168.20.30、192.168.20.40 三台设备

# 环境
设置client          网关 :172.20.0.10 
设置Read Server     网关 :192.168.20.10  
#-------------------------------------------------------
# lvs 配置

# 1
开启端口转发内核参数,默认为0 ,到此已经实现完成了端口转发功能:
/etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p

# 2
安装  ipvsadm 实现负载均衡:
 yum install ipvsadm -y
创建规则应用基础轮询模式:
ipvsadm -A -t 172.20.0.10 -s rr 

# 3
在轮询模式下添加轮询的地址,查询配置情况
ipvsadm -a -t 172.20.0.10 -r 192.168.20.{20,30,40}
ipvsadm -Ln 
#-------------------------------------------------------
#client 访问测试,即可完成基于轮询的负载均衡调度功能
for(( i=1;i<1000;i++ )); do  curl 172.20.0.10 ;sleep 1 ; done

DR模式

  • 基于轮询的实验2
# 设备
client                 10.20.0.20
route                  10.20.0.10 ,192.168.20.10
LVS                    192.168.20.40 
read Server1            192.168.20.20
read Server2            192.168.20.30

#环境
read Server 1 2        网关:192.168.20.10
LVS                    网关:192.168.20.10
client                 网关:10.20.0.10
route                  端口转发开启(net.ipv4.ip.forward=1)

#配置
#-------------------------------------------------------
#vim
192.168.20.100
#-------------------------------------------------------
# LVS 
#1, 回环网卡设置vip 
ip a a 192.168.20.100/32 dev lo:1

#2, ipvsadm设置 
yum install ipvsadm 
ipvsadm -A -t 192.168.20.100 -s rr
ipvsadm -a -t 192.168.20.100 -r 192.168.20.{20,30} 

#-------------------------------------------------------
#Read server 
#1, 回环网卡设置vip
ip a a 192.168.20.100/32 dev lo:1

#2, 内核参数设置
echo 1 > /proc/sys/net/ipv4/conf/{all,lo}/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/{all,lo}/arp_announce


#3, 安装开启web服务
yum install httpd 
systemctl start httpd 
echo 'ReadServer[1,2]' > /var/www/html/index.html

#-------------------------------------------------------
#client 访问
for(( i=1;i<1000;i++ )); do  curl 192.168.20.200 ;sleep 1 ; done

DR模式vip不与DIP在同一个网段处理办法

  • 基于轮询实验3
  • 需要在路由器对应内网(192网段) 端的网卡上加上一个与vip同“网段”的ip地址
# 设备
client                 10.20.0.20
route                  10.20.0.10(eth0) ,192.168.20.10(eth1)
LVS                    192.168.20.40
read Server1            192.168.20.20
read Server2            192.168.20.30

#环境
read Server 1 2        网关:192.168.20.10
LVS                    网关:192.168.20.10
client                 网关:10.20.0.10
route                  端口转发开启(net.ipv4.ip.forward=1)

#配置
#-------------------------------------------------------
#VIP
10.0.0.100
#-------------------------------------------------------
# LVS 
#1, 回环网卡设置vip 
ip a a 10.0.0.100/32 dev lo:1

#2, ipvsadm设置 
yum install ipvsadm 
ipvsadm -A -t 192.168.20.100 -s rr
ipvsadm -a -t 192.168.20.100 -r 192.168.20.{20,30} 

#-------------------------------------------------------
#Read server 
#1, 回环网卡设置vip
ip a a 10.0.0.100/32 dev lo:1

#2, 内核参数设置
echo 1 > /proc/sys/net/ipv4/conf/{all,lo}/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/{all,lo}/arp_announce


#3, 安装开启web服务
yum install httpd 
systemctl start httpd 
echo 'ReadServer[1,2]' > /var/www/html/index.html

#-------------------------------------------------------
#route 
#方法一
 ip a a  10.0.0.200/8 dev eth1
#方法二
ip route add 10.0.0.100/32 dev eth1 
#笔者:我也不知道为什么会这样~我只是知道这样能成~~~

#-------------------------------------------------------
#client 访问
for(( i=1;i<1000;i++ )); do  curl 192.168.20.200 ;sleep 1 ; done

相关推荐