资源描述
,单击此处编辑母版标题样式,2/5/2020,#,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,F5 BIG-IP LTM,详解,北京先进数通信息技术有限公司,十二月 24,LTM,基础架构,VS Type,详解,Profile,详解,CMP,工作原理,One Connect,工作原理,NAT,、,SNAT,工作原理,Monitor,工作原理,HA,工作原理,LTM,工作原理,LTM,基础架构,什么是,TMM,Traffic Management Module,TMOS,的核心进程,有自己独立的内存、,CPU,资源分配和,I/O,控制,所有的生产流量都通过,TMM,接收,一个,CPU Core,只能有,一个,TMM,进程,在,V9,版本上,,15/34/64/68,都是单,TMM,运行,在,V9,版本上,,16/36/69/89/84/88,都是多,TMM,运行,在,V10,版本上,,16/36/69/89/84/88,都是多,TMM,运行,Viprion,只支持,9.6,和,10.0,版本,默认都是多,TMM,运行,TMM,处理的范围,TMM,内部处理功能,所有的,VS,入口流量,LTM,i,Riules,处理,Profile,处理,会话保持处理,负载均衡算法,SSL,加速(和硬件结合),HTTP,压缩,SNAT,静态,CRL,(,Certificate,revocation list,证书吊销清单)文件校验,不在,TMM,里面处理的功能,Web Accelerator Module(,包括压缩,),Application Security Module,GTM,的分配算法处理(包括,GTM rules,),Named,域名解析,健康检查,日志管理,系统数据统计,SNMP,数据输出,HA,健康检查,BIGIP,内部结构,-V9,平台,15/34/64/68,TM/OS,管理,CPU,万兆,/,千兆交换端口,PVA,(,Packet Velocity ASIC,),四层交换专用,ASIC,Host OS,Web,界面管理,健康检查,SNMP,.,Bridge,TMM,0,独立的管理机,SCCP,SSL,加解密,HTTP,压缩,Admin,Console,BIGIP,内部结构,-Mecury,平台,16/36/69/89,6,TM/OS,管理,CPU,万兆,/,千兆交换端口,HiSpeed Bridge,TMM,2,Host OS,Web,界面管理,健康检查,SNMP,.,TMM,3,TMM,1,TMM,0,独立的管理机,AOM,Cluster,Muti,Processor,多,CPU,并行处理,SSL,加解密,HTTP,压缩,Console,Admin,Host,和,TMM,的内存分配,Host,在启动的时候限,定了内存分配的大小,,在没有其他,module,的情况下是,384MB,TMM,进程启动后,将,自动获取余下的所有,物理内存,H,ost Memory,TMM Memory,查看,Host,内存占用情况,#physmem,/,查看物理内存大小,8387584,b memory show,/,查看内存分配情况,MEMORY STATISTICS-,|(Host)Total=3.835GB Used=3.590GB,|(TMM)Total=5.976GB Used=93.22MB,查看,TMM,内存占用情况,TMM,分配的内存是准确的,,Host,内存显示在这里有一些偏差,VS,Type,详解,Performance L4,Standard VS,Fast HTTP,Forwarding,VS,Performance L4,TMM,只是负责客户端连接的分配和转发,不改变,TCP,连接中的任何参数,客户端和服务器自行协商,TCP,传输参数,在,34/64/68,平台上,Performance L4,可以有,PVA,加入实现硬件加速,在,15/16/36/69/89/Viprion,平台上都通过,TMM,核心进行处理,Performance L4,VS,上只有,4,层的,iRules,可以使用,默认状态下,新建连接的第一个包必须是,Syn,包,如果是其他的数据包比如,ACK,、,RST,等如果不在连接表中,则全部丢弃。,在,Fast L4 profile,打开,Loose close,和,Loose Initial,的时候对非,Syn,包也可以建立连接表,TMM,客户端,客户端,客户端,服务器端,服务器端,服务器端,Performance,L4,攻击防护,-Syn Cookie,正常情况下客户端连接和服务器端连接是,1:1,的关系,TMM,在第一次收到客户端,Syn,包时,并不建立连接表,TMM,的,Syn Ack,回应通过算法回应给客户端,Syn,,并期待客户端回应的值,TMM,对客户端,ACK,进行计算,确认是真实客户端,再和后台服务器建立连接,在,84/88,上可以实现硬件的,Syn Cookie,计算,其余的平台都是通过软件实现,SynCookie,计算,Syn Cookie,工作模式下,只有成功建立连接的,TCP,请求才转发到后台,TMM,Syn,Syn,Ack(syncookie),Ack(Cookie),Syn,Syn-Ack,Ack,Data,Standard VS,正常情况下客户端连接和服务器端连接是,1:1,的关系,默认工作在全代理模式,客户端和服务器端的,TCP,连接完全独立,客户端和服务器端的,TCP,参数都是由,TMM,和双方分别协商,默认情况下以客户端源,IP,和后台建立连接,在打开,SNAT,的情况下用,SNAT,地址和后台建立连接,Standard VS,的端口永远对外开放,无论后台是否有服务器在工作,TMM,Syn,Syn,Ack,Ack,Syn,Syn-Ack,Ack,Data,Data,Standard,模式下的攻击防护,Standard VS,模式具有天然的防攻击功能,在遇到,Syn,攻击的时候会导致系统的连接表过大,通过,System-SYN Check Activation Threshold,的设置,在达到设置值的时候系统自动启动,Syn Cookie,,避免建立过多连接,这个值对全局生效,大部分的网络层攻击都无法通过,Standard,模式的,VS,Fast HTTP,Fast HTTP VS,仅用于,HTTP,协议,默认开启,One Connect Profile,,对客户端连接进行聚合处理,默认开启,SNAT AutoMap,,在服务器端收到的,TCP,连接请求都是来自于,TMM,没有会话保持功能,不能处理,SSL,,,HTTPS,TMM,客户端,客户端,客户端,服务器端,服务器端,服务器端,Fowarding VS,(,Forwarding IP,),只能使用,Fast L4 Profile,按照连接处理,类似于路由器工作,但不完全一样,在,Fast L4 Profile,中开启,Loose Initial,和,Loose Close,之后更为接近路由工作模式,所有穿过,Fowarding VS,的连接都将产生连接表,没有,Pool Member,,转发完全取决于本地路由,可以使用基于,4,层的,Rules,TMM,客户端,查询本地路由表,转发客户端请求,VS,和,Profile,VS,作为所有流量的入口,Profile,依赖于,VS,,对进入,VS,的流量进行格式化处理,不同的,VS,可以用同一个,Profile,或者不同的,Profile,Profile,之间存在有相互排斥和相互依存的关系,VS,TCP Profile,UDP Profile,FastL4 Profile,HTTP,RTSP,Client SSL,Server SSL,Streaming,SMTP,SIP,One Connect,Rules,的处理必须依赖于,VS,对流量的接收,通过事件触发机制,,Rules,可以控制流量在,VS,内部处理的整个过程,SSL,Compression,Client,Side,Server,Side,TCP Express,Server,TCP Express,Caching,Microkernel,Virtual Server,iRules,Client,iControl API,TCP Proxy,OneConnect,XML,Rate Shaping,TrafficShield,Web Accel,3,rd,Party,VS,和,Rules,Server,iRules,Client,Side,Server,Side,TCP Proxy,Client Side Event,Client_accept,Client_data,Cache_request,DNS_request,HTTP_REQUEST,HTTP_REQUEST_DATA,RTSP_REQUEST,.,.,.,.,Server Side Event,Server_connect,Server_data,Cache_response,DNS_response,HTTP_RESPONSE,HTTP_RESPONSE_DATA,RTSP_RESPONSE,.,.,.,.,大部分,rules,只在同一个,VS,之内有效,Rules,内创建的变量以连接为生命周期,一个,VS,上可以有多个,Rules,,它们将被顺序执行,CLIENT_ACCPTED,CLIENT_DATA,LB_SELECTED,LB_FAILED,SERVER_ACCPTED,SERVER_DATA,CLIENT_CLOSED,SERVER_CLOSED,RULE_INIT,VS,Profile,的作用和工作范围,Profile,依赖于,VS,Profile,是对,VS,的流量进行格式化处理,举例如果一个,VS,上配置了,TCP Profile,,,则该,VS,对所有的,UDP,流量都不会接收,Profile,详解,基本流量处理类型,Profile,TCP,UDP,FastHTTP,Fast L4,SCTP,(,Stream Control Transmission Protocol,),服务流量处理类型,Profile,HTTP,FTP,SMTP,RTSP,(,Real Time Streaming Protocol,),SIP,(,Session Initiation Protocol,),iSession,SSL,处理类型,Client SSL,,,Server SSL,会话保持类型,Cookie,Destination IP,hash,msrdp,source IP,Universal,SSL,认证处理类型,Radius,CRLDP,(,Constraint-Based Label Distribution Protocol,),OCSP,(,Online Certificate Status Protocol,),其他处理类型,One Connect,Statistics,NTLM,(,NT LAN Manager,),Stream,重要的,Profile-FastL4,Reset on Timeout:,在连接达到,Time out,的是否向两端发送,Reset,包,Idel Timeout,:多长时间连接里面没有数据流量的时候就删除连接表,Loose Initiation/Loose Close:,是否接收非,Syn,包建立连接,Softare Syn Cookie Protection:,是否在,VS,上启用,Syn Cookie,,实现,Syn,攻击防护,可能调整的参数,重要的,Profile-TCP,注意在,Client Side,和,Server Side,可以使,用不同的,TCP Profile,通常情况下建议:,Client side,:,TCP WAN Optimized,或,LAN Optimized,Server side:TCP LAN Optimized,除非你非常了解,TCP,的工作原理,否则不,要调整除,idel Timeout,以外的任何参数,重要的,Profile-Client SSL,对所有进入,VS,的流量按照,SSL,协议进行处理,注意,Client SSL profile,不一定只能使用在,HTTPS,上,使用,Client SSL,的,VS,不一定使用,443,端口,TMM,客户端,客户端,客户端,服务器端,服务器端,服务器端,SSL,SSL,SSL,重要的,Profile-FTP,FTP Profile,主要用于处理,FTP,的主动,和被动传输两种模式,由于需要配置动态侦听端口,因此,FTP,协议必须进行单独处理,通过,iRules,也可以达到同样的目的,但,由于,FTP,协议使用非常广泛,因此使用,FTP profile,来简化配置和处理,FTP Profile,必须依赖于,TCP profile,工作,为什么要用,CMP,(,Cluster Multi-Processor,),性能增长要求,CPU,的主频增加受到比较大的限制,目前的趋势是以多,核扩展为主,ASIC,(,Application Specific Intergrated Circuits,),、,NP,(Network Processor,),的处理架构并不适合于复杂、灵活的流量处理,对于不规范的流量,采用硬件加速将导致系统设计僵化,,很难加入新的功能实现市场需求,需要充分利用,CPU,的多核处理能力来提升系统的整体性能,CMP,工作原理,CMP,的硬件支持,CMP,工作模式,流量由,HSB,进行分配在多个,TMM,上,每个,TMM,占据一个,CPU Core,,每个,TMM,有自己独立的内存空间,每个,TMM,都具有相同的配置,包括,VS/Profile/iRules/Pool/Persistence,等,TMM,之间通过内存高速总线进行通讯共享通用信息如会话保持表,,SNAT,源端口等,当,CMP,被,Disable,的时候,,TMM0,接管所有的流量,64/68,的硬件平台已经支持,CMP,,在,10.0,上自动开启,VIP,TMM0,VIP,TMM1,VIP,TMM2,VIP,TMM3,HSB,HSB,Super VIP,如何查看,CMP,工作状态,b tmm show,可以观察每个,TMM,的状态,关于,CMP,必须了解的内容,V9,平台启动,WA(web,应用加速器,),和,ASM,(,应用安全,管理器,)将,Disable CMP,iRules,中定义全局变量将,Disable CMP,所有的非,TCP/UDP,流量都只使用,TMM0,进行处理,V9,中使用,Session add,Session Lookup,命令将,Disable CMP,Connection Limit,和,Rate Shaping,的配置是针对每,个,TMM,生效,手工关闭,CMP,运行,b db Provision.tmmCount 1,调整后必须重启,任何一个,TMM Crash,,将导致设备间,Failover,TCPdump,已经调整为可支持,CMP,查看,Virtual Server,的,CMP,工作状态,如何查看,TMM CPU,占用率,top,命令可以显示每颗,CPU,的占用率,和,V9,相比,,TMM,的,CPU,在,Top,命令中的显示发生了变化,每颗,CPU,的,CPU,占用率目前在图形界面里都消失了,目前只有,整体的,CPU,占用率,One Connect,工作原理,连接聚合和内容交换,index.htm,a.gif,b.gif,c.asp,sales.htm,d.gif,e.gif,f.asp,sales.htm,d.gif,e.gif,index.htm,a.gif,b.gif,c.asp,Server,f.asp,index.htm,a.gif,b.gif,c.asp,sales.htm,d.gif,e.gif,f.asp,sales.htm,d.gif,e.gif,index.htm,a.gif,b.gif,c.asp,Server,f.asp,index.htm,a.gif,b.gif,c.asp,index.htm,a.gif,b.gif,c.asp,HTML server pool,GIF server pool,ASP server pool,连接聚合,内容交换,注:,eligible reuse,符合条件的再利用,One Connect,的典型工作场景,实现连接聚合降低服务器的连接总数,需要对每一个请求都进行单独处理(注意在多数,情况下,,LTM,只对一个连接的第一个包进行处理),典型的,打开,Cookie,会话保持有时候会出现保持,不正确的情况,这时就需要打开,One Connect,通过设置,Mask=255.255.255.255,,可以使后台服,务器可以“看到”客户端源,IP,,但这个时候,One-connect,只对一个客户端的连接起作用,One Connect,和应用协议,注意!,One Connect Profile,不是必须和,HTTP Profile,共用,也可以用于其他应用协议。,用于其他应用协议的时候必须使用,iRules,编程,来调用,One Connect,在需要对长连接进行拆分处理的时候,也需要用,One Connect Profile,NAT,的工作模式,206.142.12.10,NAT Address:,197.12.100.50,NAT,和,SNAT,SNAT,全称:,Secure Network Address Translation,SNAT,的工作模式,206.142.12.10,172.16.12.1,172.16.12.7,172.16.12.8,SNAT Address:,197.12.100.50,NAT,和,SNAT,之间的差别,NAT,1,比,1,接收所有发往,NAT,地址的连接,所有的连接只是通过,LTM,的连接表管理,但是是无状态的,连接不会被,Timeout,连接不能被镜像,SNAT,多对一或者多对多,拒绝所有发往,SNAT,地址的连接请求,.,连接通过,LTM,的连接表管理,有,timeout,设置,连接可以被镜像,SNAT AutoMap,当配置,SNAT AutoMap,的时候,请求从那个,VLAN,发出去,则,SNAT,的源地址为,VLAN,上的,SelfIP,当一个,VLAN,上有多个,SelfIP,存在的时候,,SNAT,的源地址是在多个,SelfIP,之间轮询,SNAT Pool,的工作模式,SNATPool,是提供了一个可用于,SNAT,源地址的列表,BIGIP,采用最小连接数的方式在,SNAT,的源地址之间进行选择,通过,iRules,控制,SNAT,when CLIENT_ACCEPTED,set snat_addr 1.1.1.1,when HTTP_REQUEST,set snat_addr HTTP:header X-Forwarded-For,log X-Fowarded-For is HTTP:header X-Forwarded-For,when LB_SELECTED,snat$snat_addr,HTTPS,SSL Offload,替换源地址,Server,端需要在,TCP,连接里面获取客户端源地址,SNAT,的源地址会话保持,when RULE_INIT,#log local5.warning-$cnc_snatpool,set snat_length llength$cnc_snatpool,log local5.warning-snat pool length is$snat_length,when LB_SELECTED,#set client_addr 10.1.1.33,set client_ip IP:client_addr,set client_last getfield$client_ip.4,#log local5.warning-client last is$client_last,set snat_addr lindex$cnc_snatpool expr$client_last%$snat_length,#log local5.warning-client snat addr$snat_addr,snat$snat_addr,Timeout,定义和镜像,SNAT,可以在两台设备之间镜像,SNAT,对于,TCP idle Timeout,和,UDP idle Timeout,可以有独立的设置,Monitor,如何向外发送请求,所有的,Monitor,请求都是由,bigd,进程发起,Monitor,流量要穿过,TMM,发送到,Server,或者其他位置,在,b conn,中可以看到,Monitor,的流量,TMM,bigd,Monitor,工作原理,重要的,Monitor-TCP,Send String:,发送的请求字符串,支持,C,语言,的转义符,Receive String:,在返回的内容中查询的字符串,Transparent:,数据包内的三层发送目的地是,Alias Address,,二层的发送目的地是,Node Address,的,MAC,地址,重要的,Monitor-External Monitor,MEMBER=$1;,PORT=$2;,HOST_2_RESOLV=$3;,$#-ne 3&exit 255,PIDFILE=/var/run/pinger.$MEMBER.eav.$PORT.pid,if -f$PIDFILE,then,kill-9 cat$PIDFILE /dev/null 2&1,fi,echo$PIDFILE,MEMBER=echo$1|sed s/:ffff:/2/dev/null,log_info(),echo$*|logger-p local0.info,#,#stock syslog-ng destinations-,#,local0.info-/var/log/ltm,#,local4.info-/var/log/ltm,#,local1.info-/var/log/messages,#,local3.info-/var/log/messages,#this is for debug only!do not call log_info below unless,#you want to see your syntax and the shell evaluation of,#variables(variable exansion),HA,工作模式,-Active/Active,每个,VS,对外提供不同的服务,服务器必须分组,分别指不同的网关,在使用,SNAT,的情况下不需要服务器指不同的网关(建议模式),VS 1,VS 2,HA,工作原理,串口心跳线的工作模式,没有数据在串口心跳线之间传输,两台设备是通过监控,Failover,线上的电压来决定是否切,换,备机一旦检测到主机电压为,0,则进行接管动作,切换时间在,200-300,毫秒之间,SOD(Switch Over Deamon),进程负责监控,Failover,线上,的电压,网络心跳线的工作模式,两台设备之间通过网络互相发送心跳信号,Network Failover,可以设置,2,条路径,Network Failover,和串口心跳线,Failover,可以同时使用,在,10.0,里的,Network Failover,有巨大的变化,静态负载均衡算法,轮询,比率,优先权,动态负载均衡算法,最少连接数,最快响应速度,观察方法,预测法,动态性能分配,动态服务器补充,服务质量,服务类型,规则模式,F5,负载均衡算法,轮询(,Round Robin,):顺序循环将请求一次顺序循环地连接每个服务器。,当其中某个服务器发生第二到第,7,层的故障,,BIG-IP,就把其从顺序循环队列,中拿出,不参加下一次的轮询,直到其恢复正常。,比率(,Ratio,):给每个服务器分配一个加权值为比例,根椐这个比例,把用户的请求分配到每个服务器。当其中某个服务器发生第二到第,7,层的故障,,BIG-IP,就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。,优先权(,Priority,):给所有服务器分组,给每个组定义优先权,,BIG-IP,用户,的请求,分配给优先级最高的服务器组(在同一组内,采用轮询或比率算法,,分配用户的请求);当最高优先级中所有服务器出现故障,,BIG-IP,才将请求,送给次优先级的服务器组。这种方式,实际为用户提供一种热备份的方式。,最少的连接方式(,Least Connection,):传递新的连接给那些进行最少连接处理的服务器。当其中某个服务器发生第二到第,7,层的故障,,BIG-IP,就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。,最快模式(,Fastest,):传递连接给那些响应最快的服务器。当其中某个服,务器发生第二到第,7,层的故障,,BIG-IP,就把其从服务器队列中拿出,不参加,下一次的用户请求的分配,直到其恢复正常。,观察模式(,Observed,):连接数目和响应时间以这两项的最佳平衡为依据,为新的请求选择服务器。当其中某个服务器发生第二到第,7,层的故障,,BIG-IP,就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复,正常。,预测模式(,Predictive,):,BIG-IP,利用收集到的服务器当前的性能指标,,进行预测分析,选择一台服务器在下一个时间片内,其性能将达到最佳的,服务器响应用户的请求。,(,被,BIG-IP,进行检测,),动态性能分配,(Dynamic Ratio-APM):BIG-IP,收集到的应用,程序和应用服务器的各项性能参数,动态调整流量分配。,动态服务器补充,(Dynamic Server Act.):,当主服务器群中因,故障导致数量减少时,动态地将备份服务器补充至主服务,器群。,服务质量,(QoS,),:,按不同的优先级对数据流进行分配。,服务类型,(ToS):,按不同的服务类型(在,Type of Field,中标识),对数据流进行分配。,规则模式:针对不同的数据流设置导向规则,用户可自行。,常用到的一般是最少连接数、最快反应、或者轮询,决定选用那种算法,主要还是要结合实际的需求,F5,会话保持,F5 BigIP,支持多种的会话保持方法,其中包括:简单会话保持(源地址会,话保持)、,HTTP Header,的会话保持,基于,SSL Session ID,的会话保持,,I-Rules,会话保持以及基于,HTTP Cookie,的会话保持,此外还有基于,SIP ID,以及,Cache,设备的会话保持等,但常用的是简单会话保持,,HTTP Header,的会话保持以及,HTTP Cookie,会话保持以及基于,I-Rules,的会话保持。,简单会话保持,简单会话保持,又,称为,基于源地址,的会话保持,是指负载均衡器在作负载均衡,时是,根据,访问请求的源地址,作为判断关连会话的依据。对来自,同一,IP,地址,的,所有访问,请求都会被,保持到一台服务器,上去。,简单会话保持一个很重要的参数就是,连接超时值,,,BIGIP,会为每一个,进行会话,保持的会话设定一个,时间值,,两次会话之前的间隔如果小于这个超时值,,,BIGIP,将会将新的连接进行会话保持,但如果这个间隔大于该超时值,,BIGIP,会,将新来的连接认为是新的会话然后进行负载平衡。,基于原地址的会话保持,实现简单,,,效率较高,。但是,多个用户,通过,代理或,地址转换,的,方式来访问服务器时,会导致服务器之间的,负载严重失衡,。,另外当,客户机数量很少,,但每个客户机都产生,多个并发访问,,这时用这种,方法也,会导致负载均衡失效。,基于,Cookie,的会话,保持,Cookie,插入,模式,在,Cookie,插入模式下,,BigIP,将负责插入,cookie,,后端服务器无需作出任何,修改。,当客户进行第一次请求时,客户,HTTP,请求(不带,cookie,)进入,BIGIP,,,BIGIP,根据,负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器,,后端服务器,进行,HTTP,回复(不带,cookie,)被发回,BIGIP,,然后,BIGIP,插入,cookie,,,将,HTTP,回复返回到客户端。当客户请求再次发生时,客户,HTTP,请求(带有,上次,BIGIP,插入的,cookie,)进入,BIGIP,,然后,BIGIP,读出,cookie,里的会话保持数值,,将,HTTP,请求(带有与上面同样的,cookie,)发到指定的服务器,然后后端服务器,进行,请求回复,由于服务器并不写入,cookie,,,HTTP,回复将不带有,cookie,,恢复,流量,再次经过进入,BIGIP,时,,BIGIP,再次写入更新后的会话保持,cookie,。,Cookie,重写模式,当客户进行第一次请求时,客户,HTTP,请求(不带,cookie,)进入,BIGIP,,,BIGIP,根据负载均衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行,HTTP,回复一个空白的,cookie,并发回,BIGIP,,然后,BIGIP,重新在,cookie,里写入会话保持数值,将,HTTP,回复返回到客户端。当客户请求再次发生时,客户,HTTP,请求(带有上次,BIGIP,重写的,cookie,)进入,BIGIP,,然后,BIGIP,读出,cookie,里的会话保持数值,将,HTTP,请求(带有与上面同样的,cookie,)发到指定的服务器,然后后端服务器进行请求回复,,HTTP,回复里又将带有空的,cookie,,恢复流量再次经过进入,BIGIP,时,,BIGIP,再次写入更新后会话保持数值到该,cookie,。,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,的请求回复给客户端。,Cookie Hash,模式,当客户进行第一次请求时,客户,HTTP,请求(不带,cookie,)进入,BIGIP,,,BIGIP,根据负载均衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行,HTTP,回复一个,cookie,并发回,BIGIP,,然后,BIGIP,将带有服务器写的,cookie,值的,HTTP,回复返回到客户端。当客户请求再次发生时,客户,HTTP,请求(带有上次服务器写的,cookie,)进入,BIGIP,,然后,BIGIP,根据,cookie,里的一定的某个字节的字节数来决定后台服务器接受请求,将,HTTP,请求(带有与上面同样的,cookie,)发到指定的服务器,然后后端服务器进行请求回复,,HTTP,回复里又将带有更新后的,cookie,,恢复流量再次经过进入,BIGIP,时,,BIGIP,将带有该,cookie,的请求回复给客户端。,SSL Session ID,会话保持,在用户的,SSL,访问系统的环境里,当,SSL,对话首次建立时,用户与服务器,进行首次,信息交换以:,1,交换安全证书,,2,)商议加密和压缩方法,,3,)为每条,对话建立,Session ID,。由于,该,S,ession,ID,在系统中是一个唯一数值,由此,,BIGIP,可以应用,该数值来进行会话保持。当用户想与该服务器再次建立连接时,,BIGIP,可以通过,会话中的,SSL Session ID,识别该用户并进行会话保持。,基于,SSL Session ID,的会话保持就需要客户浏览器在进行会话的过程中始终,保持其,SSL,Session ID,不变,但实际上,微软,Internet Explorer,被发现在经过特定,一段,时间后将主动改变,SSL Session ID,,这就使基于,SSL Session ID,的会话保持,实际应用,范围大大缩小。,基于,HTT Header,的会话保持,BIGIP,可以根据用户,HTTP,访问里,http,包头信息信息进行会话保持,,HTTP,包头里包含以下信息,,BIGIP,可以将用户访问里这些信息通过表达式来获得相应的数值从而进行会话保持。,Accept,:浏览器可接受的,MIME,类型。,Accept-Charset,:浏览器可接受的字符集。,Accept-Encoding,:浏览器能够进行解码的数据编码方式,比如,gzip,。,Servlet,能够向支持,gzip,的浏览器返回经,gzip,编码的,HTML,页面。许多情形下这可以减少,5,到,10,倍的下载时间。,Accept-Language,:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。,Authorization,:授权信息,通常出现在对服务器发送的,WWW-Authenticate,头的应答中。,Connection,:表示是否需要持久连接。如果,Servlet,看到这里的值为“,Keep-Alive”,,或者看到请求使用的是,HTTP 1.1,(,HTTP 1.1,默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如,Applet,,图片),显著地减少下载所需要的时间。要实现这一点,,Servlet,需要在应答中发送一个,Content-Length,头,最简单的实现方法是:先把内容写入,ByteArrayOutputStream,,然后在正式写出内容之前计算它的大小。,Content-Length,:表示请求消息正文的长度。,Cookie,:这是最重要的请求头信息之一,参见后面,Cookie,处理,一章中的讨论。,From,:请求发送者的,email,地址,由一些特殊的,Web,客户程序使用,浏览器不会用到它。,Host,:初始,URL,中的主机和端口。,If-Modified-Since,:只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回,304“Not Modified”,应答。,Pragma,:指定“,no-cache”,值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝。,Referer,:包含一个,URL,,用户从该,URL,代表的页面出发访问当前请求的页面。,User-Agent,:浏览器类型,如果,Servlet,返回的内容与浏览器类型有关则该值非常有用。,基于,I-Rules,的会话,保持,BIGIP,交换机内置有强大的搜索引擎,可以高效的探测到,网络,流量中的,IP,包内容的部分,并可以读出该,IP,包内容部,分进行会话保持,这些内容部分包括如下部分,:,下面是一个BIGIP根据IRULES进行会话保持的范例,:,if(http_uri ends_with“.gif”)use pool image_serverselse if(http_uri star
展开阅读全文