LVS-DR模式 是最常用的LVS负载方式 直接路由模式
Lvs调度器 只负责请求和转发 转发到真实服务器 但是响应结果 由后端服务器直接转发给客户端 不需要经过调度器处理 可以减轻Lvs调度器的负担 提高系统性能和稳定性
工作原理:
MAC地址转发
DR模式的特点
ARP协议:网络层协议 将IP地址解析为物理mac地址
ARP请求:主机A和主机B
ARP核心是解决局域网内部的通信 IP地址和mac地址的映射
DR模式的调度器和后端服务器都在一个网段中 通过ARP请求实现局域网内部通信
问题一:VIP地址相同会导致响应冲突
由于调度器和后端真实服务器的都有相同的vip地址 导致响应冲突ARP通信紊乱
解决办法:
对真实服务器进行处理 真实服务器不响应针对VIP的ARP请求
VIP地址使用的LO的虚拟地址 arp_ignore=1
后端真实服务器只响应目的IP为本地IP 也就是RIP 真实IP地址
问题二:返回报文使用的源地址还是VIP地址 调度器也是VIP 怎么把响应返回给客户端不经过调度器
解决办法:
后端真实服务器做内核参数优化 :arp_announce=2 系统不使用IP数据包的源地址来设置ARP的请求
如何实现DR模式负载均衡和配置方法
调度器的内核优化
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
net.ipv4.conf.lo.arp_ignore = 1
#设置lo接口忽略来自任何接口的ARP请求
net.ipv4.conf.lo.arp_announce = 2
设置lo接口仅会响应本地的IP地址,其他的接口ARP请求,全部忽略
net.ipv4.conf.all.arp_ignore = 1
所有接口忽略来自任务接口的ARP请求
net.ipv4.conf.all.arp_announce = 2
# 所有接口仅会响应本地的IP地址的ARP请求,其他的接口的ARP请求全部忽略
net.ipv4.conf.lo.arp_ignore = 1
#设置lo接口忽略来自任何接口的ARP请求
net.ipv4.conf.lo.arp_announce = 2
设置lo接口仅会响应本地的IP地址,其他的接口ARP请求,全部忽略
net.ipv4.conf.all.arp_ignore = 1
所有接口忽略来自任务接口的ARP请求
net.ipv4.conf.all.arp_announce = 2
# 所有接口仅会响应本地的IP地址的ARP请求,其他的接口的ARP请求全部忽略
DR模式 核心就是响应客户端由后端的真实服务器 不需要经过调度器
VIP地址 调度器和后端服务器都要有VIP地址
VIP地址:暴露访问地址
调度器转发请求的表示
调度器和后端服务器之间进行通信
高可用(DR模式的高可用)
其他所有的请求和响应都是禁用
负载均衡算法设置
修改VIP的调度算法:
ipvsadm -E -t 192.168.233.100:80 -s wrr
修改策略轮询权重