• ​三角指的是哪三个东西?

    1.客户端     2.AD负载均衡    3.服务器

  • 应用场景:

    客户端需要在服务器看到真实IP且服务器网关不能指向负载均衡设备

  • 以下是正常环境下的数据流向示范,以单臂旁路方式进行举例,:

假设客户端的IP和端口为 172.16.0.1:8000,负载均衡设备的虚拟IP(VIP)为 10.0.0.1:80,设备自身的NSIP为10.0.0.100,服务器 10.0.0.2:80的默认网关指向3层交换机的接口地址10.0.0.254。

由上图可以看出,当客户端请求通过三层交换机到达负载均衡设备虚IP 10.0.0.1:80时,负载均衡设备将会对请求中的目标IP 10.0.0.1:80转换为 10.0.0.2:80,并将请求发送给服务器。此时请求中的IP仍然为客户端IP 172.16.0.1:8000,这样服务器收到请求后查看到请求中的源IP为客户端,这样将会应答直接从默认网关10.0.0.254发出,发回客户端。

至此会发生什么问题呢?
客户端发送的请求中源IP为自身,目的IP为负载均衡器上的虚拟IP

但是客户端通过三层交换机默认网关接收到的应答中,源IP为真实服务器IP,目标IP为客户端,这样客户端与服务器是无法建立通信的。

为了解决这个问题,此时有两种方法:

  1. 将服务器的默认网关配置为负载均衡器的接口地址

  2. 在负载均衡器分发请求的过程中改变请求包中的源IP,此方法也成为SNAT(Source Network Address Translation,源网络地址转换)

以上两种方法互斥,两者选其一

以下按照第2种方法进行举例,如图所示:

由于负载均衡器配置了SNAT,在接收到请求包时,会将源IP改为自己的NSIP  10.0.0.100,这样在客户端接收到请求包后,会将应答包返回给负载均衡器,然后负载均衡器再次对应答包中的源IP进行修改,修改为自身的虚拟IP(VIP)10.0.0.1,再将应答包返回给客户端。这个过程最后就是:

客户端发出的请求中:源IP为172.16.0.1,目标IP为10.0.0.1(负载均衡设备上的虚拟VIP)

客户端接收到的应答中:源IP为虚拟VIP 10.0.0.1,目标IP为172.16.0.1

这样双方就可以建立通信

但是我们会发现请求包与应答包都需要从负载均衡器进行转发,有什么办法可以提高传输效率呢?会不会有一种让请求经过负载均衡器,而服务的响应无须从负载均衡器原路返回的工作模式呢?有啊,上面的第一张图,如图!

整个请求、转发、响应的链路形成一个“三角关系”

不对,上面不是已经分析过了吗,这种模式由于请求包与应答包中的源IP和目的IP对不上号,所以无法建立通信,为什么这里又要搬出来呢?

唯一的区别在于,服务器在发送响应客户端的请求的应答的时候,源IP采用的是10.0.0.1,而非第一张图中的自己的接口ip10.0.0.2。这个时候,客户端收到的应答,源ip就成了10.0.0.1:80,目标IP为172.16.0.1:8000,所以连接成功建立。这种成功建立的方式,像一个三角形,所以称为三角传输。

总结一下,就是在服务器上配置Loopback的IP为负载均衡器上的虚拟IP(VIP)同时负载均衡设备在转发请求的时候不改变请求的源和目标IP,这样应答包中的源IP就是请求包中的目的IP

