Q: 服务器负载均衡有哪些实现方法?
A: 实现服务器负载均衡有多种方法,常见的方法有:
1.基于DNS 轮询的方法:即在DNS 服务器中对同一域名设置多条DNS A 记录,
通过DNS 的轮询机制实现服务器负载均衡。
2.基于服务器集群的方法;
3.基于应用软件的实现方法,在应用软件设计中就考虑了多服务器之间的协同工作
与任务调度。这种方法一般会有一台服务器作为中枢对访问请求进行调度,同时
要求在应用层支持访问重定向或任务调度、跳转机制。
4.采用专门的L4/L7 层交换机来实现,也即我们常说的负载均衡器。一般都是通过
在L4/L7 层交换机作地址转换(NAT)来实现。
5.基于代理方式的负载均衡算法。
----------------------------------------------------------------------------------
Q: 请简单介绍F5 L4/L7 层交换机对服务器作负载均衡的工作过程。
A: F5 L4/L7 层交换机对服务器作负载均衡时主要包括以下几个过程:
1.截获和检查分析流量:保证只有合适的数据包才能通过
2.服务器监控和健康检查:随时了解服务器群的可用性状态
3.负载均衡和应用交换功能:通过各种策略或负载均衡算法将访问请求导向到合适的服务
器,这一过程包括目标服务器的选择及地址转换(NAT)过程。
4.会话的保持(Persistence):通过会话保持,保证一系列相关连的会话不会被负载均衡到
不同的服务器上。
----------------------------------------------------------------------------------
Q: F5 L4/L7 层交换机对服务器作负载均衡时是怎样做地址转换的(NAT)。
A: F5 L4/L7 层交换机对服务器作负载均衡是采用基于网络地址转换(NAT)的负载均衡技
术 。 如:负载均衡器后面的一组服务器
的服务器(Virtual Server)192.168.101.1:80,对外提供服务。当一个访问虚拟服务器
192.168.101.1:80 的请求到达负载均衡器以后,负载均衡器根据预先设定的负载均衡算法从服
务器pool(WEB_POOL)中挑选一台服务器来服务该请求,例如选定的是10.1.1.4:80;然后通
过网络地址转换(NAT)将访问请求包的目的地址与端口转换成10.1.1.4:80,并将数据包发给
10.1.1.4。服务器10.1.1.4 处理访问请求,并作出回应。回应的包必须返回到负载均衡器上,
由负载均衡器将回应包的源地址与端口转换回虚拟服务器的地址与端口,并返回给客户。这样
完成一次访问过程。
----------------------------------------------------------------------------------
Q: 什么叫会话保持(Persistence)?
A: 会话保持(persistence)是负载均衡中一个特定而重要的概念。
一个客户与服务器经常经过好几次的交互过程才能完成一笔交易。由于这几次交互过
程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一次交互
过程的处理结果,这就要求所有这些相关的交互过程都由一台服务器完成,而不能被负载均衡
器分散到不同的服务器上。
而这一系列的相关的交互过程可能是由客户到服务器的一个连接的多次会话完成,也
可能是在客户与服务器之间的多个不同连接里的多次会话完成。不同连接的多次会话,最典型
的例子就是基于http 的访问,一个客户完成一笔交易可能需多次点击,而一个新的点击产生
的请求,可能会重用上一次点击建立起来的连接,也可能是一个新建的连接。
会话保持就是指在负载均衡器上有这么一种机制,可以识别做客户与服务器之间交互
过程的关连性,在作负载均衡的同时,还保证一系列相关连的访问请求会保持分配到一台服务
器上。
----------------------------------------------------------------------------------
Q: 基于Layer 4 的负载均衡与基于Layer 7 的负载均衡有什么区别?
A: 基于Layer 4 的负载均衡在截取数据流以后,对数据包要检查与分析的部份仅仅限于IP 报
头及TCP/UDP 报头,而不关心TCP 或UDP 包内部信息。而基于Layer7 的负载均衡,则要
求负载均衡器除了支持Layer4 负载均衡以外,还要理解数据包中4 层以上的信息,也即应用
层的信息。例如,可以理解分析http 协议,从数据包中提取出http uri 或cookie 信息。基于
Layer4 与基于Layer7 负载均衡或交换对数据包检查的深度不一样,基于Layer4 的交换偏重
的是网络层,而Layer7 偏重的是应用层,与应用结合很紧密。负载均衡器在作这两种方式的
负载均衡时的性能也不一样。
----------------------------------------------------------------------------------
Q: 为什么需要基于Layer7 的负载均衡?
A: 简单来说,之所以需要基于Layer7 的负载均衡,有以下原因:
1.会话保持(Persistence)的需要:在很多应用中,单靠Layer4 层的信息,也即IP 地址
与端口的信息,是不足以分辨出会话的相关性。这样要实现会话保持,就必须依靠
于Layer7 交换。
2.应用安全的需要:要做到应用级的安全,负载均衡器必须能检查、分析应用层的信
息,并以此作为流量分发、访问控制的依据。
3.服务器、应用健康检查的需求:如前面所述,负载均衡器还有一个重要任务就是要及
时发现服务器上的异常情况,这种异常情况不仅仅限于网络故障,还包括服务或应
用能不能对访问请求作出正确的响应。这也是要通过对数据包的应用层进行分析才
能实现。
----------------------------------------------------------------------------------
Q: 对Lay4-7 层交换机或应用交换机一般要关注、了解哪些方面?
A: 一般来说,对Lay4-7 层交换机或应用交换机,一般会提到以下几个因素:
支持的负载均衡算法
支持的服务器健康检查的方法
如何保持客户端和服务器的会话
速度/性能指标
安全性与可靠性
端口数量
----------------------------------------------------------------------------------
Q: F5 Bigip 负载均衡器支持哪些负载均衡算法?
A: F5 Bigip 负载均衡器支持的负载均衡算法包括:
1.轮询(RoundRobin):顺序循环将请求一次顺序循环地连接每个服务器。当其中某个服务器
发生第二到第7 层的故障,BIG/IP 就把其从顺序循环队列中拿出,不参加下一次的轮询,直到其恢复
正常。
2.比率(Ratio):给每个服务器分配一个加权值为比例,根椐这个比例,把用户的请求分配到每
个服务器。当其中某个服务器发生第二到第7 层的故障,BIG/IP 就把其从服务器队列中拿出,不参加
下一次的用户请求的分配,直到其恢复正常。
3.优先权(Priority):给所有服务器分组,给每个组定义优先权,BIG/IP 用户的请求,分配给优
先级最高的服务器组(在同一组内,采用轮询或比率算法,分配用户的请求);当最高优先级中所有服
务器出现故障,BIG/IP 才将请求送给次优先级的服务器组。这种方式,实际为用户提供一种热备份的
方式。
4.最小的连接数(LeastConnection):传递新的连接给那些进行最少连接处理的服务器。当其
中某个服务器发生第二到第7 层的故障,BIG/IP 就把其从服务器队列中拿出,不参加下一次的用户请
求的分配,直到其恢复正常。
5.最快模式(Fastest):传递连接给那些响应最快的服务器。当其中某个服务器发生第二到第7
层的故障,BIG/IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。
6.观察模式(Observed):连接数目和响应时间以这两项的最佳平衡为依据为新的请求选择服
务器。当其中某个服务器发生第二到第7 层的故障,BIG/IP 就把其从服务器队列中拿出,不参加下一
次的用户请求的分配,直到其恢复正常。
7.预测模式(Predictive):BIG/IP 利用收集到的服务器当前的性能指标,进行预测分析,选择
一台服务器在下一个时间片内,其性能将达到最佳的服务器相应用户的请求。(被big/ip 进行检测)
8.规则模式(iRule):针对不同的数据流设置导向规则,用户可自行编辑流量分配规则,BIG/IP
利用这些规则对通过的数据流实施导向控制。
----------------------------------------------------------------------------------
Q: F5 Bigip 负载均衡器支持哪些服务器健康检查方法?
A: F5 Bigip 负载均衡器支持以下的服务器健康检查方法:
1.服务器 (Node) - Ping (ICMP)
2.服务 (Port) - Connect
3.可扩展的应用验证 (EAV) :不仅仅检查服务器上指定服务的端口是否处于监听状态,还要检查该
服务端口能否对应用访问请求作出回应,例如可以检查对http 请求或对数据库的查询能否作出
回应。
4.可扩展的内容验证 (ECV):Bigip 除了可以通过EAV 对服务进行检查,还可以通过ECV 对服务
器的响应作进一步分析,通过分析读取服务器回应中的指定内容来判断服务器上服务的运行情
况。上述检查方法的检查频度(e.g. 10 seconds)与检查响应Timeout 时间( e.g. 5
seconds)都可以根据应用情况进行灵活定制。
对于ECV、EAV,在Bigip 中已经包含了一些常见应用的检查与内容验证的方法,例如
http 的检查、Ldap、SQL Server 等。如果碰到一些应用、Bigip 上没有提供相应的检查
方法,Bigip 还提供了一个扩展的接口,用户只需要编写相应的应用检查脚本或程序并加载
到Bigip 就可实现对该应用的检查或内容验证。
----------------------------------------------------------------------------------
Q: F5 Bigip 支持哪些会话保持方法?
A:
1.简单会话保持
– 根据客户端源IP 地址保持客户会话的技术
2.HTTP Header
– 根据HTTP 包头信息保持会话的技术
3.SSL ID 会话保持
– 根据SSL ID 保持客户/服务器连接的技术
4.HTTP Cookie 会话保持
– 插入模式,改写模式, 被动模式, 散列模式(Cookie Hash)
5.SIP ID 会话保持
6.Cache 设备的专用会话保持
7.i-Mode 移动应用的会话保持技术
8.i-Rules 客户定制的会话保持方法
----------------------------------------------------------------------------------
Q: Lay4-7 层交换机或应用交换机有哪些速度、性能指标比较重要?
A:
1.Session/Second :
– 每秒处理的会话数量,有Lay4 和Lay7 的区别
2.Maximum connection :
– 最多能够保持的连接数量,即最多能够保持多少个并发的会话连接
3.Throughput : 吞吐率 (bps)
– 有Lay4 和Lay7 的区别
4.VIP Maximum Number
支持的虚拟服务器个数)
– 最多同时多少应用可以做负载均衡
----------------------------------------------------------------------------------
Q: F5 Bigip 应用交换机支持的最大连接数是多少?
A: F5 Bigip 应用交换机对客户到服务器之间的每一条连接都要维护一条记录,当连接开始
建立时,Bigip 会根据负载均衡算法将客户的请求分配到一台服务器上。连接建立以后,对这
个连接内的所有会话将不再需要通过负载均衡算法来选择服务器,而是根据系统中原有的连接
表直接进行地址转换及交换。如果连接没有被主动关闭,即使连接处于闲置状态,应用交换机
中的相应的连接表也会保持一段时间,直到Timeout 为止。
F5 Bigip 应用交换机采用的是共享内存与中央CPU 的体系结构,系统支持的最大连接数只与
系统配置的内存数量有关。一般来说:
当系统配置的内存是512M 时,支持的最大连接数是100 万;
当系统配置的内存是1G 时,支持的最大连接数是200 万;
当系统配置的内存是2G 时,支持的最大连接数是400 万;
上述参数适用于Bigip1000、 Bigip 2400、Bigip 5000 三个型号。至于随着Bigip 上连接数
的增加,系统处理会话的速度会不会下降,由于Bigip 对连接表的查询是采用的hash 算法,
查询速度与连接表的数量没有关系。
----------------------------------------------------------------------------------
Q: F5 Bigip 应用交换机每秒会话处理能力是多少?
A: 在应用交换机中Layer4 的每秒会话处理能力与Layer7 的每秒会话处理能力是不一样的。
另外每秒会话处理能力还与数据包的大小有关系。每秒会话处理能力反应了应用交换机对数据
包或会话的处理能力,与系统的负载均衡算法、地址转换能力有关。
Lyaer4 的交换可以通过ASCI 芯片硬件来处理,所以性能会高一些。而Layer7 的会话处理过
程必须通过CPU 进行,更多的依赖于CPU 的处理能力。
在F5 Bigip 产品系列中,Bigip2400 采用了最新的Layer4 ASCI 芯片,所以Layer4 的每秒会
话处理能力最强;而Bigip5000 采用了两个CPU,所以Layer 7 的每秒会话处理能力最强。
F5 Bigip2400 的Layer4 最大会话处理能力是:125000 Layer 4 sessions per second at a data return
file size of 64 bytes。
F5 Bigip5000 的Layer7 最大会话处理能力是:19000 sessions per second。
F5全称: F5-BIG-IP-GTM 全球流量管理器.
是一家叫F5 Networks的公司开发的四~七层交换机,软硬件捆绑.
据说最初用BSD系统,现在是LINUX;硬件是Intel的PC架构,再加周边的网络和专用加速设备.
当然要提提售价, 都是几十万RMB的身价.
这宝贝是用于对流量和内容进行管理分配的设备,也就是负载均衡.
从名字就能看出来:BIG-IP.
外部看来是一个IP,内部可却是几十台应用服务器.表现为一个虚拟的大服务器.
所以我才说: 好大一个IP.
LVS = Linux Virtual Server
是俺们中国人,一个叫章文嵩的博士推创开发出来的,
他的web:http://zh.linuxvirtualserver.org/
IBM网站的资料:集群的可扩展性及其分布式体系结构(4)
博士关于LVS和F5的对比:
关于和F5的差别,很难一句话说明白,都是做负载均衡的设备。
F5虽然也是基于BSD系统修改的(据说最新的基于Linux了),但重要的交换部分,则是通过专门的交换芯片实现的(类似有了专门的图像处理芯片,就可以省去大量的CPU对图像处理的运算),这样他的性能就不会很依赖于主机的操作系统的处理能力。
F5上负载均衡大多是基于NAT/SNAT,也可以实现Proxy,但用的较少,做为一个上市公司,F5自然在产品化程度上做的很好,无论配置管理方便性、灵活性,性能和稳定性上都比较好。
LVS在NAT模式下,和F5的功能基本上是一样的,但毕竟LVS是纯粹的软件,性能是依赖于主机的运算能力的。
而且,LVS是开源的项目,不应该和一个商业产品来比较,人家那是卖钱的,有很多人来维护和开发,而LVS一直是章博士义务来维护开发的,想要更好的功能,就需要有更多的人参与进来才行。
说的相当透彻了.
DNS轮询是做负载均衡最简单有效的实现方法,各方面代价都极低.货好便宜量又足.
缺点就是由于没有检测机制, 不够均衡,容错反应时间长.
国内门户用这个技术的很多,配合squid有很好的效果.
当然,不做负载均衡, 直接从多个ISP拉几根线,分别提供服务是最原始的方法.
CDN = Content Delivery Network,内容分发网络。
细究起来上面的都是cdn的实现方式.
国内开放的服务很少(chinacache),国外却非常流行.
就是提供缓存节点,把目标网络内容的访问转化为临近节点的访问.
响应速度/安全/透明/扩展,特别是中国这种还没解放台湾就南北分裂的网络格局下,更为伟大.
不过也是贵族的服务,建设成本很高.
ADSL + DDNS + CDN 也算是另一个建小站的途径了.
把空间的租用费用投资在流量上, 直接有效. 不过电费和稳定性上不容乐观.
其实CDN不只是做网站服务的, 比如在韩国,多数的CND流量都是被网络游戏占用了.
试想,如果能大范围铺开CDN节点, 那还有必要一个游戏分那么多区,占用那么多服务器么?
结论是还有必要 虽然确实访问连接和响应速度对现在的网络游戏有很大影响,但开发瓶颈更在于计算能力和数据存储访问.
又一个试想, 把CDN和P2P结合, 上网的个人PC只要提供CDN服务, 就可以每月获的xx美金的佣金.由资讯和应用提供商买单.
怎么看这都是个良性发展的产业链, 就像google明年要推出免费手机,让广告商买单一样.
不过唯一不高兴的就应该是ISP们了,现在bt这样的共享都被封杀.
除非这个业务被他们自己垄断,不然也是僵尸的下场.
用户也不是百利无害的, 数据安全和资讯及时有挑战.
GV们也不是看戏的,现在还有网站可以封,写个blog都要100万注册资金;
如果一堆SSL加密的数据四处流窜,神龙无首无尾,怎么屏蔽过滤,怎么防川啊~
回望眼,越看越像网摘,索性就再摘段完整的
F5功能介绍:
1.多链路的负载均衡和冗余
与互联网络相关的关键业务都需要安排和配置多条ISP接入链路以保证网络服务的质量,消除单点故障,减少停机时间。多条ISP接入的方案并不是简单的多条不同的广域网络的路由问题,因为不同的ISP有不同自治域,所以必须考虑到两种情况下如何实现多条链路的负载均衡:
more..
less..
内部的应用系统和网络工作站在访问互联网络的服务和网站时如何能够在多条不同的链路中动态分配和负载均衡,这也被称为OUTBOUND流量的负载均衡。
互联网络的外部用户如何在外部访问内部的网站和应用系统时也能够动态的在多条链路上平衡分配,并在一条链路中断的时候能够智能地自动切换到另外一条链路到达服务器和应用系统,这也被称作为INBOUND流量的负载均衡。
F5 的BIG-IP LC可以智能的解决以上两个问题:
对于OUTBOUND流量,BIG-IP LC接收到流量以后,可以智能的将OUTBOUND流量分配到不同的INTERNET接口,并做源地址的NAT,可以指定某一合法IP地址进行源地址的 NAT,也可以用BIG-IP LC的接口地址自动映射,保证数据包返回时能够正确接收。
对于INBOUND流量,BIG-IP LC分别绑定两个ISP 服务商的公网地址,解析来自两个ISP服务商的DNS解析请求。BIG-IP LC不仅可以根据服务器的健康状况和响应速度回应LDNS相应的IP地址,还可以通过两条链路分别与LDNS建立连接,根据RTT时间判断链路的好坏,并且综合以上两个参数回应LDNS相应的IP地址。
2.防火墙负载均衡
考虑到绝大多数的防火墙只能达到线速的30%吞吐能力,故要使系统达到设计要求的线速处理能力,必须添加多台防火墙,以满足系统要求。然而,防火墙必须要求数据同进同出,否则连接将被拒绝。如何解决防火墙的负载均衡问题,是关系到整个系统的稳定性的关键问题。
F5的防火墙负载均衡方案,能够为用户提供异构防火墙的负载均衡与故障自动排除能力。典型的提高防火墙处理能力的方法是采用“防火墙三明治”的方法,以实现透明设备的持续性。这可满足某些要求客户为成功安全完成交易必须通过同一防火墙的应用程序的要求,也能够维护原来的网络安全隔离的要求。F5标准防火墙解决方案如图所示:
防火墙负载均衡连接示意图
3.服务器负载均衡
对于所有的对外提供服务的服务器,均可以在BIG-IP上配置Virtual Server实现负载均衡,同时BIG-IP可持续检查服务器的健康状态,一旦发现故障服务器,则将其从负载均衡组中摘除。
BIG-IP利用虚拟IP地址(VIP由IP地址和TCP/UDP应用的端口组成,它是一个地址)来为用户的一个或多个目标服务器(称为节点:目标服务器的IP地址和TCP/UDP应用的端口组成,它可以是internet的私网地址)提供服务。因此,它能够为大量的基于TCP/IP的网络应用提供服务器负载均衡服务。根据服务类型不同分别定义服务器群组,可以根据不同服务端口将流量导向到相应的服务器。BIG-IP连续地对目标服务器进行L4到 L7合理性检查,当用户通过VIP请求目标服务器服务时,BIG-IP根椐目标服务器之间性能和网络健康情况,选择性能最佳的服务器响应用户的请求。如果能够充分利用所有的服务器资源,将所有流量均衡的分配到各个服务器,我们就可以有效地避免“不平衡”现象的发生。
利用UIE+iRules可以将TCP/UDP数据包打开,并搜索其中的特征数据,之后根据搜索到的特征数据作相应的规则处理。因此可以根据用户访问内容的不同将流量导向到相应的服务器,例如:根据用户访问请求的URL将流量导向到相应的服务器。
4.系统高可用性
系统高可用性主要可以从以下几个方面考虑:
4.1.设备自身的高可用性:F5 BIG-IP专门优化的体系结构和卓越的处理能力保证99.999%的正常运行时间,在双机冗余模式下工作时可以实现毫秒级切换,保证系统稳定运行,另外还有冗余电源模块可选。在采用双机备份方式时,备机切换时间最快会在200ms之内进行切换。BIG-IP 产品是业界唯一的可以达到毫秒级切换的产品, 而且设计极为合理,所有会话通过Active 的BIG-IP 的同时,会把会话信息通过同步数据线同步到Backup的BIG-IP,保证在Backup BIG-IP内也有所有的用户访问会话信息;另外每台设备中的watchdog芯片通过心跳线监控对方设备的电频,当Active BIG-IP故障时,watchdog会首先发现,并通知Backup BIG-IP接管Shared IP,VIP等,完成切换过程,因为Backup BIG-IP中有事先同步好的会话信息,所以可以保证访问的畅通无阻。
4.2.链路冗余:BIG-IP可以检测每条链路的运行状态和可用性,做到链路和ISP故障的实时检测。一旦出现故障,流量将被透明动态的引导至其它可用链路。通过监控和管理出入数据中心的双向流量,内部和外部用户均可保持网络的全时连接。
4.3.服务器冗余,多台服务器同时提供服务,当某一台服务器故障不能提供服务时,用户的访问不会中断。BIG-IP可以在OSI七层模型中的不同层面上对服务器进行健康检查,实时监测服务器健康状况,如果某台服务器出现故障,BIG-IP确定它无法提供服务后,就会将其在服务队列中清除,保证用户正常的访问应用,确保回应内容的正确性。
5.高度的安全性
BIG-IP采用防火墙的设计原理,是缺省拒绝设备,它可以为任何站点增加额外的安全保护,防御普通网络攻击。可以通过支持命令行的SSH或支持浏览器管理的SSL方便、安全的进行远程管理,提高设备自身的安全性;能够拆除空闲连接防止拒绝服务攻击;能够执行源路由跟踪防止IP欺骗;拒绝没有ACK 缓冲确认的SYN防止SYN攻击;拒绝teartop和land攻击;保护自己和服务器免受ICMP攻击;不运行SMTP、FTP、TELNET或其它易受攻击的后台程序。
BIG-IP的Dynamic Reaping特性可以高效删除各类网络DoS攻击中的空闲连接,这可以保护BIG-IP不会因流量过多而瘫痪。BIG-IP可以随着攻击量的增加而加快连接切断速率,从而提供一种具有极强适应能力、能够防御最大攻击量的解决方案。
BIG-IP的Delay Binding技术可以为部署在BIG-IP后面的服务器提供全面地SYN Flood保护。此时,BIG-IP设备作为安全代理来有效保护整个网络。
BIG-IP可以和其它安全设备配合,构建动态安全防御体系。BIG-IP可以根据用户单位时间内的连接数生成控制访问列表,将该列表加载到其它安全设备上,有效控制攻击流量。
6.SSL加速
在每台BIG-IP上,都具有SSL硬件加速芯片,并且自带100个TPS的License,用户可以不通过单独付费,就可以拥有100个TPS的 SSL 加速功能,节约了用户的投资。在将来系统扩展时,可以简单的通过License升级的方式,获得更高的SSL加速性能。
7.系统管理
BIG-IP提供HTTPS、SSH、Telnet、SNMP等多种管理方式,用户客户端只需操作系统自带的浏览器软件即可,不需安装其它软件。可以通过支持命令行的SSH或支持浏览器管理的SSL方便、安全的进行远程管理。直观易用的Web图形用户界面大服务降低了多归属基础设施的实施成本和日常维护费用。
BIG-IP包含详尽的实时报告和历史纪录报告,可供评测站点流量、相关ISP性能和预计带宽计费周期。管理员可以通过全面地报告功能充分掌握带宽资源的利用状况。
另外,通过F5 的i-Control 开发包,目前国内已有基于i-Control开发的网管软件x-control, 可以定制针对系统服务特点的监控系统,比如服务的流量情况、各种服务连接数、访问情况、节点的健康状况等等,进行可视化显示。
告警方式可以提供syslog、snmp trap、mail等方式。
8.其它
内存扩充能力:F5 BIG-IP 1000以上设备单机最大可扩充到2G内存,此时可支持400万并发回话。
升级能力:F5 所有设备均可通过软件方式升级,在服务有效期内,升级软件包由F5公司提供。F5 NETWORKS已经发布其系统的最新版本BIG-IP V9.0,主要有以下特性:虚拟 IPV4 / IPV6 应用、加速Web应用高达3倍、减少66%甚至更多的基础架构成本、确保高优先级应用的性能、确保更高级别的可用性、大幅提高网络和应用安全性、强大的性能,简单的管理方式、无以匹敌的自适应能力和延展能力和突破的性能表现力。其强大的HTTP压缩功能可以将用户下载时间缩短50%,节省80%的带宽。
IP地址过滤和带宽控制:BIG-IP可以根据访问控制列表对数据包进行过滤,并且针对某一关键应用进行带宽控制,确保关键应用的稳定运行。
配置管理及系统报告:F5 BIG-IP提供WEB 界面配置方式和命令行方式进行配置管理,并在其中提供了丰富的系统报告,更可通过i-Control自行开发复杂的配置及报告生成。
1.什么是会话保持?
在大多数电子商务的应用系统或者需要进行用户身份认证的在线系统中,一个客户与服务器经常经过好几次的交互过程才能完成一笔交易或者是一个请求的完成。由于这几次交互过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一次交互过程的处理结果,或者上几步的交互过程结果,服务器进行下一步操作时需要这就要求所有这些相关的交互过程都由一台服务器完成,而不能被负载均衡器分散到不同的服务器上。
而这一系列的相关的交互过程可能是由客户到服务器的一个连接的多次会话完成,也可能是在客户与服务器之间的多个不同连接里的多次会话完成。不同连接的多次会话,最典型的例子就是基于http的访问,一个客户完成一笔交易可能需多次点击,而一个新的点击产生的请求,可能会重用上一次点击建立起来的连接,也可能是一个新建的连接。
会话保持就是指在负载均衡器上有这么一种机制,可以识别做客户与服务器之间交互过程的关连性,在作负载均衡的同时,还保证一系列相关连的访问请求会保持分配到一台服务器上。
2. F5支持什么样的会话保持方法?
F5 BigIP支持多种的会话保持方法,其中包括:简单会话保持(源地址会话保持)、HTTP Header的会话保持,基于SSL Session ID的会话保持,I-Rules会话保持以及基于 HTTP Cookie的会话保持,此外还有基于SIP ID以及Cache设备的会话保持等,但常用的是简单会话保持,HTTP Header的会话保持以及 HTTP Cookie会话保持以及基于I-Rules的会话保持。
2.1 简单会话保持
简单会话保持也被称为基于源地址的会话保持,是指负载均衡器在作负载均衡时是根据访问请求的源地址作为判断关连会话的依据。对来自同一IP地址的所有访问请求在作负载均时都会被保持到一台服务器上去。在BIGIP设备上可以为“同一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插入模式下,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。
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的会话保持实际应用范围大大缩小。







