1.什么是会话保持?
在大多数电子商务的应用系统或者须要进行用户身份认证的在线系统中,一个客户与服务器常常通过好几回的交互过程才能完成一笔交易或者是一个请求的完成。由 于这几回交互过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,每每须要了解上一次交互过程的处理结果,或者上几步的交互过程结果,服务器 进行下一步操做时就要求全部这些相关的交互过程都由一台服务器完成,而不能被负载均衡器分散到不一样的服务器上。html
而这一系列的相关的交互过程多是由客户到服务器的一个链接的屡次会话完成,也多是在客户与服务器之间的多个不一样链接里的屡次会话完成。不一样链接的屡次 会话,最典型的例子就是基于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将会将新来的链接认为是新的会话而后进行负 载平衡。服务器
基于原地址的会话保持实现起来简单,只须要根据数据包3、四层的信息就能够实现,效率也比较高。存在的问题就在于当多个客户是经过代理或地址转换的方式来 访问服务器时,因为都分配到同一台服务器上,会致使服务器之间的负载严重失衡。另一种状况上客户机数量不多,但每一个客户机都会产生多个并发访问,对这些 并发访问也要求经过负载均衡器分配到多个服器上,这时基于客户端源地址的会话保持方法也会致使负载均衡失效。cookie
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的会话保持实际应用范围大大缩小。
转自:http://hi.baidu.com/xqllqx/blog/item/d77ece01f8a39fda277fb5f3.html