F5会话保持机制

2023-11-07

1.什么是会话保持?

  在大多数电子商务的应用系统或者需要进行用户身份认证的在线系统中,一个客户与服务器经常经过好几次的交互过程才能完成一笔交易或者是一个请求的完成。由于这几次交互过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一次交互过程的处理结果,或者上几步的交互过程结果,服务器进行下一步操作时就要求所有这些相关的交互过程都由一台服务器完成,而不能被负载均衡器分散到不同的服务器上。

  而这一系列的相关的交互过程可能是由客户到服务器的一个连接的多次会话完成,也可能是在客户与服务器之间的多个不同连接里的多次会话完成。不同连接的多次会话,最典型的例子就是基于http的访问,一个客户完成一笔交易可能需多次点击,而一个新的点击产生的请求,可能会重用上一次点击建立起来的连接,也可能是一个新建的连接。

  会话保持就是指在负载均衡器上有这么一种机制,可以识别做客户与服务器之间交互过程的关连性,在作负载均衡的同时,还保证一系列相关连的访问请求会保持分配到一台服务器上。

 

2.F5支持什么样的会话保持方法?    

  F5 Big-IP支持多种的会话保持方法,其中包括:简单会话保持(源地址会话保持)、HTTP Header的会话保持,基于SSL Session ID的会话保持,i-Rules会话保持以及基于HTTP Cookie的会话保持,此外还有基于SIP ID以及Cache设备的会话保持等,但常用的是简单会话保持,HTTP Header的会话保持以及 HTTP Cookie会话保持以及基于i-Rules的会话保持。

 

2.1 简单会话保持    

  简单会话保持也被称为基于源地址的会话保持,是指负载均衡器在作负载均衡时是根据访问请求的源地址作为判断关连会话的依据。对来自同一IP地址的所有访问 请求在作负载均时都会被保持到一台服务器上去。在BIG-IP设备上可以为“同一IP地址”通过网络掩码进行区分,比如可以通过对IP地址 192.168.1.1进行255.255.255.0的网络掩码,这样只要是来自于192.168.1.0/24这个网段的流量BIGIP都可以认为他们是来自于同一个用户,这样就将把来自于192.168.1.0/24网段的流量会话保持到特定的一台服务器上。

  简单会话保持里另外一个很重要的参数就是连接超时值,BIGIP会为每一个进行会话保持的会话设定一个时间值,当一个会话上一次完成到这个会话下次再来之前的间隔如果小于这个超时值,BIGIP将会将新的连接进行会话保持,但如果这个间隔大于该超时值,BIGIP将会将新来的连接认为是新的会话然后进行负载平衡。

  基于原地址的会话保持实现起来简单,只需要根据数据包三、四层的信息就可以实现,效率也比较高。存在的问题就在于当多个客户是通过代理或地址转换的方式来访问服务器时,由于都分配到同一台服务器上,会导致服务器之间的负载严重失衡。另外一种情况上客户机数量很少,但每个客户机都会产生多个并发访问,对这些并发访问也要求通过负载均衡器分配到多个服器上,这时基于客户端源地址的会话保持方法也会导致负载均衡失效。

 

