LTM_本地流量管理(二)
会话保持
首先要熟悉两个概念:连接connect和会话session
连接:在四层负载均衡中,连接是最小元素。
l 源端口:客户端随机产生的端口。
l 源地址:发起请求的源IP地址。
l 目的端口:四层负载均衡上的虚拟服务端口。
l 目的IP:BIG-IP LTM上的虚拟服务地址。
会话:一个用户登录则产生一个session,可以由多个连接组成,一个session通常就是会话保持表中的一条记录所记录的所有连接。
源地址会话保持
认为同一个源地址为一个用户,凡是从一个源地址发过来的连接认为是一个用户发起的多个请求,根据会话保持,将这些连接发到同一服务器。VS会生成一个会话保持表,会话保持表如下图所示:

会话保持表有效时间为300s,超时删除会话保持记录,重新分配服务器。源地址会话保持如下图所示:

哈希会话保持
哈希会话保持的一个基本概念就是将一个连接中的源IP 和目的IP地址进行Hash计算, 根据计算得到的结果并根据后台存在多少台服务器来选择将请求分配到那台服务器。哈希会话保持可以没有会话保持表,而仅仅是根据计算的结果来确定一个源 IP 被分配到那台服务器。 哈希会话保持通常被用于一些特定场合,如要求客户端按照IP地址被固定分配的场合, 或者在一些会话保持表查询的开销已经远远大于 Hash 计算开销的情况下,采用 hash 会话保 持可以提高系统的处理能力和响应速度。
Cookie会话保持
Cookie指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。Cookie 的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成Cookie作用范围。若不设置过期时间,则表示这个Cookie的生命期为浏览器会话期间,关闭浏览器窗口,Cookie 就消失。这种生命期为浏览器会话期的Cookie被称为Session Cookie。Session Cookie一般不存储在硬盘上而是保存在内存里。若设置了过期时间,浏览器就会把Cookie保存到硬盘上,关闭后再次打开浏览器,这些Cookie仍然有效直到超过设定的过期时间。一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。一个WEB站点可以给一个WEB浏览器发送多个 Cookie,这样在WEB浏览器和WEB服务器之间就可以使用多个Cookie来传递多种信息。
Cookie会话保持三种方式
Cookie Insert

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

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

