Lvs--部署DR集群

一.Lvs有三种负载均衡的模式:

VS/NAT(nat模式)

VS/DR (路由模式)

VS/TUN (隧道模式)

(1)NAT模式(VS-NAT)

原理:首先负载均衡器接收到客户端请求包时,根据调度算法决定将请求发送给哪个后端的真实 服务器(RS)

然后负载均衡器就把客户端的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址 (RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据发送给负载均衡器,

负载均衡器在接收到到响应包后,把包的源地址改成虚拟地址(VIP),然后发送回给客户端。

优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。

缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈。

(2)直接路由模式(VS-DR)

简称 DR 模式

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定请求发送给哪个后端的真实 服务器(RS)。

然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地 址(R-MAC)。

真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经 过负载均衡器。

优点:负载均衡器只负责将请求包分发给后端服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不在是系统的瓶颈,也能处理很巨大的请求量。

缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

DR模式的特点:

  1. Director和各RS都配置有VIP

  2. 确保前端路由器将目标IP为VIP的请求报文发往Director

  • 在前端网关做静态绑定VIP和Director的MAC地址

  • 在RS上使用arptables工具

复制代码
arptables -A IN -d $VIP -j DROP
arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP

在RS上修改内核参数以限制arp通告及应答级别

复制代码
/proc/sys/net/ipv4/conf/all/arp_ignore
/proc/sys/net/ipv4/conf/all/arp_announce

RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director

  1. RS和Director要在同一个物理网络

  2. 请求报文要经由Director,但响应报文不经由Director,而由RS直接发往Client

  3. 不支持端口映射(端口不能修改)

  4. 无需开启 ip_forward

  5. RS可使用大多数OS系统

(3)IP隧道模式(VS-TUN)

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。

然负后载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。

真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

优点:负载均衡器在只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。

缺点:隧道模式的RS节点需要合法IP。这种方式需要所有的服务器支持"IP Tunneling"

二.LVS工作模式总结和比较

NAT TUN DR
优点 端口转换 WAN 性能最好
缺点 性能瓶颈 服务器支持隧道模式 不支持跨网段
真实服务器要求 any Tunneling Non-arp device
支持网络 private(私网) LAN/WAN(私网/公网) LAN(私网)
真实服务器数量 low (10~20) High (100) High (100)
真实服务器网关 lvs内网地址 Own router(网工定义) Own router(网工定义)

三.部署LVS-DR集群 实验

环境简介

DR 服务器:192.168.91.88

web 服务器1:192.168.91.87

web 服务器2:192.168.91.86

vip(虚拟回环):192.168.91.180

客户端:192.168.91.188

(1)配置负载调度器

虚拟IP地址(VIP:192.168.6.180)

关闭防火墙

调整/proc响应参数

(调整/proc响应参数 对于 DR 群集模式来说,由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭 Linux 内核的重定向参数响应服务器不是一台路由器,那么它不会发送重定向,所以可以关闭该功能)

vim /etc/sysctl.conf

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

刷新配置

sysctl -p

加载ipvs内核模块

通过重定向将当前规则重定向到系统默认的规则存放位置(重启服务会自动恢复里面的规则)

复制代码
ipvsadm-save > /etc/sysconfig/ipvsadm

(如果停止服务,会自动将该文件清空,可通过查看这个文件查看/usr/lib/systemd/system/ipvsadm.service )

添加规则

( 添加真实服务器-a 指定VIP地址及TCP端口-t 指定RIP地址及TCP端口 -r 指定DR模式-g)

查看

(2)节点服务器

(另一程序占用 rm -rf /var/run/yum.pid)

添加系统只响应目的IP为本地IP的ARP请求

系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP

vim /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

定义对目标地址为本地IP的ARP询问不同的应答模式0

0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求

1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求

2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内

说明:

( arp_ignore参数的作用是控制系统在收到外部的arp请求时,是否要返回arp响应。

arp_ignore参数常用的取值主要有0,1,2,3~8较少用到:

0:响应任意网卡上接收到的对本机IP地址的arp请求(包括环回网卡上的地址),而不管该目的IP是否在接收网卡上。

1:只响应目的IP地址为接收网卡上的本地地址的arp请求。

2:只响应目的IP地址为接收网卡上的本地地址的arp请求,并且arp请求的源IP必须和接收网卡同网段。

3:如果ARP请求数据包所请求的IP地址对应的本地地址其作用域(scope)为主机(host),则不回应ARP响应数据包,如果作用域为全局(global)或链路(link),则回应ARP响应数据包。

4~7:保留未使用

8:不回应所有的arp请求

sysctl.conf中包含all和eth/lo(具体网卡)的arp_ignore参数,取其中较大的值生效。

arp_announce的作用是控制系统在对外发送arp请求时,如何选择arp请求数据包的源IP地址。

arp_announce参数常用的取值有0,1,2。

0:允许使用任意网卡上的IP地址作为arp请求的源IP,通常就是使用数据包a的源IP。

1:尽量避免使用不属于该发送网卡子网的本地地址作为发送arp请求的源IP地址。

2:忽略IP数据包的源IP地址,选择该发送网卡上最合适的本地地址作为arp请求的源IP地址。

sysctl.conf中包含all和eth/lo(具体网卡)的arp_ignore参数,取其中较大的值生效。)

可用命令查看sysctl -a |grep arp (过滤参数)

复制到配置文件修改

或者sysctl -a |grep arp >>/etc/sysctl.conf直接导到配置文件下修改

跟上面操作一样

机器4测试效果

相关推荐
叶北辰CHINA21 分钟前
nginx反向代理,负载均衡,HTTP配置简述(说人话)
linux·运维·nginx·http·云原生·https·负载均衡
不惑_37 分钟前
在 Ubuntu 安装 Python3.7(没有弯路)
linux·运维·ubuntu
玉树临风江流儿2 小时前
Linux驱动开发(速记版)--设备模型
linux·驱动开发
杰哥在此2 小时前
Python知识点:如何使用Multiprocessing进行并行任务管理
linux·开发语言·python·面试·编程
枫叶丹44 小时前
【在Linux世界中追寻伟大的One Piece】进程信号
linux·运维·服务器
刻词梨木4 小时前
ubuntu中挂载点内存不足,分配不合理后使用软链接的注意事项
linux·运维·ubuntu
灯火不休ᝰ5 小时前
[win7] win7系统的下载及在虚拟机中详细安装过程(附有下载文件)
linux·运维·服务器
数云界8 小时前
如何在 DAX 中计算多个周期的移动平均线
java·服务器·前端
powerfulzyh9 小时前
Ubuntu24.04远程开机
linux·ubuntu·远程工作
ulimpid9 小时前
Command | Ubuntu 个别实用命令记录(新建用户、查看网速等)
linux·ubuntu·command