lvs工作方式——DR模式

1、特点

调度器在整个lvs集群当中是最重要的,在nat模式下,既负责接收请求,同时根据负载均衡的算法转发流量,响应发送给客户端。

DR模式下:调度器依然负责接收请求,同时页根据负载均衡算法转发流量到RS,响应直接由RS响应给客户端。

直接路由:Direct Routing,是一种二层转发模式,二层转发的是数据帧,根据源mac地址和目的mac地址进行转发。不会修改数据包的源ip和目的ip,根据数据包的mac地址进行转发。

在DR模式下,lvs也是维护一个虚拟的ip地址,所有的请求都是发送到vip。既然是走二层转发,当客户端的请求达到调度器之后,根据负载均衡的算法选择一个RS,修改vip服务器的目的mac变成RS的mac地址,RS处理完请求之后,根据报文当中客户端的源mac地址直接把响应发送到客户端即可,不需要走调度器了。

2、问题

1、调度器配置了vip,RS上也配置了vip

vip地址冲突,调度器和RS都在同一网段,造成ARP通信的紊乱。因为是整个局域网广播,所有的设备都收到了,怎么把lo'这个回环的响应屏蔽掉,只有本机的物理ip地址响应

修改内核参数:arp_ignore=1

系统的物理ip地址才会响应请求,lo不会响应ARP请求

2、返回报文时,vip地址还在,怎么样能让客户端来接收到响应

设置arp_announce=2,系统不使用ip数据包的源地址来响应ARP请求,直接发送物理接口的ip地址

3、DR模式的实现

nginx1 RS1 192.168.230.60

nginx2 RS2 192.168.230.70

vip:192.168.230.100

test1 调度器 192.168.230.20

test2 客户端 192.168.230.30

实验步骤:

关闭防火墙和安全机制

加载调度器的内核

modprobe ip_vs

安装ipvsadm

yum -y install ipvsadm*

创建vip地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33

开启虚拟网卡

vim /etc/sysconfig/network-scripts/ifcfg-ens33

ifconfig查看

修改调度器的响应参数

root@localhost network-scripts# vim /etc/sysctl.conf

立即生效

root@localhost network-scripts# sysctl -p

net.ipv4.ip_forward = 0

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.ens33.send_redirects = 0

root@localhost network-scripts#

分配策略,先清空

root@localhost opt# ipvsadm -C

先将空的ipvs保存

root@localhost opt# ipvsadm-save /etc/sysconfig/ipvsadm

指定vip地址,算法为rr

root@localhost opt# ipvsadm -A -t 192.168.230.100:80 -s rr

添加真实服务器,使用DR模式

root@localhost opt# ipvsadm -a -t 192.168.230.100:80 -r 192.168.230.60:80 -g

root@localhost opt# ipvsadm -a -t 192.168.230.100:80 -r 192.168.230.70:80 -g

保存并重启

root@localhost opt# ipvsadm-save /etc/sysconfig/ipvsadm

-A -t localhost.localdomain:http -s rr

-a -t localhost.localdomain:http -r 192.168.230.60:http -g -w 1

-a -t localhost.localdomain:http -r 192.168.230.70:http -g -w 1

root@localhost opt# systemctl restart ipvsadm

查看

编辑nginx1/2的index.html,重启nginx

访问正常

4、lvs的三种工作模式

|-------|-----------|------------------|--------------------|
| | NAT | DR | TUN |
| 优点 | 地址转换,配置简单 | 性能最好 | WAN,可以实现较远距离的数据包转送 |
| 缺点 | 性能瓶颈 | 不支持跨网段 | 专用通道,需要开通vpn(花钱 |
| RS的要求 | 无限制 | 必须要禁止非物理接口的ARP响应 | 要支持隧道模式 |
| RS的数量 | 10-20台 | 100台 | 100台 |

修改vip的轮询算法:

ipvsadm -E -t 192.168.230.100:80 -s wrr

修改权重:

ipvsadm -e -t 192.168.230.100:80 -r 192.168.230.60:80 -w 3

相关推荐
月落汀兰2 天前
运维实战:LVS-NAT/DR 双模式完整落地,含一键启停脚本,线上直接复用
linux·运维·lvs
xianyuCcCcCCCcc2 天前
企业级高可用实战:Keepalived + LVS(DR)+ MariaDB 主主架构深度解析
架构·mariadb·lvs
mengge.cloud6 天前
0823Keepalived + LVS(DR) + MariaDB主主 小白完整实战教程
linux·运维·网络·oracle·负载均衡·mariadb·lvs
mengge.cloud7 天前
LVS 小白完整教程(Linux虚拟服务器负载均衡)
linux·运维·服务器·负载均衡·lvs
秦渝兴7 天前
LVS-DR 高可用集群实战:NFS + Web + DNS + Keepalived 全套架构
linux·服务器·网络·lvs
王琦03188 天前
| LVS |
lvs
ly768911 天前
负载均衡详解:从四层、七层到 LVS、Keepalived、Nginx 与 HAProxy
nginx·负载均衡·lvs
小马同学-14 天前
Keepaloved+LVS(DR) +MariaDN主主
linux·运维·lvs
暖核15 天前
Keepalived + LVS(DR)+ MariaDB 主主高可用架构实战指南
架构·mariadb·lvs
闲云野鹤在人间16 天前
项目实战:LNMP-电商平台-ECshop
linux·运维·nginx·apache·lvs