2.2 基于Cookie的会话保持

  2.2.1 Cookie插入模式:在Cookie插入模式下,Big-IP将负责插入cookie,后端服务器无需作出任何修改

  当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIG-IP, BIG-IP根据负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复(不带cookie)被发回BIGIP,然后 BIG-IP插入cookie,将HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次BIGIP插入的cookie)进入 BIGIP,然后BIGIP读出cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,由于服务器并不写入cookie,HTTP回复将不带有cookie,恢复流量再次经过进入BIG-IP时,BIG-IP再次写入更新后的会话保持  cookie。

 

  2.2.2 Cookie 重写模式    

  当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP, BIGIP根据负载均衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个空白的cookie并发回BIGIP,然后BIGIP重新在cookie里写入会话保持数值,将HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次BIGIP重写的 cookie)进入BIGIP,然后BIGIP读出cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有空的cookie,恢复流量再次经过进入BIGIP时,BIGIP再次写入更新后会话保持数值到该  cookie。

 

  2.2.3 Passive Cookie 模式,服务器使用特定信息来设置cookie。    

  当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP, BIGIP根据负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个cookie并发回BIGIP,然后 BIGIP将带有服务器写的cookie值的HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次服务器写的cookie)进入 BIGIP,然后BIGIP根据cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请 求回复,HTTP回复里又将带有更新的会话保持cookie,恢复流量再次经过进入BIGIP时,BIGIP将带有该cookie的请求回复给客户端。

 

  2.2.4 Cookie Hash模式:    

  当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP, BIGIP根据负载均衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个cookie并发回BIGIP,然后 BIGIP将带有服务器写的cookie值的HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次服务器写的cookie)进入 BIGIP,然后BIGIP根据cookie里的一定的某个字节的字节数来决定后台服务器接受请求,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有更新后的cookie,恢复流量再次经过进入BIGIP时,BIGIP将带有该  cookie的请求回复给客户端。

 

2.3 SSL Session ID会话保持    

  在用户的SSL访问系统的环境里,当SSL对话首次建立时,用户与服务器进行首次信息交换以:1}交换安全证书,2)商议加密和压缩方法,3)为每条对话 建立Session ID。由于该Session ID在系统中是一个唯一数值,由此,BIGIP可以应用该数值来进行会话保持。当用户想与该服务器再次建立连接时,BIGIP可以通过会话中的 SSL Session ID识别该用户并进行会话保持。

  基于SSL Session ID的会话保持就需要客户浏览器在进行会话的过程中始终保持其SSL Session ID不变,但实际上,微软Internet Explorer被发现在经过特定一段时间后将主动改变SSL Session ID,这就使基于SSL Session ID的会话保持实际应用范围大大缩小。

 

转载于:https://www.cnblogs.com/wj94/p/7838068.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

F5会话保持机制 的相关文章