负载均衡——三角传输相关推荐

  1. 后台系统可扩展性学习笔记(五)负载均衡

    文章目录 Load balancer(负载均衡器) 请求传输拆解 DNS 负载均衡 客户端负载均衡 OSI 七层模型回顾 2 层.3 层负载均衡 3/4 层负载均衡 7 层负载均衡 在 第一节谈到了系 ...

  2. 从网络到分布式-负载均衡

    从网络到分布式-负载均衡 https://www.toutiao.com/i6939329630021124620/?tt_from=weixin&utm_campaign=client_sh ...

  3. Nginx代理——正向、反向代理,动静分离和负载均衡

    文章目录 一.Nginx代理概述 (1)什么是正向代理和反向代理 -正向代理: -反向代理 -反向代理和正向代理的区别 (2)配置代理 -Nginx代理配置语法 -配置正向代理 -Nginx反向代理示 ...

  4. 服务器负载不高 响应慢_一篇读懂分布式架构下的负载均衡

    weChat公众号:IT一刻钟.大型现实非严肃主义现场,一刻钟与你分享优质技术架构与见闻,做一个有剧情的程序员.关注可第一时间了解更多精彩内容.问题或建议,请公众号留言. 什么是负载均衡? 百度词条里 ...

  5. Nginx四层负载均衡详解

    Nginx四层负载均衡 什么是四层负载均衡 四层负载均衡基于传输层协议包来封装的(如:TCP/IP),那我们前面使用的七层指的是应用层,它的组装在四层基础之上,无论是四层还是七层都是这是OSI网络模型 ...

  6. 图解 负载均衡算法及分类

    什么是负载均衡? 百度词条里的解释是:负载均衡,英文叫Load Balance,意思就是将请求或者数据分摊到多个操作单元上进行执行,共同完成工作任务. 它的目的就通过调度集群,达到最佳化资源使用,最大 ...

  7. 三角传输的在链路均衡项目中的灵活应用

    首先需要解释一下三角传输的概念,该概念正常情况下适用于特定应用类型的服务器均衡项目中.为了明晰基本概念,我们先以正常环境下的数据流向示范. 常见的服务器部署方式中,最多的为旁路部署,因为该方式不需要用 ...

  8. nginx工作笔记005---nginx配置负载均衡_在微服务中实现网关集群_实现TCP传输层协议__http协议的负载均衡

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 我们在微服务中,由于网关的存在,后来,在nginx中都不需要在配置其他服务的地址了,只需要,配置一 ...

  9. 【万字长文】吃透负载均衡

    首先告诉大家一件事,在十一国庆期间,引擎的机器又又...又扛不住了流量. 经过监控分析,发现某个服务的一个实例所在的虚拟机扛不住了,所以采取临时措施流量控制之后,问题解决了,但还是造成了不小的损失. ...

  10. 全局负载均衡与CDN内容分发

    作者:等不到的口琴 来源:https://www.cnblogs.com/Courage129/p/14363627.html CDN简介CDN的全称是Content Delivery Network ...

最新文章

  1. GlideApp 引入不了问题
  2. [BZOJ2653]middle
  3. 【Scala-spark.mlib】本地矩阵乘法计算效率比较(稠密稀疏哪家强?)
  4. 根据皮肤亮度来区分salmon和sea bass,这个比较好
  5. 设主存容量为1MB,外存容量为400MB,计算机系统的地址寄存器有32位,那么虚拟存储器的最大容量是( )
  6. windows server 2008 (五)web服务器的搭建和部署
  7. 过年用计算机弹奏,过年实用,你可能需要的亲戚称呼计算器
  8. 以下文件中的行尾不一致,要将行尾标准化吗?+乱码
  9. python计算器界面设计_Python 计算器界面设计
  10. 中国古代亲属称谓家谱总览
  11. 趣开门APP、微信开门小程序,让开门更简单,更有趣!
  12. matlab快速原型开发c语言,快速原型开发
  13. OPTEE CA和TA通信 实现从java到ca
  14. 什么是营销SaaS?
  15. mysql升级 增删改查询
  16. EpiQuik病毒RNA提取试剂盒,快速、简单、经济有效
  17. SSE指令集加速运算
  18. 天荒地老修仙功-第六部:Spring Cloud Eureka——服务发现
  19. [转]超级强大的SVG SMIL animation动画详解
  20. 本地文件与服务器同步,本地与服务器文件同步

热门文章

  1. c语言程序设计医院排队功能,C语言-医院挂号排队系统.doc
  2. 计算机里的网络怎么用,电脑不用路由器怎么连接宽带上网?
  3. ios 判断打开相机权限_iOS 获取用户是否有(相册/相机)权限
  4. 石家庄地铁路线安排网站的最终版本——博客登记
  5. itools电脑显示服务器维护,win10系统iTools无法打开且服务无法启动的具体技巧
  6. SUSE收购Rancher Labs,云原生时代大幕拉开
  7. word中将空格替换为_如何在Microsoft Word中将双空格更改为单空格
  8. NX1957在VS2019上二次开发的环境配置
  9. IBM_P870_F900连接方式更改(交换机改直连)
  10. Linux期末复习第三章