一 LVS 负载均衡部署的模式
LVS 有三种负载均衡的模式,分别是VS/NAT(nat 模式)、VS/DR(路由模式)、VS/TUN(隧道模式)。
(一)三种模式原理 及优缺点
1,nat 模式
1.1 原理
原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。
然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的工P地址(RIP)。
真实服务器响应完请查看默认路由,把响应后的数据包发送给负载均衡器,
负载均衡器在接收到响应包后,把包的源地址改成虚拟地址,(VIP)然后发送回给客户端。
1.2 优点
集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。
1.3 缺点
扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈
2, 直接路由模式
2.1 原理
首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。
然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)
真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。
2.2 优点
负载均衡器只负责将请求包分发给后端节点服务器,而RS将应包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
2.3 缺点
需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局城网环境。
3, ip 隧道模式
首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。
然后负载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。
真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均器。
3.1 优点
负载均衡器只负责将请求包分发给后端节点服务器,而Rs将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
且负载均衡服务器 和 真实服务器可以不在同一网段(一般用于跨地区的大型企业)
3.2 缺点
ip隧道要花钱买 成本高
(二) 简述三种模式区别
1,三种模式区别
NAT: 通过网络地址转换实现的虚拟服务器,大并发访问时,调度器的性能成为瓶颈使
DR: 用路由技术实现虚拟服务器,节点服务器需要配置VIP,注意MAC地址广播
TUN: 通过隧道方式实现虚拟服务器。
2, dr 和tun 区别
lvs 代理服务器(负载均衡服务器) 和真实服务器们 是否在同一网段
二 LVS 负载均衡部署dr 模式具体介绍
(一)架构图
(二) dr 模式两个问题 的解决
1,地址冲突问题
由以上架构图看到,调度服务器,真实服务器三台机器都配置同一个虚拟ip,这会导致ip冲突的问题。
解决方法: 设vip 虚拟地址 配在各自的虚口上lo 代理和真实都是一个地址
都配在 虚拟网卡回环口上
2,客户机 arp 广播 找虚拟地址 代理和真实都会回
解决完地址冲突问题后,客户机arp广播虚拟ip 所有真实服务器和代理服务器都会回
解决方法: 关掉真实服务器 的响应
要关两个: 无故arp 普通arp
(三)dr 模式另一种思路
客户机 做静态arp
即在客户机做:将虚拟ip地址 和代理服务器的mac 地址绑定
这样客户机只会去找代理服务器了
弊端:要能碰到客户机
三 实验 搭建dr 模式 LVS 代理服务器负载均衡
(一)实验环境
生产环境中客户机 是外网ip 假设已经经过转换成内网ip 以上是架构图
(二)55 代理服务器
1, 配置虚拟ip 地址
(代理服务器是真正要响应客户机的 所以虚拟ip 配在网卡上 真实服务器要把虚拟ip配置搭配lo回环网卡上)
2,写到 /etc/sysctl.conf 文件里
调整/proc响应参数 对于 DR 群集模式来说,由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭 Linux 内核的重定向参数响应服务器不是一台路由器,那么它不会发送重定向,所以可以关闭该功能
关闭路由转发
sysctl -p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载
4, 加载 ip_vs 内核模块
ip_vs 是内核模块的一个配置 是操作系统的一部分
modprobe 是把 ip_vs 配置加载到进程中
5,下载 lvs 软件
6,ipvsadm-save >/etc/sysconfig/ipvsadm
#保存配置文件
再启动软件 否则会报错
7,先清空策略
指定 代理服务器的虚拟ip
8, 指定 两个真实服务器的 虚拟ip
#添加真实服务器-a 指定VIP地址及TCP端口-t 指定RIP地址及TCP端口 -r 指定DR模式-g
dr 模式不支持端口映射 如果将此处80端口改为 其他端口 还是会变成80端口
9,查看策略 是否生效
(三)77 真实服务器
1,安装http
2, 添加 虚拟ip 注意!此处要加在lo 回环网卡上 避免地址冲突
3,做网页
4,添加系统只响应目的IP为本地IP的ARP请求
系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP
此处数字的意义:
0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求
1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求
2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内
5,启动 http
(四) 88 真实服务器
配置与77 服务器一致
bash
systemctl stop firewalld
setenforce 0
yum install httpd -y
ifconfig lo:0 192.168.217.188/32
echo 88ziyuan > /var/www/html/index.html
cat /var/www/html/index.html
88ziyuan
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
systemctl start httpd
(五) 客户机
访问虚拟ip 后 经过轮询 分别访问77和88真实服务器的内容