LVS模式(一):DR模式(ipvsadm)

本文介绍了LVS Direct Routing(DR)模式的工作原理,包括数据包的流转过程和注意事项。DR模式要求调度器与服务器在同一网段,无需开启路由转发。通过ipvsadm配置示例展示了如何设置调度策略,并讨论了MAC地址绑定问题及解决方案,确保负载均衡轮询正常工作。

一.LVS模式一:DR(Direct Routing)直接路由模式

简单流程

client -> vs -> Rs ->client

详细流程

client——>DS——>prerounting——>input——>ip不变,转换mac地址(源MAC->DS MAC,目的MAC->RS MAC)——>postrounting->RS——>lo——>eth0——>client

首先过来的是PREROUTING->INPUT(流向内部)—如果做转发的化PREROUTING->FORWARD-POSTROUTING(转发)-----出去时OUTPUT->POSTROUTING(流向外部)

工作过程:

当一个client发送一个WEB请求到VIP,LVS调度器根据VIP选择对应的real-server的Pool,根据算法,在Pool中选择一台Real-server,LVS在hash表中记录该次连接,然后将client的请求包发给选择的Real-server,最后选择的Real-server把应答包直接传给client;当client继续发包过来时,LVS根据更才记录的hash表的信息,将属于此次连接的请求直接发到刚才选择的Real-server上;当连接中止或者超时,hash表中的记录将被删除。

注意事项:

DR模式下调度器和服务器组都必须在物理上有一个网卡通过不分段的局域网相连,即通过交换机或者高速的HUB相连,中间没有隔有路由器。
VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文。
所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP的网络请求。

细节:

1> LVS和Real-server必须在相同的网段:(相同的广播域内)
DR模式在转发client的包时,只修改了包目的MAC地址为选定的Real-server的mac地址,所以如果LVS和Real-server在不通的广播域内,那么Real-server就没办法接收到转发的包

2> LVS不需要开启路由转发:
LVS的DR模式不需要开启路由转发功能,就可以正常的工作,出于安全考虑,如果不需要转发功能,最好关闭。

3> ARP问题:
通常,DR模式需要在Real-server上配置VIP,

4>.ipvs是工作于内核空间,主要用于使用户定义的策略生效。
ipvsadm是工作于用户空间,是lvs的管理工具,编辑调度策略的,用什么算法。

5>.源ip是客户端的ip(cip),目的ip是虚拟ip(vip)

6>.来源:将源mac地址转换成cip的mac地址
目的:将vip的mac地址转换server的mac地址

7>.整个过程只是通过ip接收请求的,真正改变的是mac地址

8>.调度器和后端服务器必须在同一网段

二.配置ipvsadm

企业六里面要额外配置yum源,因为package不包含,企业六是用脚本去保存调度策略
企业七不用,在重启服务后,自动保存策略。

第一步:

实验环境:

主机ip服务
nodel1172.25.15.1ipvsadm调度器
nodel2172.25.15.2RealServer1 apache服务
nodel3172.25.15.3RealServer2 apache服务
物理机172.25.15.250用来测试

在这里插入图片描述
利用ssh连接:
在这里插入图片描述

第二步:

在nodel2和nodel3上面安装httpd服务,并编写默认发布文件

在这里插入图片描述
在这里插入图片描述

nodel3
在这里插入图片描述
第三步:

下载ipvsadm并编写策略,启动服务

yum install  ipvsadm -y
ipvsadm -A -t 172.25.15.100:80 -s rr
ipvsadm -a -t 172.25.15.100:80 -r 172.25.15.2:80 -g
ipvsadm -a -t 172.25.15.100:80 -r 172.25.15.3:80 -g
cat /etc/sysconfig/ipvsadm     
systemctl start ipvsadm.service

在这里插入图片描述

在这里插入图片描述

注意:
-A:增加一台虚拟设备
-a:增加真实服务器的操作
-t:tcp服务地址
-s:调度算法(调度算法分别有10种,为rr/wrr/lc/wlc/lblc/lblcr/dh/sh/sed/nq
-r:对应的真实ip
-g:rh(路由)
rr:调度算法,轮循

第四步:

显示调度次数(-l列出当前的策略,-n不解析)

ipvsadm  -l
ipvsadm  -ln

在这里插入图片描述

第五步:

给nodel1,nodel2和nodel3添加VIP地址(172.25.15.100)

  ip addr add  172.25.15.100/24 dev eth0

之所以在server2和server3中设置172.25.15.100是因为调度器中的报头是172.25.15.100,其目的是用来接收来自虚拟机的数据包,不能接收外部请求的

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

注意:

也可以在nodel1
ip addr add 172.25.15.100/24 dev eth0
nodel2和nodel3
ip addr add 172.25.15.100/32 dev eth0
之所以将子网掩码设置成32,是因为请求从调度器过来时,不对外提供服务的,只提供内部通信
  • 以上情况,nodel1,2,3都有可能被访问到

  • 如果绑定的MAC地址是nodel1,则在nodel2,3轮询

  • 如果绑定的MAC地址是nodel2或nodel3的,那么我们会发现,在测试端根本不会形成轮叫,而是直接去了MAC绑定的后端服务器 (显然这样在企业中是不允许的)

第六步:

在物理机测试:访问172.25.15.100,会发现其一直返回的是nodel3中的测试页

在这里插入图片描述

查看物理机绑定的MAC地址后,会发现其MAC地址是nodel3的MAC地址,无法进行轮循

arp -an | grep 100   查看绑定的MAC地址

在这里插入图片描述

在这里插入图片描述

删除绑定的MAC地址并重新访问,此时会在nodel2和3的测试页轮循,发现此时的MAC地址是nodel1的MAC地址

arp -d 172.25.15.100 删除现有绑定MAC地址

在这里插入图片描述
重新访问
在这里插入图片描述

发现此时的MAC地址是nodel1的MAC地址
在这里插入图片描述
在这里插入图片描述

但如果MAC地址仍然无法成功绑定成功呢?

这个时候我们就需要以下的解决办法。

三.解决MAC地址无法成功绑定的情况:

要解决这样不合理的情况,解决的方法只有一直绑定sever1的MAC地址,所以我门要配置server2和server3的arp路由策略

第一步:

在两台主机上都做

yum install -y arptables_jf

在这里插入图片描述

#当网内广播需要172.25.15.100这个ip时,它将丢弃网内的所有请求
arptables -A INPUT -d 172.25.15.100 -j DROP
#当它自身需要在网内发包时,伪装为自己原本的ip172.25.66.2
arptables -A OUTPUT -s 172.25.15.100 -j mangle --mangle-ip-s 172.25.15.2  
#查看策略,此时没有
arptables  -nL
cat /etc/sysconfig/arptables
#保存策略
arptables-save > /etc/sysconfig/arptables
cat /etc/sysconfig/arptables

在这里插入图片描述

注意:nodel3要伪装成nodel3的ip

 arptables -A OUTPUT -s 172.25.15.100 -j mangle --mangle-ip-s 172.25.15.3

在这里插入图片描述

第二步:

systemctl start arptables.service
systemctl status arptables.service

在这里插入图片描述

在这里插入图片描述

第三步:

删除原来绑定的MAC地址,访问172.25.15.100,会发现成功出现了轮循,且数据经过调度器
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值