LVS-DR模式

LVS-DR模式

是最常用的IVS负载方式,DR DIRECT ROUTING 直接路由模式

负载均衡器lvs调度器,只负责请求和转发到后端的真实服务器,但是响应结果,由后端服务器直接转发给客户端,不需要经过调度器的处理。

减轻LVS调度器的负担,提高了性能和稳定性。

LVS-DR模式的工作原理

1.客户端发送请求到vip

2、LVS的调度器接受请求之后,根据算法选择一台后端的真实服务器,请求转发到后端RS,请求的报文的目的MAC地址,修改成后端真实服务器的MAC地址。转发。

3、后端真实服务器接受请求,处理完成之后,由于后端服务器直接把响应结果转发给客户端,响应报文中的目的的MAC地址修改成客户端的MAC地址。直接把响应报文转发到客户端。

4、调度器,后端真实服务器都有vip地址,调度的地址和后端真实服务器在同一网段。

DR模式的特点:

1、调度器的IP和真实服务器的ip必须在同一个物理网络中

2、真实服务器的ip地址可以是私有地址,也可以是公网地址。如果配置的是公网,通过互联网可以直接访问RIP.

3、调度器只作为入口,但是不做网关。要把服务器的转发功能关闭。

4、后端真实服务器的网关也不能指向调度器,真实服务器的数据包不允许经过调度器。5、后端真实服务器上,基于LO接口配置VIP的ip地址。

DR模式的特点:

1、调度器的IP和真实服务器的ip必须在同一个物理网络中

2、真实服务器的ip地址可以是私有地址,也可以是公网地址。如果配置的是公网,通过互联网可以直接访问RIP.

3、调度器只作为入口,但是不做网关。要把服务器的转发功能关闭。

4、后端真实服务器的网关也不能指向调度器,真实服务器的数据包不允许经过调度器。

5、后端真实服务器上,基于LO接口配置VIP的ip地址。

ARP解决局域网内部的通信。ip地址和MAC地址映射。

DR模式的调度器和后端服务器都在一个网段中,通过ARP请求实现局域网内部通信。

问题一:

由于调度器和后端真实服务器的都有相同的VIP地址,导致响应冲突,ARP通信紊乱。

对真实服务器进行处理,真实服务器不响应针对VIP的ARP请求。

vip地址使用Lo的虚拟地址:arp_ignore=1

后端真实服务器只响应目的ip为本地IP,也就是RIP。后端服务器的真正IP地址。ens33网卡提供的地址。

问题二:

返回报文使用的源地址还是VIP地址,调度器也是VIP,怎么把响应返回到客户端不经过调度器呢。

后端真实服务器做一个内核参数的优化:arp_announce=2系统不使用IP数据包的源地址,来设置ARP的请求。真实的物理网卡的地址。

调度器的内核优化

net.ipv4.ip_forward =0

#关闭服务器作为网关的转发功能

net.ipv4.conf.all.send_redirects = 0

#控制是否发送ICMP的重定向消息,禁止重定向

net.ipv4.conf.default.send_redirects = 0

#禁止默认网络接口,就是调度器的网卡,发送icmp的重定向消息net.ipv4.conf.ens33.send_redirects = 0

#指明网卡设备,ens33不发送重定向消息。

route add -host 192.168.233.100 dev lo:0

把vip的地址绑定到lo:0,作为LVS的vip地址。标识。告诉调度器,进行转发请求的ip地址寻址。

net.ipv4.conf.lo.arp_ignore = 1

#设置lo接口忽略来自任何接口的ARP请求

net.ipv4.conf.lo.arp_announce = 2
设置Io接口仅会响应本地的IP地址,其他的接口ARP请求,全部忽略

net.ipv4.conf.all.arp_ignore =1
所有接口忽略来自任务接口的ARP请求

net.ipv4.conf.all.arp_announce = 2
所有接口仅会响应本地的IP地址的ARP请求,其他的接口的ARP请求全部忽略

DR模式:核心就是响应客户端由后端的真实服务器完成。不需要经过调度器。

vip地址,调度器和后端服务器都要有vip地址。

vip地址:1.暴露访问地址。

2.调度器转发请求的标识

3.调度器和后端服务器之间进行通信

4.高可用(DR模式的高可用)

其他所有的请求和响应都是禁用。

负载均衡算法设置:

修改VIP的调度算法:

ipvsadm -E -t 192.168.233.100:80 -s wrr

ipvsadm -In

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.233.100:80 wrr

-> 192.168.233.20:80 Route 1 0 0

-> 192.168.233.30:80 Route 1 0 0

TCP 192.168.233.100:80 wrr

表示VIP地址,wrr负载均衡器的调度算法

-> 192.168.233.20:80 Route 1 0 0

-> 192.168.233.30:80 Route 1 0 0

指向后端的真实服务器

Forward:负载均衡算法和负载均衡方式。route就是DR模式

weight:后端服务器的轮询权重

ActiveConn:活跃连接,表示调取器正在处理的活动连接数这些连接正在进行传输数据或者正在进行交互。

InActConn:表示挡圈处于非活动状态的连接数。已经建立连接但是目前没有数据传输,第二个连接处于的等待状态。

修改策略的轮询权重:

ipvsadm -e -t 192.168.233.100:80 -r 192.168.233.20:80 -w 3

面试题:

LVS负载均衡的工作方式:

三种:NAT DR TUN

最常用的就是DR模式

NAT:

优点,配置简单。

缺点:性能瓶颈

真实服务器:ANY

支持的网络模式:私网。

后端服务器数量:low(10-20)

DR:

优点:性能最好

缺点:调度服务器和后端真实服务器不能跨网段

真实服务器:NO-ARP(请求只能到真实服务器)

支持网络:后端服务器即可是内网也可以是公网

真实服务器数量:100台

tun公司不用

LVS的调度器中常用的算法:负载均衡策略:

rr wrr dh sh wlc Ic lblc

如何实现DR模式的负载均衡:

test1 20.0.0.20 调度器

test2 20.0.0.21 web集群1

test3 20.0.0.22 web集群2

test4 NFS 20.0.0.31

VIP地址:20.0.0.100

客户端:随机选择。

test1 20.0.0.20

test4

test2 test3

systemctl stop firewalld

setenforce 0

yum -y install nginx

systemctl restart nginx

test2

test3

相关推荐
llm大模型算法工程师weng1 天前
负载均衡做什么?nginx是什么
运维·开发语言·nginx·负载均衡
fTiN CAPA1 天前
服务器无故nginx异常关闭之kauditd0 kswapd0挖矿病毒 CPU占用200% 内存耗尽
运维·服务器·nginx
lKWO OMET1 天前
查看 nginx 是否已经启动
运维·数据库·nginx
ywlovecjy1 天前
【Nginx 】Nginx 部署前端 vue 项目
前端·vue.js·nginx
hutengyi1 天前
四、nginx的优化和location匹配规则
运维·nginx
eEKI DAND1 天前
一个比 Nginx 还简单的 Web 服务器
服务器·前端·nginx
Watermelo6172 天前
理解 JavaScript 中的“ / ”:路径、资源与目录、nginx配置、请求、转义的那些事
前端·javascript·vue.js·chrome·nginx·正则表达式·seo
Cyber4K2 天前
【Nginx专项】高级进阶架构篇-Location、Rewrite及HTTPS
服务器·nginx·架构·https
博风2 天前
nginx:前后端分离常用配置
nginx
七七powerful2 天前
Nginx 日志切割完全指南:从原理到生产实战
运维·nginx