当客户进行第一次请求时,客户HTTP请求(不带 cookie)进入BIG-IP LTM, BIG-IP LTM 根据负载均衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个空白的cookie并发回 BIG-IP LTM,然后BIG-IP LTM重新在cookie里写入会话保持数值,将HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次BIG-IP LTM重写的cookie)进入 BIG-IP LTM,然后 BIG-IP LTM读出cookie里的会话保持数 值,将HTTP请求(带有与上面同样的 cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有空的cookie,恢复流量再次经过进入BIG-IP LTM时,BIG-IP LTM再次写入更新后会话保持数值到该cookie。
SSL ID 会话保持
在用户的 SSL 访问系统的环境里,当 SSL 对话首次建立时,用户与服务器进行首次信息交换:
1.交换安全证书 2.商议加密和压缩方法 3.为每条对话建立 Session ID。
由于该 Session ID 在系统中是一个唯一数值,由此,BIG-IP LTM 可以应用该数值来进行会话保持。当用户想与该服务器再次建立连接时,BIG-IP LTM 可以通过会话中的 SSL Session ID 识别该用户并进行会话保持。
基于 SSL Session ID 的会话保持就需要客户浏览器在进行会话的过程中始终保持其 SSL Session ID 不变,但实际上,微软 Internet Explorer 被发现在经过特定一段时间后将主动改变 SSL Session ID,这就使基于 SSL Session ID 的会话保持实际应用范围大大缩小。
可编程控制的会话保持
在实际的使用过程中,我们往往可能遇到更加复杂的一些情况,一个最典型的情况就是会话的特征并不在一些通常的位置,或者通用的名称。而是一个自定义的名称在一个特定的位置。在可编程控制的会话保持中,会话保持主要由两个部分组成: 1. 会话保持的特征的获取 2. 将特征与后台服务器相对应 。因此在 F5 BIG-IP LTM产品设计中,可以采用可编程控制方式来实现灵活的会话保持策略。
LTM_本地流量管理(二)的更多相关文章
- LTM_本地流量管理(一)
基本元素及概念 Node:节点,即服务器的IP地址. Member:成员,即一个服务,用IP+端口表示. Pool:池:一个或多个Member的逻辑分组,一个Pool表示一个应用,每个Pool都有自己 ...
- JavaScript技巧总结和本地存储(二)
离线检测 检测是否离线,html5为此定义了一个navigator.onLine属性,这个属性为true表示设备能上网,false表示离线,这个属性还有点兼容问题.因此单独使用这个属性不能确定网络是否 ...
- H5本地存储二
众所周知,H5的storage有sessionstorage&localStorage,其中他们的共同特点是API相同 下面直接上代码,storage中的存储与删除: <!DOCTYPE ...
- H5混合开发二维码扫描以及调用本地摄像头
今天主管给了我个需求,说要用混合开发,用H5调用本地摄像头进行扫描二维码,我之前有做过原生安卓的二维码扫一扫,主要是通过调用zxing插件进行操作的,其中还弄了个闪光灯.但是纯H5的没接触过,心里没底 ...
- Java 生成在线二维码 以Base64返回前端、或者写入到本地磁盘
思路 现阶段遇到这样一个问题,在原有的产品上加入线下优惠券模式,用户领取优惠券以后,获取到一个唯一的ID作为领取凭证,但是在线下用扫码枪进行扫码的时候,总不能让人手动输入吧 于是乎就想出了一个办法,后 ...
- 在本地(Eclipse)运行第一个strom-starter例子
一.在Eclipse中建立storm项目: 具体步骤如下: 1.在Eclipse中新建java project项目并导入jar包: File-> New -> Java Project - ...
- QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式
目录 功能介绍 常见问题 效果图与示例 apk Gradle 依赖 布局文件 自定义属性说明 接口说明 关于我 功能介绍 根据之前公司的产品需求,参考 barcodescanner 改的,希望能帮助到 ...
- python读取数据库并把数据写入本地文件
一,介绍 上周用jmeter做性能测试时,接口B传入的参数需要依赖接口A生成的借贷申请ID,接口A运行完需要把生成的借贷申请ID导出来到一个文件,作为参数传给接口B,刚开始的时候,手动去数据库倒, 倒 ...
- JAVA基础知识总结:一到二十二全部总结
>一: 一.软件开发的常识 1.什么是软件? 一系列按照特定顺序组织起来的计算机数据或者指令 常见的软件: 系统软件:Windows\Mac OS \Linux 应用软件:QQ,一系列的播放器( ...
随机推荐
- Jmeter接口测试系列之判断测试结果
在使用jmeter进行接口测试时,我们需要根据测试用例判断其测试结果是否一致,判断其执行是否成功. 在jmeter中也可以使用响应断言去判断,但是有时我们需要根据不同的用例,其判断条件不同,所以这里我 ...
- fiddler之请求过滤(Filters)
开启fiddler后,会监听所有的请求,在大多数情况下,我们只需要监听部分请求,此时可以使用Filters功能去控制. 界面显示如下: 默认情况下过滤是未开启的,需要勾选“user filters”进 ...
- mybatis参数传参、取值处理等
单个参数:mybatis不会做特殊处理 取值方式:#{参数名} 这里参数名不必与方法的形参名称一致,可以用任意参数名来接受实参 例子:方法:update(Integer id) sql映射文件取值#{ ...
- 安装golang web框架 gin
gin 地址https://github.com/gin-gonic/gin#installation 去gin 地址 clone 下来,放到对应的包中即可.如:gin就放在项目文件夹/github. ...
- $apply()和$digest()——angular
$apply()和$digest()在AngularJS中是两个核心概念,但是有时候它们又让人困惑.而为了了解AngularJS的工作方式,首先需要了解$apply()和$digest()是如何工作的 ...
- Ubuntu 16.04系统挂载4T硬盘
问题描述: Ubuntu 16.04系统,系统盘为240G固态硬盘,还有1T机械硬盘,现要再添加一个4T硬盘. 问题分析: 使用GTP对硬盘进行分区并挂载硬盘的方法,一般而言服务器上挂载的硬盘都是比较 ...
- Ubuntu 16.04简单配置备忘录
1.几个安装包的地址 1.Linux QQ:https://im.qq.com/linuxqq/index.html 2.网易云音乐:http://s1.music.126.net/download/ ...
- [转帖]IDC发布2018下半年中国公有云市场报告
IDC发布2018下半年中国公有云市场报告:AWS以6.4%的份额名列第四 http://www.itpub.net/2019/05/06/1793/ 电信的公有云 好像是用的 华为的技术. AWS在 ...
- MySQL8 clone plugin
安装MySQl8.0.17 下载 MySQL8.0.17 二进制版本 https://dev.mysql.com/downloads/mysql/ 解压,修改权限 -linux-glibc2.-x86 ...
- vue.js学习记录
vue.js学习记录 文章已同步我的github笔记https://github.com/ymblog/blog,欢迎大家加star~~ vue实例 生命周期 beforeCreate:不能访问thi ...