LVS负载均衡之--DR模式
前言:上一章和拐友们讲解了LVS虚拟服务器的NAT模式,这章讲解LVS中的负载均衡中的DR模式
目录
一.LVS-DR工作原理
1.1数据包流向分析
1.2DR模式的特点
二.ARP的问题
2.1问题冲突
2.1.1解决方法
2.2.问题二:第二次再有访问请求
2.2.1解决方法
三.部署LVS-DR环境
3.1配置负载调度器
3.2配置第一台Web节点服务器
3.3配置第二台Web节点服务器(跟上一台服务器配置一致)
四.测试验证
五.总结
一.LVS-DR工作原理
1.1数据包流向分析
- 用户发送请求到Director Server(负载均衡器),请求的数据报文(源IP是CIP,目标IP是VIP)到达内核空间。
- 由于Director Server和 Real Server 在同一个网络中,所以是通过二层数据链路层来传输。
- 内核空间判断数据包的目标IP是本机IP,此时IPVS比对数据包请求的服务是否为集群服务,若是,重新封装数据包,修改源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址,源IP地址与目标IP地址没有改变,然后将数据包发送给Real Server.
- Real Server发现请求报文的MAC地址是自己的MAC地址,就接收此报文,重新封装报文(源IP地址为VIP,目标IP为CIP),将响应报文通过lo接口传送给ens33网卡然后向外发出。
- Real Server直接将响应报文传送到客户端。
1.2DR模式的特点
- Director Server 和Real Server 必须在同一个物理网络中
- Real Server可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过 互联网对 RIP 进行直接访问。
- 所有的请求报文经由 Director Server,但回复响应报文不能经过 Director Server。
- Real Server的网关不允许指向 Director Server IP,即不允许数据包经过 Director S erver。
- Real Server 上的 lo 接口配置 VIP 的 IP 地址。
二.ARP的问题
2.1问题冲突
在LVS-DR负载均衡集群中,负载均衡器与节点服务器都要配置相同的VIP地址,在局域网中具有相同的IP地 址。势必会造成各服务器ARP通信的紊乱
- 当ARP广播发送到LVS-DR集群时,因为负载均衡器和节点服务器都是连接到相同的网络上,它们都会接收到ARP广播
- 只有前端的负载均衡器进行响应,其他节点服务器不应该响应ARP广播
2.1.1解决方法
- 对节点服务器进行处理,使其不响应针对VIP的ARP请求
- 用虚接口lo:0承载VIP地址
- 设置内核参数arp_ ignore=1: 系统只响应目的IP为本地IP的ARP请求
1.路由器发送ARP请求(广播)
2.ARP---->广播去找ip地址解析成mac地址
3.默认使用调度服务器上的外网地址(vip地址)响应,
4.需要在真实服务器上修改内核参数
5.使真实服务器只对自己服务器上的真实IP地址响应ARP解析。
2.2.问题二:第二次再有访问请求
RealServer返回报文(源IP是VIP)经路由器转发,重新封装报文时,需要先获取路由器的MAC地址,发送ARP请求时,Linux默认使用IP包的源IP地址(即VIP)作为ARP请求包中的源IP地址,而不使用发送接口的IP地址,路由器收到ARP请求后,将更新ARP表项,原有的VIP对应Director的MAC地址会被更新为VIP对应RealServer的MAC地址。路由器根据ARP表项,会将新来的请求报文转发给RealServer,导致Director的VIP失效。
2.2.1解决方法
对节点服务器进行处理,设置内核参数arp_announce=2:系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址。
1.路由器上绑定了 真实服务器1的mac信息,
2.#请求到达真实服务器
3.在真实服务器上修改内核参数
4.只对所有服务器真实网卡上的地址进行反馈,解析
三.部署LVS-DR环境
#环境简介
DR 服务器:192.168.75.135vip(虚拟回环):192.168.75.130
web 服务器1:192.168.75.50
web 服务器2:192.168.75.25
客户端:192.168.75.10
3.1配置负载调度器
#关闭防火墙并增强
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
#安装ipvsadm工具
[root@localhost ~]# yum install ipvsadm.x86_64 -y
[root@localhost network-scripts]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0
[root@localhost network-scripts]# vim ifcfg-ens33:0
#重启网络服务,并开启网卡
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ifup ifcfg-ens33:0
[root@localhost network-scripts]# ifconfig
#调整 proc 响应参数并刷新
[root@localhost network-scripts]# 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[root@localhost network-scripts]# sysctl -p
#加载模块
[root@localhost network-scripts]# modprobe ip_vs
[root@localhost network-scripts]# cat /proc/net/ip_vs
#配置负载分配策略
[root@localhost network-scripts]# ipvsadm-save >/etc/sysconfig/ipvsadm
[root@localhost network-scripts]# systemctl start ipvsadm.service
#清空ipvsadm,并做策略
[root@localhost network-scripts]# ipvsadm -C
[root@localhost network-scripts]# ipvsadm -A -t 192.168.75.130:80 -s rr
[root@localhost network-scripts]# ipvsadm -a -t 192.168.75.130:80 -r 192.168.75.50 -g
[root@localhost network-scripts]# ipvsadm -a -t 192.168.75.130:80 -r 192.168.75.25 -g
#保存配置
[root@localhost network-scripts]# ipvsadm #开启服务
[root@localhost network-scripts]# ipvsadm -ln #查看策略
[root@localhost network-scripts]# ipvsadm-save >/etc/sysconfig/ipvsadm #保存
3.2配置第一台Web节点服务器
#关闭防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
#安装httpd并开启服务
[root@localhost ~]# yum install httpd -y
[root@localhost ~]# systemctl start httpd
#创建一个站点文件
[root@localhost ~]# vim /var/www/html/index.html
.#添加回环网卡,修改回环网卡名,IP地址,子网掩码
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0[root@localhost network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.75.130
NETMASK=255.255.255.255
NETWORK=127.0.0.0[root@localhost network-scripts]# systemctl restart network
#设置路由
[root@localhost network-scripts]# route add -host 192.168.75.130 dev lo:0
[root@localhost network-scripts]# route -n
#开机执行命令
[root@localhost network-scripts]# vim /etc/rc.d/rc.local
/usr/sbin/route add -host 192.168.75.130 dev lo:0[root@localhost network-scripts]# chmod +x /etc/rc.d/rc.local
#调整 proc 响应参数
[root@localhost network-scripts]vim /etc/sysctl.conf
......
net.ipv4.conf.lo.arp_ignore = 1 #系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2 #系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2[root@localhost network-scripts]# sysctl -p
3.3配置第二台Web节点服务器(跟上一台服务器配置一致)
#关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
#安装httpd并开启服务
[root@localhost ~]# yum install httpd -y
[root@localhost ~]# systemctl start httpd
#创建一个站点文件
[root@localhost ~]# vim /var/www/html/index.html
.#添加回环网卡,修改回环网卡名,IP地址,子网掩码
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0[root@localhost network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.75.130
NETMASK=255.255.255.255
NETWORK=127.0.0.0[root@localhost network-scripts]# systemctl restart network
#设置路由
[root@localhost network-scripts]# route add -host 192.168.75.130 dev lo:0
[root@localhost network-scripts]# route -n
#开机执行命令
[root@localhost network-scripts]# vim /etc/rc.d/rc.local
/usr/sbin/route add -host 192.168.75.130 dev lo:0[root@localhost network-scripts]# chmod +x /etc/rc.d/rc.local
#调整 proc 响应参数
[root@localhost network-scripts]vim /etc/sysctl.conf
......
net.ipv4.conf.lo.arp_ignore = 1 #系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2 #系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2[root@localhost network-scripts]# sysctl -p
四.测试验证
五.总结
1.介绍了lvs-dr的工作原理、数据流向,并对其中出现的问题进行阐述。
2.介绍了LVS-DR的特点及优缺点
3.部署内网LVS-DR
LVS负载均衡之--DR模式相关推荐
- LVS负载均衡与DR模式
LVS负载均衡与DR模式 一.DR模式的特点 二.LVS-DR中的ARP问题 1.VIP地址相同导致响应冲突 2.返回报文时源地址使用VIP,导致网关设备的ARP缓存表紊乱 三.DR模式 LVS负载均 ...
- LVS负载均衡之DR模式
LVS负载均衡之DR模式 一.LVS-DR数据包流量分析 客户端向目标VIP发送请求,负载均衡器接收 负载均衡器根据负载均衡算法选择后端真实服务器,不修改也不封装IP报文,而是将数据帧的MAC地址改为 ...
- LVS负载均衡群集——NAT模式实例
目录 一:企业群集应用概述 1.1群集的含义 1.2群集存在的必要 1.3解决的方法 二:企业群集的分类 2.1负载均衡群集(Load Balance Cluster) 2.2高可用群集(High A ...
- LVS负载均衡!LVS-NAT模式部署!
lvs负载均衡 一.企业集群概述 1.集群的含义(cluster) 2.存在的问题 3.问题解决的方法 二.企业集群分类 1.负载均衡群集(Load Balance Cluster) 2.高可用集群 ...
- LVS负载均衡之NAT模式
LVS负载均衡之NAT模式 重点理解NAT方式的实现原理和数据包的改变. (a). 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链. 此时报文的 ...
- LVS负载均衡群集—NAT模式实例
文章目录 前言 一.群集与分布式 1.1 群集的含义 1.2 系统性能扩展方式 1.3 群集的三种类型 1.4 LVS的负载调度算法 1.5 分布式系统 1.6 集群和分布式 1.7 负载均衡群集架构 ...
- LVS 负载均衡群集----NAT模式
目录 一.企业群集应用概述 1.1 群集的含义 1.2 问题 1.3 解决办法 1.4 系统性能扩展方式 二.企业群集分类 2.1 负载均衡群集 2.2 高可用群集 2.3 高性能运算群集 三. ...
- LVS负载均衡群集 --NAT模式实战部署(图文详解)
目录 一.群集应用概述 1.1 群集的含义 1.2 应用场景出现高并发的解决方案 1.3 系统性能扩展方式 1.4 群集的三种分类 1.4.1 负载均衡群集 1.4.2 高可用群集 1.4.3 高性能 ...
- LVS负载均衡和nat模式的实操
LVS理论和实操 一.企业群集应用概述 1.群集的含义 2.问题 3.解决方法 总结: 二.集群的分类 三.负载均衡群集架构 四.LVS负载均衡群集工作模式分析 1.负载均衡群集是目前企业用得最多的群 ...
最新文章
- 调试uIP出现死机问题
- 在windows程序中嵌入Lua脚本引擎--编写自己的Lua库
- 详解死机的原因和预防方法
- 固态铝电解电容与液态铝电解电容
- 改造Dubbo,使其可以对接口方法进行注解配置
- 用算法代替生物大脑,90后博士造出活的微型机器人登上Science子刊
- asp.net mvc项目实例_降龙-第13章:MVC开发准备
- 16 --删除排序数组中的重复项
- 转:6.1海量数据处理
- table 样式详解
- 虚拟服务器(dmz),dmz虚拟主机(dmz主机和虚拟服务器区别)
- 从上千篇投稿脱颖而出,这5篇大数据论文凭什么征服KDD评委?
- 自学python免费教材-python零基础自学教材
- 运动目标跟踪(十六)--OAB,SemiT,BSBT跟踪
- 【RL-GAN-Net】强化学习控制GAN网络,用于实时点云形状的补全。
- 【JSP课程设计(含源码)】宾馆客房管理系统(2021-7-2最新版)
- Blender 合成节点 中英文对照
- 安装Ubuntu后找不到windows启动项的解决办法
- 盘点好用的 Markdown 编辑器
- Oracle练习题(三)
热门文章
- go 调用faiss服务
- cisco将计算机配置为vlan2,Cisco Packet Tracer VLAN 配置
- JavaScript cookie操作实现点赞功能
- 无人机仿真之搭建仿真平台-SITL、gazebo、ROS
- 泰语7个元音变形_泰语元音的三种拼合方式
- EXCEL如何快速【选中】或【跳到】当前列的最后一个数据?
- unity点击UI防止触碰UI后面物体
- python 贪吃蛇_python简易贪吃蛇
- 大数据时代网络信息安全如何保障
- python数据库操作sqlite_python操作数据库之sqlite3打开数据库、删除、修改示例