Lvs负载均衡-----DR模式搭建

一、实验原理:

过程如下:
1)client 向目标 vip 发出请求,LB(调度器) 接收。
2)VS 根据负载均衡算法选择一台 active 的 real server,将此 RIP 所在网卡的 mac 地址作为目标 mac 地址,发送到局域网里。
3)real server在局域网中收到这个帧,拆开后发现目标 IP(VIP)与本地匹配,于是
处理这个报文;随后重新封装报文,发送到局域网。
4)客户访问的是VIP,那么如果服务器端没有这个VIP,发还给客户的包肯定不被信任,所以给服务器集群都加VIP,然后让后端服务器使用VIP将包发还给客户。

注意

  • VIP为调度器与服务器共享,此时VIP是对外可见的,用户访问的就是VIP,用来接受用户请求报文。

  • 它是通过在调度器LB上修改数据包的目的MAC地址实现转发,注意源地址仍然是CIP,目的地址仍然是VIP地址;

  • 请求的报文经过调度器,而服务器响应处理后的报文无需经过调度器LB,因此并发访问量大时使用效率很高(和NAT模式比)

  • 因为DR模式是通过MAC地址改写机制实现转发,因此所有RS节点和调度器LB只能在一个局域网里面;由于DR模式的调度器仅做MAC地址的改写,所以调度器LB就不能改写目标端口,那么服务器就得使用和VIP相同的端口提供服务(即RS和LB必须拥有相同的IP,处于一个vlan下)。

  • 服务器主机需要绑定VIP地址在LO接口上,并且需要配置ARP抑制。(如果不做arp抑制,那么访问100这个VIP并不能始终指向调度器、而是具有随机性)

注: DR模式工作在数据链路层,不支持端口转发;

二、部署

(1)实验环境:
本次实验所有主机均为rhel7.3,并且selinux为disabled、防火墙为关闭状态;

主机名           角色                 IP 
server1       LB(调度器)           172.25.40.1
server2       RS(真实后端服务器)   172.25.40.2
server3       RS(真实后端服务器)   172.25.40.3

(2)实验过程
server1:(调度器)
关闭http服务

 yum install ipvsadm        #安装ipvsadm调度器
 ipvsadm -l					#查看ipvsadm策略
 ipvsadm -C                 #清除ipvsadm策略
 ipvsadm -A -t 172.25.40.100:80 -s rr    
 							#添加VIP以及端口80,-t 协议为tcp,rr算法轮询模式的策略。

 ipvsadm -a -t 172.25.40.100:80 -r 172.25.40.2:80 -g   
 							#给真实服务机添加VIP,-g 指定DR模式
 ipvsadm -a -t 172.25.40.100:80 -r 172.25.40.3:80 -g
 ipvsadm -l
 ip addr add 172.25.40.100/24 dev eth0  
 							#将VIP加入本机server1。
 ip addr show

在这里插入图片描述

Real Server:

yum install httpd 						#安装apache	
vim  /var/www/html/index.html           #编写初始化网页
systemctl restart httpd		   			 #重启apache
ip addr add 172.25.40.100/24 dev eth0    #将VIP加入本机
ip addr show

测试:
curl 172.25.40.100
在这里插入图片描述

此时看似已经达到了轮询效果,其实并没有。因为调度器其实并没有实现调度,而是后端服务器自己抢占的包,,所以我们需要删除已经绑定的MAC地址:

arp -an | grep 172.25.40.100			#查看绑定的MAC地址
arp -d 172.25.40.100				    #清除访问的MAC地址

对后端Real Server均进行配置:

server2:

yum install arptables				#安装网络控制进程
arptables -A INPUT -d 172.25.40.100 -j DROP		
									#将此IP下的请求忽略,只遵从调度器的调配
arptables -A OUTPUT -s 172.25.40.100 -j mangle --mangle-ip-s 172.25.40.2
									#将发出去的数据包时伪装成VIP发送
arptables -L						#查看加入的策略
ip addr add 172.25.40.100/24 dev eth0		##server2 加入VIP
ip addr show 

在这里插入图片描述

server 3:

yum install arptables			     	#安装网络控制进程
arptables -A INPUT -d 172.25.40.100 -j DROP		
									    #将此IP下的请求忽略,只遵从调度器的调配
arptables -A OUTPUT -s 172.25.40.100 -j mangle --mangle-ip-s 172.25.40.3
									     #将发出去的数据包时伪装成VIP发送
arptables -L					       	#查看加入的策略
ip addr add 172.25.40.100/24 dev eth0		#server3 加入VIP

测试:
curl 172.25.40.100
在这里插入图片描述若采用加权轮询算法:
在这里插入图片描述在这里插入图片描述但是当其中一台 real server 宕机后,仍会采用负载均衡机制,且显示该真实服务器主页内容为报错,并不会自动屏蔽出错的服务器,没有健康检机制,这就用到下一篇的内容 lvs+ldirectord

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值