热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

F5Loadbalancer转发模式原理(客户端>服务器)

1.透明模式:PerformanceL4DNAT原理:这种类型的Virtualserver.F5按照纯四层的方式处理数据包,只看源IP,源

1.透明模式:Performance L4 + DNAT
原理:这种类型的Virtual server.F5按照纯四层的方式处理数据包,只看源IP,源端口,目的IP和目的端口。数据包到达F5后,只改变目的IP为后端地址和端口进行转发。这部分的数据处理方式是可以通过F5 PVA芯片来进行转发的。所以这种模式从理论上来将是不会消耗CPU的。但是F5对PVA转发的要求还是比较苛刻,会有很多相关条件的限制。
后端操作:默认网关需要指向F5

 

2.透明模式:Performance L4 + SNAT + DNAT
原理:这种类型的Virtual server.F5按照纯四层的方式处理数据包,只看源IP,源端口,目的IP和目的端口。数据包到达F5后,改变源IP地址为SNAT地址的(一般为F5的vip),同时也改变目的IP为后端地址和端口进行转发。这部分的数据处理方式是可以通过F5 PVA芯片来进行转发的。所以这种模式从理论上来将是不会消耗CPU的。但是F5对PVA转发的要求还是比较苛刻,会有很多相关条件的限制。
后端操作:不需要任何操作               关于SNAT,F5会自动增加HTTP头部x_forwarded_for标示真实的客户端地址;


3.透传模式:standard + DNAT
原理:这种类型的Virtual server在数据包F5上是采取full proxy 7层的处理模式。一个client发起请求后,首先需要跟F5建立三次握手后,随后F5进行转发,再跟后端real server建立三次握手时,源地址和源端口为原客户端的,而目的IP和端口为后端的。F5维护两个TCP协议栈。在应用HTTP Profile后,F5将数据包按照HTTP协议的方式进行处理。此时数据的处理过程完全由F5 CPU处理。也可以实现所谓的content switch(内容交换)。但是这种方式对CPU的消耗比较高。
后端操作:默认网关需要指向F5(防止回程路由不一致,TCP又是有状态的协议,所以F5的握手得不到响应,见下面)

实例举例:客户端45.45.45.45访问https:195.175.224.74:6070,到达F5。 F5将做DNAT。  TCP ID为N
DNAT:195.175.224.74(VS公网IP)-->F5上的VIP 172.27.0.62(路由)-->172.27.0.19(服务器私网IP)  TCP ID为N

通信流程为:
45.45.45.45-->195.175.224.74  TCP ID为N (检查DNAT绑定) 195.175.224.74(VS公网IP)-->172.27.0.62(路由)-->172.27.0.19(服务器私网IP)  TCP ID为N
最终表现为45.45.45.45-->172.27.0.19   TCP ID为N

Traffic flow:
request Flow 10.10.10.10(Client)  ---> 195.175.224.66 ---->172.27.0.30 --->172.27.0.5
172.27.0.5  ---> 172.27.0.30 ---> 195.175.224.66 ---> 10.10.10.10(server)

 

4,透传模式:standard + SNAT + DNAT


原理:这种类型的Virtual server在数据包F5上是采取full proxy 7层的处理模式。一个client发起请求后,首先需要跟F5建立三次握手后,随后F5进行转发,跟后端real server建立三次握手时,源地址和源端口更改为SNAT地址的((一般为F5的vip)),而目的IP和端口为后端的。F5维护两个TCP协议栈。在应用HTTP Profile后,F5将数据包按照HTTP协议的方式进行处理。此时数据的处理过程完全由F5 CPU处理。也可以实现所谓的content switch(内容交换)。但是这种方式对CPU的消耗比较高。
后端操作:不需要任何操作


实例举例:客户端45.45.45.45访问https:195.175.224.74:6070,到达F5。TCP ID为N   F5将做DNAT和SNAT。
DNAT:195.175.224.74(VS公网IP)-->172.27.0.19(服务器私网IP)  
SNAT:45.45.45.45-->F5上的VIP 172.27.0.62(两台F5上,各自还有和后端服务器同VLAN的IP 172.27.0.61和172.27.0.60)TCP ID为M
通信流程为:
45.45.45.45-->195.175.224.74(TCP ID为N)   检查SNAT,DNAT绑定   172.27.0.62-->172.27.0.19(TCP ID为M)


5,fast http模式:standard + SNAT + DNAT + oneconnect
原理:oneconnect只是一个keepalive的作用,让client向F5发http请求的时候,可以复用同一条连接。不支持https和会话保持功能,原因就是连接复用的问题。
后端操作:不需要任何操作

6,路由转发模式
原理:和lvs的DR模式相同
后端操作:和lvs的DR模式相同


推荐阅读
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 本文详细解析了ASP.NET 2.0中的Callback机制,不仅介绍了基本的使用方法,还深入探讨了其背后的实现原理。通过对比Atlas框架,帮助读者更好地理解和应用这一机制。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 如何在PHP中准确获取服务器IP地址?
    如何在PHP中准确获取服务器IP地址? ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • RocketMQ在秒杀时的应用
    目录一、RocketMQ是什么二、broker和nameserver2.1Broker2.2NameServer三、MQ在秒杀场景下的应用3.1利用MQ进行异步操作3. ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 本文详细介绍了在 React Native 开发过程中遇到的 'Could not connect to development server' 错误及其解决方法。该问题不仅影响开发效率,而且难以通过网络资源找到确切的解决方案。本文将提供详细的步骤,帮助开发者快速解决这一常见问题。 ... [详细]
  • MicrosoftDeploymentToolkit2010部署培训实验手册V1.0目录实验环境说明3实验环境虚拟机使用信息3注意:4实验手册正文说 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • 大家好,我是李白。本文将分享一个从零开始的全栈项目,涵盖了设计、前端、后端和服务端的全面学习过程。通过这个项目,我希望能够帮助初学者更好地理解和掌握全栈开发的技术栈。 ... [详细]
  • 性能测试中的关键监控指标与深入分析
    在软件性能测试中,关键监控指标的选取至关重要。主要目的包括:1. 评估系统的当前性能,确保其符合预期的性能标准;2. 发现软件性能瓶颈,定位潜在问题;3. 优化系统性能,提高用户体验。通过综合分析这些指标,可以全面了解系统的运行状态,为后续的性能改进提供科学依据。 ... [详细]
author-avatar
s0e2tv26d80iossI
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有