随机推荐

  • 浅浅写一下PPOCRLabel的使用及体验

    依赖包 我是基于之前建立好的paddle env环境 因此在使用过程中实际上 根据报错 需要的包只有这两个 pip install xlrd pip install PyQt5 关于报错的话 ModuleNotFoundError No m
  • Kettle案例——数据去重-不完全去重

    1 通过使用Kettle工具 创建一个转换 并添加 CSV文件输入 控件 唯一行 哈希值 控件以及Hop跳连接线 具体如图所示 2 单击 浏览 按钮 选择要进行完全去重处理的CSV文件merge csv 再单击 获取字段 按钮 Kettle
  • Java加密技术(十)——单向认证

    在 Java 加密技术 九 中 我们使用自签名证书完成了认证 接下来 我们使用第三方CA签名机构完成证书签名 这里我们使用 thawte 提供的测试用21天免费ca证书 1 要在该网站上注明你的域名 这里使用 www zlex org 作为
  • python图片对比并确定_python如何对比图像的区别

    python对比图像的区别方法 首先使用 pylab imread 读取图片 然后使用 matplotlib pylab plt imshow 显示图片 接着灰度图与RGB图相互转换 最后保存图片即可 相关学习推荐 python教程 pyt
  • Jmeter 压测工具的安装及使用

    目录 一 简介 二 下载 三 安装 四 启动 五 使用 1 调整界面显示大小 2 添加线程组 3 添加 HTTP 请求 4 添加 HTTP 请求头 5 保存压测配置 6 启动压测 7 查看结果树 8 查看聚合报告 六 补充 1 设置中文 2
  • 阿里云源 Python、npm、git、goproxy

    阿里云源 Python npm git goproxy 各种设置源的方式也都比较常见 但是根本记不住 每次都查感觉也不太好 正好发现了个宝藏地址 看起来还挺全的 以后找源也可以先在这个地方翻翻 顺便就搞了几个放到一个脚本里边 脚本内容 py
  • xxl-job项目集成到springBoot

    源码 http www xuxueli com xxl job id E4 B8 80 E3 80 81 E7 AE 80 E4 BB 8B 一初始化数据库 脚本位置 xxl job doc db tables xxl job sql xx
  • C++11中的std::function

    文章转载自 http www jellythink com archives 771 看看这段代码 先来看看下面这两行代码 std function
  • 4、Elasticsearch数据类型

    一 Elasticsearch时区类型 Elasticsearch时区划分 GMT 格林威治标准时间 默认时区 UTC 世界协调时 DST 夏日节约时间 CST 中国标准时间 二 Elasticsearch Mapping结构 Mappin
  • Gitlab 配置 SSH-Key

    SSH Keys 在 cicd 或者个人使用 gitlab 中有着重要的作用 本文将接入如何配置 ssh key 一 生成本地 rsa 公钥 1 1 mac 系统 1 打开vim terminal app 查看本地是否存在SSH Key l
  • Android Studio 为项目更改git仓库

    1 VCS gt Git gt remotes 2 重新Push就好了
  • const指针与函数模板的小问题

    最近在写c pp的一道练习题时发现了一些有趣的问题 在此分享一下 题目考察的主要是函数模板及其显式具体化相关知识 在此为节省空间就不放出来了 以下是我最开始写成的样子 include
  • vue+iview+drawer , vue抽屉效果

    前言 iview 抽屉效果 通过class来控制内容需要展示的内容 效果展示图 第一 封装的组件cdrawer vue
  • pd添加列名数据变为nan

    for i t in enumerate real time print i t temp for j in range len lat print i t j for k in range len lon data t mlon j k
  • 现在人手必备Java面试八股文,从起跑线开始冲刺

    前言 2022秋招即将来临 很多同学会问Java面试八股文有必要背吗 我的回答是 很有必要 你可以讨厌这种模式 但你一定要去背 因为不背你就进不了大厂 国内的互联网面试 恐怕是现存的 最接近科举考试的制度 而且 我国的八股文确实是独树一帜
  • java版本工程项目管理系统源码-简洁+好用+全面-工程项目管理

    工程项目管理系统是指从事工程项目管理的企业 以下简称工程项目管理企业 受业主委托 按照合同约定 代表业主对工程项目的组织实施进行全过程或若干阶段的管理和服务 系统定义 工程项目管理企业不直接与该工程项目的总承包企业或勘察 设计 供货 施工等
  • Vscode中css样式书写提示的插件及使用方法

    我们在使用vscode的时候 发现在css样式中 选择器选中类名或者id名的时候 第一次调用需要手动输入 第二次调用才会自动提示 这样导致开发的过程中很不方便 下面我们使用插件进行解决这个问题 达到调用的时候可以自动提示的效果 1 找到两个
  • 网络编程之:TCP服务器的简单实现

    说到TCP服务器 就不得不提socket编程 我们知道 在TCP IP协议中 IP地址 TCP或UDP端口号 唯一标识络通讯中的唯一一个进程 IP地址 端口号 就称为socket 在TCP协议中 建立连接的两个进程各自有一个socket来标
  • Lxc之二—网络设置

    按照博客一所述 应该能够创建lxc虚拟机并运行虚拟机 如果是本地的话 应该能够进入虚拟机操作了 会发现虚拟机只提供了最原始和简单的一些程序 如果使用template方式 甚至连vim gcc python等都没有安装 更别说myql了 安装
  • F5会话保持机制

    1 什么是会话保持 在大多数电子商务的应用系统或者需要进行用户身份认证的在线系统中 一个客户与服务器经常经过好几次的交互过程才能完成一笔交易或者是一个请求的完成 由于这几次交互过程是密切相关的 服务器在进行这些交互过程的某一个交互步骤时 往