LVS NAT 模式

1.3.2. LVS DR 模式 模式(局域网改写 (局域网改写 mac 地址)

 ①.客户端将请求发往前端的负载均衡器,请求报文源地址是 CIP,目标地址为 VIP。
②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将客户端请求报文的源
MAC地址改为自己DIP的MAC地址,目标MAC改为了RIP的MAC地址,并将此包发送给RS。
③.RS 发现请求报文中的目的 MAC 是自己,就会将次报文接收下来,处理完请求报文后,将响应
报文通过 lo 接口送给 eth0 网卡直接发送给客户端。
注意:需要设置 lo 接口的 VIP 不能响应本地网络内的 arp 请求。
总结:
1、通过在调度器 LB 上修改数据包的目的 MAC 地址实现转发。注意源地址仍然是 CIP,目的地址
仍然是 VIP 地址。
2、请求的报文经过调度器,而 RS 响应处理后的报文无需经过调度器 LB,因此并发访问量大时使
用效率很高(和 NAT 模式比)
3、因为 DR 模式是通过 MAC 地址改写机制实现转发,因此所有 RS 节点和调度器 LB 只能在一个
局域网里面
4、RS 主机需要绑定 VIP 地址在 LO 接口(掩码 32 位)上,并且需要配置 ARP 抑制。
5、RS 节点的默认网关不需要配置成 LB,而是直接配置为上级路由的网关,能让 RS 直接出网就
可以。

6、由于 DR 模式的调度器仅做 MAC 地址的改写,所以调度器 LB 就不能改写目标端口,那么 RS
服务器就得使用和 VIP 相同的端口提供服务。
7、直接对外的业务比如 WEB 等,RS 的 IP 最好是使用公网 IP。对外的服务,比如数据库等最好
使用内网 IP。
优点:
和 TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户
端。与 VS-TUN 相比,VS-DR 这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为
物理服务器。
DR 模式的效率很高,但是配置稍微复杂一点,因此对于访问量不是特别大的公司可以用
haproxy/nginx取代。日1000-2000W PV或者并发请求1万一下都可以考虑用haproxy/nginx。
缺点:
所有 RS 节点和调度器 LB 只能在一个局域网里面

1.3.3. LVS TUN 模式 模式( (IP 封装、 封装、)

 ①.客户端将请求发往前端的负载均衡器,请求报文源地址是 CIP,目标地址为 VIP。
②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将在客户端请求报文的
首部再封装一层 IP 报文,将源地址改为 DIP,目标地址改为 RIP,并将此包发送给 RS。
③.RS 收到请求报文后,会首先拆开第一层封装,然后发现里面还有一层 IP 首部的目标地址是自己
lo 接口上的 VIP,所以会处理次请求报文,并将响应报文通过 lo 接口送给 eth0 网卡直接发送给客
户端。
注意:需要设置 lo 接口的 VIP 不能在共网上出现。

总结:
1.TUNNEL 模式必须在所有的 realserver 机器上面绑定 VIP 的 IP 地址
2.TUNNEL 模式的 vip ------>realserver 的包通信通过 TUNNEL 模式,不管是内网和外网都能通
信,所以不需要 lvs vip 跟 realserver 在同一个网段内。
3.TUNNEL 模式 realserver 会把 packet 直接发给 client 不会给 lvs 了
4.TUNNEL 模式走的隧道模式,所以运维起来比较难,所以一般不用。
优点:
负载均衡器只负责将请求包分发给后端节点服务器,而 RS 将应答包直接发给用户。所以,减少了
负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方
式,一台负载均衡器能够为很多 RS 进行分发。而且跑在公网上就能进行不同地域的分发。
缺点:
隧道模式的 RS 节点需要合法 IP,这种方式需要所有的服务器支持”IP Tunneling”(IP
Encapsulation)协议,服务器可能只局限在部分 Linux 系统上。

1.3.4. LVS FULLNAT 模式

无论是 DR 还是 NAT 模式,不可避免的都有一个问题:LVS 和 RS 必须在同一个 VLAN 下,否则
LVS 无法作为 RS 的网关。这引发的两个问题是:
1、同一个 VLAN 的限制导致运维不方便,跨 VLAN 的 RS 无法接入。
2、LVS 的水平扩展受到制约。当 RS 水平扩容时,总有一天其上的单点 LVS 会成为瓶颈。
Full-NAT 由此而生,解决的是 LVS 和 RS 跨 VLAN 的问题,而跨 VLAN 问题解决后,LVS 和 RS
不再存在 VLAN 上的从属关系,可以做到多个 LVS 对应多个 RS,解决水平扩容的问题。
Full-NAT 相比 NAT 的主要改进是,在 SNAT/DNAT 的基础上,加上另一种转换,转换过程如下:

 1. 在包从 LVS 转到 RS 的过程中,源地址从客户端 IP 被替换成了 LVS 的内网 IP。内网 IP 之间
可以通过多个交换机跨 VLAN 通信。目标地址从 VIP 修改为 RS IP.
2. 当 RS 处理完接受到的包,处理完成后返回时,将目标地址修改为 LVS ip,原地址修改为 RS
IP,最终将这个包返回给 LVS 的内网 IP,这一步也不受限于 VLAN。
3. LVS 收到包后,在 NAT 模式修改源地址的基础上,再把 RS 发来的包中的目标地址从 LVS 内
网 IP 改为客户端的 IP,并将原地址修改为 VIP。
Full-NAT 主要的思想是把网关和其下机器的通信,改为了普通的网络通信,从而解决了跨 VLAN
的问题。采用这种方式,LVS 和 RS 的部署在 VLAN 上将不再有任何限制,大大提高了运维部署的便利性。
总结
1. FULL NAT 模式不需要 LBIP 和 realserver ip 在同一个网段;
2. full nat 因为要更新 sorce ip 所以性能正常比 nat 模式下降 10%

1.4. Keepalive

keepalive 起初是为 LVS 设计的,专门用来监控 lvs 各个服务节点的状态,后来加入了 vrrp 的功
能,因此除了 lvs,也可以作为其他服务(nginx,haproxy)的高可用软件。VRRP 是 virtual
router redundancy protocal(虚拟路由器冗余协议)的缩写。VRRP 的出现就是为了解决静态路
由出现的单点故障,它能够保证网络可以不间断的稳定的运行。所以 keepalive 一方面具有 LVS
cluster node healthcheck 功能,另一方面也具有 LVS director failover。

1.5. Nginx 反向代理负载均衡

普通的负载均衡软件,如 LVS,其实现的功能只是对请求数据包的转发、传递,从负载均衡下的节
点服务器来看,接收到的请求还是来自访问负载均衡器的客户端的真实用户;而反向代理就不一

样了,反向代理服务器在接收访问用户请求后,会代理用户 重新发起请求代理下的节点服务器,
最后把数据返回给客户端用户。在节点服务器看来,访问的节点服务器的客户端用户就是反向代
理服务器,而非真实的网站访问用户。

1.5.1. upstream_module 和健康检测

ngx_http_upstream_module 是负载均衡模块,可以实现网站的负载均衡功能即节点的健康检
查,upstream 模块允许 Nginx 定义一组或多组节点服务器组,使用时可通过 proxy_pass 代理方
式把网站的请求发送到事先定义好的对应 Upstream 组 的名字上。

 1.5.2. proxy_pass 请求转发

proxy_pass 指令属于 ngx_http_proxy_module 模块,此模块可以将请求转发到另一台服务器,
在实际的反向代理工作中,会通过 location 功能匹配指定的 URI,然后把接收到服务匹配 URI 的
请求通过 proyx_pass 抛给定义好的 upstream 节点池。

location /download/ {
proxy_pass http://download/vedio/;
}
#这是前端代理节点的设置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/126712.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

股票四倍杠杆什么意思?

股票四倍杠杆是指投资者通过借款或使用金融衍生品,以增加其投资股票的能力,达到放大投资回报的目的。具体来说,投资者可以通过向券商或银行等金融机构借入资金,或者使用融资融券等金融衍生品,以增加其购买股票的资本&a…

看李广的故事:发现团队管理之道

在漠北之战中,李广因迷失道路而延误了军期。因李广年事已高,无法承受幕府的责难,最终选择在军前自刎而死。 这一事件令人痛惜,不禁让人想起在工作中遇到的类似情况。有些同事因为突然离职,让领导感到愕然,…

【python小游戏】飞机大作战源码分享(附完整源码+图片资源可直接运行)

效果演示 源码 plane_main1.py import pygame from plane_sprites import * import timeclass PlaneGame(object):"""飞机大战主游戏"""def __init__(self):print("游戏初始化")# 1. 创建游戏的窗口self.screen pygame.display.set…

WPF中数据绑定验证深入讲解

WPF中数据绑定验证深入讲解 WPF在用户输入时,提供了验证功能,通常验证使用以下两种方式来实现: 在数据对象中引发错误。通常是在属性设置过程中抛出异常,或者在数据类中实现INotifyDataErrorInfo或IDataErrorInfo接口。在绑定级…

epoll实现 IO复用

1、epoll实现 IO复用 epoll的提出--》它所支持的文件描述符上限是系统可以最大打开的文件的数目;eg:1GB机器上,这个上限10万个左右。 每个fd上面有callback(回调函数)函数,只有活跃的fd才有主动调用callback,不需要轮询…

【Python爬虫】网页抓取实例之淘宝商品信息抓取

之前我们已经说过网页抓取的相关内容 上次我们是以亚马逊某网页的产品为例 抓取价格、品牌、型号、样式等 该网页上价格、品牌、型号、样式等 都只有一个 如果网页上的目标内容 根据不同规格有多个 又该怎么提取呢? ▼如下图所示 当机身颜色、套餐、存储容量…

python3.8.10虚拟环境安装talib总报平台不匹配

目录 环境: 需求: 问题: 概述 过程及解决 解决方案总结 环境: 操作系统:window10、64位 开发工具:pycharm python版本:python3.8.10 需求: 在python3.8.10的虚拟环境中安…

神经网络遗传算法函数极值寻优

大家好,我是带我去滑雪! 对于未知的非线性函数,仅仅通过函数的输入和输出数据难以寻找函数极值,这一类问题可以通过神经网络结合遗传算法求解,利用神经网络的非线性拟合能力和遗传算法的非线性寻优能力寻找函数极值。 …

国内外PLC的差异化对比

在聊PLC的市场格局和国产发展现状之前,我们先来简单了解一下PLC的作用。所谓PLC,你可以把它当成是一台小型电脑,只不过这台电脑是专用于工业领域,用来控制各种机械或生产的过程。比如说我们身上穿的衣服,都是由机器缝制…

合成数据在医疗保健行业的案例研究

从机器人辅助手术到医学成像技术,人工智能在医疗保健领域的应用正在迅速改变医疗保健行业,并改善服务成本和服务质量。例如,埃森哲表示,到 150 年,人工智能临床健康应用每年可以为美国医疗保健行业节省 2026 亿美元。 …

Ubuntu22.04 下 NFS 相关问题与完整配置(客户机 MacOS)

categories: [Linux-Shell] tags: Linux NFS 写在前面 最近折腾一下 NFS, 先白嫖一顿华子云的 1 个月服务器, 2C4G 感觉不错了, 但NFS 配置起来还是有点难度, 主要还是随机分配的端口配置方面比较恶心. server环境: 华为云 2C4G Ubuntu22.04 client环境: MacOS M1 with brew …

个人网厅——销户

目录 需求文档 公积金销户类 controller层 service层 service层实现类 1.验证 (个人账户) 2.提交(添加) controller层 service层 service层实现类 3.分页查询 controller层 service层 service层实现类 4. 详情查询…

2.【自动驾驶与机器人中的SLAM技术】左乘模型推导ESKF

目录 1. 证明题 证明:若某个高斯随机变量为零均值,协方差为对角线矩阵且大小相同(各向同性),那么在乘任意旋转矩阵以后,其均值仍为零,且协方差不变; 2. 代码实现运动方程将F矩阵…

layui table合并相同的列

table.render({elem: #samples,url: /index/Develorderss/samplelists?od_idod_id //数据接口,page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档layout: [prev, page, next, count,skip,limit]…

链表OJ题(1)

今天讲解两道链表OJ题目。 1.链表的中间节点 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释:链表只有一个…

mac 安装使用svn教程

mac 安装使用svn教程 一、安装Homebrew 要在Mac OS上安装SVN,首先需要安装Homebrew。Homebrew是一个流行的包管理器,因此我们将使用它来安装SVN。 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"…

区块链多链数字钱包开发

随着区块链技术的不断发展,多链数字钱包的开发逐渐成为热门领域。多链数字钱包是一种可以支持多种区块链网络的数字钱包,用户可以使用它来存储、管理和转移不同的数字资产。本文将探讨多链数字钱包的开发背景、市场需求、技术实现和未来趋势等方面。 一、…

redisson中的分布式锁二

公平锁(Fair Lock) 基于Redis的Redisson分布式可重入公平锁也是实现了java.util.concurrent.locks.Lock接口的一种RLock对象。同时还提供了异步(Async)、反射式(Reactive)和RxJava2标准的接口。它保证了当…

YB1205B S0T23开关式异步升压具恒压恒流LED驱动器

YB1205B S0T23开关式异步升压具恒压恒流LED驱动器 产品简介: YB1205B是一种输入电压范围宽(0.85.5V),可调恒定电流和限定电流两种模式来驱动白光LED而设计的升压型DCDC变换器。采用变频模式,逐周期限流,使输入输出电流随电源电压降低均匀变…

微服务之Nacos注册管理

文章目录 一、Nacos安装步骤1.安装地址2.安装版本3.目录说明4.端口配置5.启动 二、Nacos服务注册1.Nacos依赖2.客户端修改配置文件3.启动效果图4.总结 三、Nacos服务集群属性1.服务跨集群调用问题2.服务集群属性3.总结 四、Nacos根据集群负载均衡1.修改配置文件2.设置集群服务类…