解决方案
产品搜索
成功案例
WiseGrid慧敏应用交付网关 多链路+服务器负载均衡解决方案
第一章 前言
随着企业开始更多地使用互联网来交付其关键业务应用,只保持一条到公共网络的连接链路则意味着频繁的单点故障和脆弱的网络安全性。WiseGrid慧敏链路负载均衡可以无缝地监控多条WAN连接的可用性与性能,以智能地管理到某一站点的双向流量,从而提供出色的容错性和优化的互联网访问,保证关键业务的稳定运行。
第二章 用户需求
2.1 系统总体目标
系统建设的总体目标为:
1.高性能:采用丰富的负载均衡算法对多链路、服务器进行负载均衡,使流量得以合理分配,从而保证系统的整体性能得以大幅度提升。
2.高可靠性:保证系统运行稳定,单一设备故障不能影响系统的正常运行。
3.高安全性:构建安全防预体系,防御网络攻击。
4.良好的系统扩充能力,随着访问量的增加能够满足系统不断扩充的需求。
5.系统具有良好的可管理性。
6.丰富的会话保持策略能够满足灵活多样的动态调整。
7.通过中文的管理平台,方便直观地管理与监视应用的状态及健康状况。
2.2 系统功能需求
作为服务系统的核心,负载均衡系统必须满足以下业务需求:
1.冗余的系统实施方案,任何单点故障不影响系统的正常运营
在接入系统的设计中,对于所有的设备,均采用冗余设计和实施,充分考虑到各种设备和线路的中断或故障情况,在发生故障时系统能迅速切换,保证系统的正常运营。
2.链路负载均衡和冗余:要求在正常情况下将用户对外的访问流量和外部用户对内部服务器的访问流量负载均衡到多条链路上,在某链路故障时自动将其流量切换到另外的链路,自动的透明容错,当链路恢复时自动将其加入到负载均衡中来。
3.服务器负载均衡:采用丰富的负载均衡算法对多台服务器进行负载均衡,使流量得以合理分配,并且需要处理因服务器负载均衡所带来的会话保持问题。某台服务器发生故障时由负载均衡产品自动检查到,并且将其从服务器群组中排除,透明的容错,从而保证服务器的整体性能得以大幅度提升。
4.设备自身的高可用性
设备自身需要具备高可用性,能够在双机冗余模式下工作,冗余切换迅速。
5.升级能力
负载均衡产品应当具有良好的系统和软件升级能力。
6.SSL加速
集中处理SSL加解密的工作,减轻服务器处理SSL的负担,搭建高性能的电子商务平台。
7. TCP连接复用
可以为多个客户端连接的应用层请求所利用,高效率降低后端真实服务器上的TCP连接数量,同时避免TCP连接频繁拆建、慢启动等繁琐的过程。
8. TCP单边加速
WiseGrid慧敏应用交付网关单边加速引擎共提供7种智能的拥塞管理算法,以适应复杂的广域网络环境,包括:BIC、Cubic、Vegas、Hybla、HTCP、Veno和Westwood算法。
9. HTTP数据压缩
WiseGrid慧敏应用交付网关支持与客户端之间的Http数据响应以压缩的形式传输,从而减少数据传输时间,提升应用体验。WiseGrid提供标准的压缩算法Deflate或Gzip,通常情况下至少可以减少30%-80%的数据流量。
10. 智能缓存
WiseGrid 慧敏系列应用交付网关采用基于Http对象的内容缓存功能,利用策略规则将允许缓存的Http对象存放在系统内存空间或硬盘空间,从而提高客户访问速度。
2.3 系统性能需求
系统的整体响应时间、整体系统性能和故障切换能力应达到或高于以下要求:
1.能够在一定的访问压力下提供正常服务;
2.单台设备出现故障后,冗余设备能达到毫秒级切换;
3.系统稳定性强,系统响应时间快。
2.4 系统安全性需求
1.负载均衡产品本身具有良好的系统安全性,不存在安全漏洞;
2.产品提供安全的访问管理环境;
3.具有一定的安全防护能力,协助防火墙和其他IDS设备构建动态防御体系,防御网络常见攻击,提高系统整体的安全防护能力。
2.5 可管理性需求
在可管理性方面,需要具备以下几点:
1.机架式机箱;
2.支持中文管理界面;
3.提供有效的关于用户、流量等的报表、统计工具;
4.提供有效的备份恢复手段;
5.提供有效的故障报警手段;
6.提供有效的系统监控手段并为通用的监控工具提供接口;
7.系统的配置管理方便,系统报告的可用性强,能提供完善的访问统计和流量管理;
8.能够提供GUI的良好的维护界面和日常维护方案;
9.加密通讯,保证安全的设备管理。
第三章 需求分析
3.1多链路负载均衡和冗余
与互联网络相关的关键业务都需要安排和配置多条ISP接入链路以保证网络服务的质量,消除单点故障,减少停机时间。多条ISP接入的方案并不是简单的多条不同的广域网络的路由问题,因为不同的ISP有不同自治域,所以必须考虑到两种情况下如何实现多条链路的负载均衡:
内部的应用系统和网络工作站在访问互联网络的服务和网站时如何能够在多条不同的链路中动态分配和负载均衡,这也被称为OUTBOUND流量的负载均衡。
互联网络的外部用户如何在外部访问内部的网站和应用系统时也能够动态的在多条链路上平衡分配,并在一条链路中断的时候能够智能地自动切换到另外一条链路到达服务器和应用系统,这也被称作为INBOUND流量的负载均衡。
WiseGrid慧敏链路负载均衡可以智能的解决以上两个问题:
对于OUTBOUND流量,WiseGrid慧敏链路负载均衡接收到流量以后,可以智能的将OUTBOUND流量分配到不同的INTERNET接口,并做源地址的NAT,可以指定某一合法IP地址进行源地址的NAT,也可以用WiseGrid慧敏链路负载均衡的接口地址自动映射,保证数据包返回时能够正确接收。
对于INBOUND流量,WiseGrid慧敏链路负载均衡分别绑定两个ISP 服务商的公网地址,解析来自两个ISP服务商的DNS解析请求。WiseGrid慧敏链路负载均衡不仅可以根据服务器的健康状况和响应速度回应LDNS相应的IP地址,还可以通过两条链路分别与LDNS建立连接,根据RTT时间判断链路的好坏,并且综合以上两个参数回应LDNS相应的IP地址。
3.2 服务器负载均衡与冗余
3.2.1 应用系统的稳定性
实际业务中,需要7*24的服务,而其中的应用程序由开发人员开发完成之后,都会进行一些功能和性能的测试,这可以保证在小流量和常规操作的情况下没有问题。但在实际生产中,总会碰到一些bug会引起宕机,另一点就是服务器可能出现硬件故障导致应用程序不能使用。这些对外都显示为应用程序欠缺稳定性。
3.2.2 服务器负载不均衡,影响资产的使用效率
很多用户为了避免服务器故障引起的宕机,都配置服务器的热备机器或冷备机器,这样可以在服务器出现问题的时候在一定的时间内,把整个业务运行到备份的机器上,可以恢复业务。但在这种情况下,平时备份的机器几乎都是闲置,无法充分利用该服务器的资源,从而影响资产的使用效率。
3.2.3 SSL应用增加的服务器的压力和运行成本
目前,所有的网上银行在交易部分,均采用SSL连接方式,实现端到端的数据加密传输。在SSL处理过程中,所有的传输内容均采用加密算法处理。其中最重要的两个部分为SSL握手时交换密钥的非对称加密和数据传输时的对称加密。
在现有的系统中,通常非对称加密采用1024位的密钥进行加解密,因此对服务器的CPU占用率非常高。在一台新型号的双Xeon CPU服务器上,大约每秒钟400次非对称加解密就能导致CPU占用率100%。同时对称加密通常采用128位,最高256位加密的加解密也会导致服务器CPU占用率居高不下,同样的服务器SSL流量大约能达到150Mbps。因此当我们在部署SSL应用时,必须考虑到以下参数:
*TPS:Transection Per Second,也就是每秒钟完成的非对称加解密次数
*Bulk:SSL对称加解密的吞吐能力,通常以Mbps来进行衡量。
当SSL的客户端压力超过400TPS时,单台服务器就很难处理请求了。因此,必须采用SSL加速设备来进行处理。
3.2.4 WEB 服务器访问速度越来越慢
WEB服务同时用户量也越来越大,各个业务实现需要的技术也越来越复杂,导致这两部分的压力也越来越大,而传统模式中更换高端服务器也是一个很难快速实现的事情。
慧敏服务器负载均衡工作在反向代理的模式下(Reverse Proxy),实现在客户端与Web服务器之间的任务截断,同时在应用交付网关上实现基于应用智能的流量管理,应用性能提升,应用可靠性、安全性保障,应用行为的控制和云计算环境下计算资源的弹性调度等功能。虽然经历这些复杂的数据处理过程,但其性能及吞吐量依然达到网络设备线速高吞吐能力。
慧敏服务器负载均衡是旨在适应新型的数据中心的产品,它在简化数据中心整体架构的同时提供了全面有效的应用交付功能,避免了多产品的复杂集成和较高投入。真正采用统一平台的方法,为客户提供完整并且性价比极佳的应用交付解决方案。
第四章 方案设计
4.1 网络拓扑图
链路+服务器负载均衡网络拓扑图
4.2 方案设计描述
4.2.1 方案设计总体描述
本方案设计采用信诺瑞得公司提供的WiseGrid慧敏应用交付网关,来实现网络中两条链路Inbound(从Internet发起对内部服务器的访问)和Outbound(内部客户端发起对Internet的访问)方向负载均衡,同时实现服务器负载均衡功能。;
整个系统采用全冗余网络连接方式设计,来保证系统的高可用性和高可靠性。方案具体实现方式如下:
1、对于Outbound流量,WiseGrid慧敏链路负载均衡接收到流量以后,根据负载均衡算法,例如地理拓扑、轮询、顺序优先、最少连接、最少带宽、最少延迟等算法,智能的将访问不同运营商的请求通过慧敏进行转发,分配到ISP1或者ISP2的Outbound接口,并做源地址的NAT,(可以指定某一合法IP地址进行源地址的NAT,也可以用WiseGrid慧敏链路负载均衡的接口地址自动映射),保证数据包返回时能够正确接收。同时慧敏采用健康检查功能,可实时针对各链路运行情况进行监控,实时做到多链路自动冗余备份。
2.、对于Inbound流量,WiseGrid慧敏链路负载均衡分别绑定两个ISP 服务商的公网地址,解析来自两个ISP服务商的DNS解析请求。ISP1的用户访问通过ISP1的线路访问内部,其他的用户访问通过ISP2的线路来访问内部。WiseGrid慧敏链路负载均衡不仅可以根据服务器的健康状况和响应速度回应LDNS相应的IP地址,还可以通过两条链路分别与LDNS建立连接,根据RTT时间判断链路的好坏,并且综合以上两个参数回应LDNS相应的IP地址。
3.、对于服务器负载均衡流量,首先通过慧敏配置相应的路由策略,打通慧敏到达到各应用服务器路由连通性。按照用户要求,针对不同的应用服务器进行应用分类部署,慧敏在实现四至七层应用负载均衡的同时,还可以为应用服务器提供网络防火墙、Web应用安全防护、智能压缩、智能缓存、连接复用等业务优化功能。另外,为了进一步提高业务安全性,慧敏还支持国密算法,可有效的提高业务安全性,业务合规性。
4.2.2 多链路冗余
两台WiseGrid慧敏应用交付网关以Active-Standby方式实现网络中两条链路的负载均衡及冗余。WiseGrid慧敏应用交付网关可以根据相应的链路负载均衡算法来实现快速访问的智能引导,比如将访问电信的用户引导至电信链路,访问网通的用户引导至网通链路,解决了不同ISP之间的互连互通问题,保证了最好的访问速度和最高的访问效率。同时,WiseGrid慧敏应用交付网关的健康检查机制实现对链路健康状况的实时监控,当有链路出现故障时,WiseGrid慧敏应用交付网关会屏蔽故障链路,并自动将流量切向其它正常工作的备份链路,实现了链路的高可用性。
4.2.3 设备自身冗余性
WiseGrid慧敏链路负载均衡设备以Active-Standby的冗余方式连接,处于Standby的设备采用“心跳线”监测Active的设备的状态,当检测出设备故障时,两台设备就会产生ms级切换,Standby设备会切换为Active,为用户提供服务,保证了系统的高可用性。
第五章 关键技术介绍
5.1 WiseGrid慧敏链路负载均衡工作原理
慧敏应用交付网关提供的链路负载均衡技术负责实现对出向流量的管理。网络部署的前提是要求内网发起的所有Internet访问流量必须流经应用交付网关设备,因此慧敏设备通常直接与Internet接入路由器串接在一起。
而在链路负载均衡功能中,慧敏应用交付网关利用了几项关键性的技术,包括:链路健康状态检测、链路负载均衡算法和基于选路的SNAT地址翻译等。
下面我们通过出向数据包的处理流程来描述链路负载均衡的工作原理。例如,当出向流量数据到达慧敏设备时,它会基于链路的健康状况,同时根据选路策略(即预设的链路负载均衡算法)决定将流量负载均衡调度到哪一条链路。链路决策完成之后对数据包做相应的SNAT处理,数据包的源地址会自动转换成相应ISP提供的公网地址后转发至Internet,这样可以保证响应数据包按照期望的链路返回到慧敏设备。而慧敏系统中存留此TCP连接的SNAT对应关系,通过查表再将返回数据包的目的地址恢复成内部发起端的内网IP,然后转发给内部的用户终端或服务器。
参见出向数据包处理流程图:
(1)内网客户端发起对Internet目标资源A的访问;
(2) 慧敏根据就近性智能选择最优链路,将数据发往Internet,同时使用对应链路互联网IP做智能SNAT;
(3)Internet目标A接收到请求数据包,并给予响应;
(4)响应数据到达慧敏设备,将目标地址恢复为内网终端IP,然后转发至内网客户端;
链路健康状态检测
慧敏链路负载均衡的实现基础基于链路的健康状态,它通过全路径健康检查方法检测每一条链路的健康状况,一旦发现其中一条链路故障,会立即将所有用户流量定向至其它可用链路,从而实现Internet连接的高可用性。
全路径健康检查方法是为了确保ISP链路的畅通,WiseGrid设备通过ICMP协议,检查链路对端路由器或更远端的路由器IP是否可达,从而确保整个路径的畅通。
LLB智能选路算法
慧敏链路负载均衡设备能够可以根据用户访问的目的IP及各条链路的健康状态来综合考虑链路选择策略,给出内部用户访问Internet的最佳路径,以保证用户能够得到最快和最高效的服务和响应。主要的选路算法包括:轮询、加权轮询、拓扑信息、顺序优先、最小连接、最小带宽、最小延迟等算法。
*轮询算法(Round Robin)
将按照链路资源池成员的配置顺序,依次将出流量转发至相应健康的链路上。
*加权轮询算法(Weight Round Robin)
将按照链路资源池成员的权重和顺序,等比例的将出流量转发至相应健康的链路上。
*拓扑信息算法(Topology)
拓扑信息算法是一种静态就近性算法,它依据静态IP地址表,确认访问目标所在的地理位置,然后选择最佳链路做为路由下一跳提供服务。这种IP地址分类的原则主要依据运营商的地址划分为基础,实现运营商内部就近选路,避免跨运营商路由。
慧敏应用交付网关内置一套完整的静态IP地址表,每一条细分路由都对应相应的运营商。如下表所示,标识部分电信、网通和教育网的地址划分。当出流量的目标IP地址属于某个运营商,通过检索地址库数据确定对应运营商,然后调度数据选择运营商链路出去。
* 顺序优先算法(Global Availability)
将按照链路资源池成员的配置顺序,并结合链路的健康状态进行决策。如果顺序排在第一的链路健康状态正常,那么此时所有流量均转发至此链路,直至这个链路的健康状态不正常。此时,系统将查看下一个链路的健康状态,如果正常,那么就流量转发至第二条链路,否则查看接下来的链路,依次类推。任何时间内,如果顺序排在前面的某个链路健康状态恢复正常,流量将切换回此链路上。该算法永远选择排位最前的那个健康成员,这个算法常用于链路备份解决方案。
*最小连接算法
将按照链路资源池成员现有的连接总量进行比较,选择当前连接数最小的健康链路作为选路结果。
*最小带宽算法
将按照链路资源池成员现有的带宽利用率进行比较,选择当前带宽利用率最小的健康链路作为选路结果。
*最小延迟算法
系统通过不同链路检测到达目标地址的链路延迟时间(RTT),选择延迟最小的健康链路作为选路结果。
入向流量智能选路
在慧敏多链路负载均衡解决方案中,通过GSLB全局负载均衡(GSLB)技术负责实现对入向流量(Inbound)的管理,其核心原理是通过智能的DNS解析技术将外部访问请求引导至最佳链路通道,帮助最终用户实现就近性访问,以获得最佳的访问体验。
慧敏应用交付网关的全局负载均衡技术将设备做为智能的DNS解析服务器,通过分析来自不同LDNS(Local DNS)的DNS请求,依据源IP地址判断访问者所在的位置(哪个运营商,哪个地方),然后基于判断结果,灵活解析不同的应用服务IP,实现对入向流量在多条链路上的负载均衡。
5.2 WiseGrid慧敏应用服务器负载均衡工作原理
负载均衡算法就是负载调度的决策依据,它可以使慧敏应用交付网关有效地管理应用流量。当慧敏设备部署在真实应用服务器群之前时,负载均衡算法指引客户端请求选择一台最合适的真实服务器来进行处理,决策方法将确保实现最佳的流量分配。
慧敏产品提供的负载均衡算法可以根据TCP层信息(TCP连接数)或Http/Https 请求中的包头信息或正文信息(例如 URL、应用数据类型或 Cookie)将应用流量分类,结合服务器健康状况检查以及服务器处理性能权重确保将客户端请求送往适当的服务器,从而提高应用可用性。
5.2.2 智能内容交换
慧敏应用交付网关除了提供传统的负载均衡算法之外,针对Web应用还可以基于Http/Https内容信息提供智能的流量调度管理。这种智能的负载调度根据策略调度规则进行内容交换。
实际上慧敏应用交付网关具备的7层内容交换能力,比传统的负载均衡算法更加灵活与智能。基于内容的智能交换,在深度识别Http/Https数据内容的基础之上,利用慧敏应用交付网关提供的SmartRule编程接口,使得管理者可以根据应用的行为特征编制转发策略规则,实现基于规则定制的流量调度管控能力。
另外,SmartRule策略规则不仅可以控制内容转发,甚至还可以扩展到执行请求过滤、请求改写、响应头改写、响应内容改写等操作,让数据中心真正具备针对应用行为和内容的智能管控能力。
5.2.3 服务器健康检查
应用交付网关是应用数据交互的载体,它需要解决系统可用性问题,而后台真实的应用服务器是真正处理应用业务请求并响应客户请求的宿主机,因此实时监控应用服务器的健康状态,避免将请求转发到不可用的服务器是保障整个系统可用性的关键。
慧敏应用交付网关的高级健康检查功能,可以准确的做到应用层的健康检查。而服务器健康检查的结果是负载均衡决策的依据,健康状态为不可用的服务器将不再参与负载分发决策。慧敏应用交付网关支持丰富的服务器健康检测方法,涵盖从基础网络检查到应用层检查方法,以及利用自定义Perl脚本的健康检查程序。
*网络层健康检查方法是利用Ping(ICMP)的手段来侦探目标IP是否,这种健康检测方法由于只是验证网络的可用性,因此常常用于网络设备或链路可用性的健康检查场景,并不适合做应用的健康检测。
*四层(TCP层)健康检查方法可以提供应用最基本的状态监视,以检验应用是可访问的。TCP 检查是通过向应用的TCP监听端口发送 TCP SYN 请求,以接收到SYN ACK回应消息做为健康的依据。
*七层(应用层)健康检查方法,可以检测应用协议的工作状态。例如可以根据HTTP或HTTPS请求的响应代码(200 OK)判断Web服务的健康状态,通过查看发送SMTP Hello信息的响应获得SMTP服务的健康状态。如果发现应用层故障,用户即被透明地复位到可用的服务器上。
另外对于HTTP或HTTPS应用,还可以自定义检测Http响应包的内容,通过检查返回内容中是否含有用户定义的字符串来判断应用的健康状态,这种检查方法的粒度更细,确保应用处于严格的健康状态之下。
*典型应用健康检查方法,提供SMTP/POP3/IMAP/DNS/FTP/Radius/LDAP/Mysql等典型的应用健康检查方法。
自定义脚本的健康检查方法允许用户利用Perl script,完全依据应用系统的特性定义发送和接收数据包的行为与内容。根据脚本程序执行的结果来确认应用的健康状态。
5.2.4 会话保持
慧敏应用交付网关不仅可以为关键业务系统提供高可用性和智能负载均衡,与此同时,还可以满足用户固定访问特定服务器的要求,以支持用户会话持续建立到某台固定服务器上。会话保持意味着一旦一个真实服务器被选择处理某客户端请求,那么后续的从该用户发出的请求都被转发到同一服务器上。“会话保持”功能常用于需要检查会话状态的一致性的特定应用,例如:ERP系统、电子商务系统等。
主要支持的“会话保持”的方法包括:
*基于源IP进行会话保持
基于源IP会话保持,慧敏应用交付网关会对此客户端IP与虚拟服务器之间的连接创建一个计数器,只要持续性计数器尚未到时,它们之间新建的连接就会持续转发到同一台服务器。
*基于SSL会话ID进行会话保持
基于SSL会话ID的会话保持主要应用于SSL应用(例如https),在这种模式下,判断持续性请求的依据是SSL 的Session ID,具有相同会话ID的请求会在会话保持有效期内,转发到同一台服务器。另外还可以扩展为源IP地址+SSLID组合信息作为会话一致性依据。
*基于RDP cookie进行会话保持:
该方式仅适用RDP-Bridge类型虚拟服务器,将基于数据请求内容中的RDPcookie作为会话一致性依据。RDP-Bridge类型虚拟服务器会话保持还可以扩展为源IP地址+RDPcookie组合信息作为会话一致性依据。
*基于Cookie进行会话保持
基于Cookie的会话保持适用于Http/Https协议类型的7层虚拟服务器。该方法利用Http数据包携带的Cookie信息进行持续性的判断,并把后续持续性请求转发到同一台服务器上。
使用Cookie进行会话保持提供多种方式,一种是由慧敏应用交付系统在原始http响应中插入用于标识会话一致性保持的Cookie信息,这种模式称之为Cookie Insert。而另一种是系统根据Http业务数据中自有的cookie信息作为会话一致性判断的条件,这种模式称之为Cookie Passive。
*基于Http头信息进行会话保持
基于Http Header信息进行会话保持方法适用于Http/Https协议类型的7层虚拟服务器。虚拟服务器基于Http数据请求头信息中某固定header字段的赋值作为会话一致性依据。通过识别这个header字段的值,具有相同赋值的请求会话保持到相同真实服务器。
*基于URL进行会话保持
基于URL进行会话保持方法适用于Http/Https协议类型的7层虚拟服务器。虚拟服务器基于Http请求的全部URL内容或部分内容作为会话一致性依据。
*基于Http查询请求的查询参数进行会话保持
基于请求查询参数进行会话保持方法适用于Http/Https协议类型的7层虚拟服务器。虚拟服务器根据URL查询参数作为会话保持的标识。通过指定具体的Query String 参数,将参数值相同的请求会话保持到相同服务器。
会话保持技术中,还有一个重要的控制参数:会话保持时间。这个时间就是相同用户前后两次持续性请求之间的间隔时间,如果相同用户前后两次持续性请求的时间间隔超过会话保持时间,会话保持机制将忽略其会话的关联性,这个会话请求会依据负载均衡算法进行决策调度。
5.2.5 会话保持组
会话保持技术的应用通常适用于单独的虚拟服务器,但是还有一种特殊的会话保持技术可以跨越多个虚拟服务器之间提供会话保持,这就是会话保持组的概念。WiseGrid慧敏系列应用交付网关提供的会话保持组技术是会话保持机制的扩展,当一个复杂的应用系统场景,由多个虚拟服务器提供服务,例如一个Http页面嵌套了一个Https的界面,应用系统要求能够让某个客户端的所有特定请求(无论是Http还是Https)都能保持在一个相同的真实服务器上处理,我们就需要做不同Vserver之间的会话保持。不过会话保持组技术实施的前提是不同虚拟服务器所绑定的真实服务器必须是相同的,只是真实服务器上均运行着不同的服务(例如http和https)
5.2.6 应用加速
我们在使用负载均衡设备的过程中不难发现,90%的应用场景都是管理调度Web应用,但是Http协议天生的性能缺陷使得仅仅利用传统负载均衡设备难以解决应用性能的问题。对于 HTTP/HTTPS 应用,慧敏应用交付网关其实扮演着反向代理的角色,它终结来自客户端的连接,并替代客户端与真实服务器连接进行应用数据交互。正是这种代理机制,慧敏应用交付网关对Web应用进行性能优化成为可能。
TCP连接复用
TCP连接复用功能正是在反向代理模式下,慧敏应用交付网关通过Keep-alive代理-保持服务器端的持久连接,可以为多个客户端连接的应用层请求所利用,高效率降低后端真实服务器上的TCP连接数量,同时避免TCP连接频繁拆建、慢启动等繁琐的过程。这样服务器可以将更多的资源用在对于Http请求的响应上,而不是去浪费在TCP连接的建立和拆除的管理上。慧敏应用交付网关提供这种连接管理技术令Web服务器真正实现TCP的有效卸载,从而提升服务器对应用层数据的处理性能。在实际的环境下,慧敏应用交付网关可以实现从50:1甚至到1000:1的有效TCP复用率。
如上图所示,时间阶段A,假设某客户端A的TCP连接请求SYN发送至慧敏设备,它们之间经过三次握手协商后,客户端开始发送应用层消息(Http Request),此时服务器端TCP连接开始启动(假设当时服务器端没有可以被复用的空闲连接存在),慧敏设备将与服务器新建TCP连接并通过KeepAlive机制持久保持连接,为转发客户端的应用层请求提供TCP连接服务。随后慧敏设备将服务器响应的数据再传递给客户端A,当慧敏通过响应内容长度确定响应数据传输完毕后,主动向客户端发送FIN信号,此时客户端TCP连接会关闭,而服务器端连接则继续保持。此时如果另外一个客户端B的TCP连接请求同时发送至慧敏,客户端连接经过三次握手协商后建立起来,慧敏设备则通过查找后端连接复用表,在可用的后端连接池中发现刚刚为客户端A服务的TCP连接正处于可用的空闲状态,因此客户端B的应用层请求直接通过此连接转发至Web服务器,而慧敏设备与服务器之间无须再建立新的TCP连接。
与此同时,慧敏产品对HTTP交易是深度感知的,通过分析和了解HTTP请求和响应的头部信息,当客户端请求到达应用交付网关时,慧敏会从TCP空闲连接池中选择一个TCP连接,当这个HTTP交易结束后,它会将这个TCP连接标记为可重用状态,但并不关闭该连接。
TCP单边加速
在典型的广域网环境中,一定存在丢包、延迟、抖动等限制,导致TCP连接的吞吐效率低下,数据传输耗时太长,应用响应缓慢甚至无法使用,而且常常因为延迟较大而无法有效地利用带宽,造成带宽的闲置和浪费。这完全是因为传统TCP协议导致的结果,因此针对传统TCP 传输协议进行优化,提高应用数据在广域网上的传输效率,突破TCP 的技术瓶颈,成为应用性能改善的关键任务之一。
TCP加速技术中通常分为“双边加速”和“单边加速”,其显著区别在于:
*“TCP双边加速”产品需要在TCP连接的两端部署硬件设备或者安装软件,TCP加速的行为基本上需要双边设备协同完成,设备之间通常使用了与TCP不兼容的私有协议,破坏了网络透明性。而且,这种加速方法并不适合互联网应用。
* “TCP单边加速”无需在客户端部署任何硬件设备或者安装软件,通过智能的流控算法,保持兼容传统的TCP流控机制,但可以提升数据的网络传输效率,达到TCP加速的效果。
慧敏应用交付网关作为服务器端部署的设备,更适于提供智能学习和自适应网络的TCP单边加速技术,帮助应用系统提升性能。该加速引擎采用智能流控算法,改善因网络丢包和超时所引起的TCP低效率,优化广域网络数据传输缓慢的问题,而且它与所有传统TCP协议栈兼容,不对TCP/IP头部字段进行任何修改,无需在客户端部署任何硬件设备或者安装软件。
慧敏应用交付网关单边TCP加速引擎,改善的是传统的TCP拥塞控制机制,这个机制有四个阶段:慢启动(slow start)、拥塞避免(congestion avoidance)、快速重传(fast retransmit)和快速恢复(fast recovery)。在网络质量稍差的情况下,这种机制会产生令人难以忍受的性能问题。例如进入拥塞避免阶段,拥塞窗口增长速度过慢;超时后会重新开始慢启动阶段;丢包后的恢复过程较长等等。使用TCP单边加速技术之后,WiseGrid能够提升对网络状况的识别和判断能力并自适应网络变化。
首先,它可以更加准确的判断拥塞的发生,并合理掌控流控机制,为数据传输提供更加合理的传输路径,避免因传统机制不合理而引起误判或判断滞后,而令网络的频繁拥堵。
其次,它可以利用全新的算法,敏捷的洞察网络状态的实时变化,提前预测出网络拥塞发生的可能,在网络上真正发生丢包行为之前进行干预,提前进行拥塞避免。虽然暂时降低数据传输速率,但能减少因拥塞而产生大量数据包的丢失后重传,数据传输效率更高。
另外,由于超时或丢包而导致拥塞发生之后,WiseGrd在缓解拥塞的同时,尽可能收敛整个机制各个过程的时间,例如快速提高拥塞避免后窗口尺寸的恢复,避免过多的等待,提高带宽利用率。
最后,TCP单边加速引擎在提升带宽利用率的同时,还兼顾链路延迟RTT的友好性,智能实现高速率(High Speed)和RTT的之间的公平性,从而真正令应用数据更为高效的通过网络传输环节。
慧敏应用交付网关单边加速引擎共提供7种智能的拥塞管理算法,以适应复杂的广域网络环境,包括:BIC、Cubic、Vegas、Hybla、HTCP、Veno和Westwood算法。
Http数据压缩
慧敏应用交付网关支持与客户端之间的Http数据响应以压缩的形式传输,从而减少数据传输时间,提升应用体验。WiseGrid提供标准的压缩算法Deflate或Gzip,通常情况下至少可以减少30%-80%的数据流量。
慧敏设备是按照Http对象类型定义压缩引擎的,缺省情况下针对HTML、SHTML、DHTML、JHTML、PHTML、Javascript、J2EE、JSP、CSS样式表单和XML 等文本类对象实施压缩处理,包括doc、xls、ppt等微软Office文档,而忽略那些压缩率不高的对象,例如图片、Flash、视频等。
同时,慧敏设备可以智能感知客户端浏览器是否支持压缩,如果浏览器发出不支持压缩的请求,那么响应则以明文的形式给出。
智能内容缓存
慧敏系列应用交付网关支持基于Http静态对象的内容缓存功能,从而提高系统响应速度,降低后台服务器对于高频度访问对象的处理消耗。
实际场景下,Web应用系统中存在大量重复访问的静态内容。慧敏应用交付网关提供的内容缓存功能,可以依据内容缓存策略规则实现Http对象的智能缓存。通过缓存策略规则可以基于每一个虚拟应用来定义哪些类型的对象可以缓存、缓存时间、缓存对象的数量限制、单个缓存对象的容量和整体缓冲区的容量。同时,根据可能缓存对象的数量和存储容量评估,决定缓存对象存放在慧敏系统的内存空间还是硬盘空间。智能缓存功能兼容HTTP 1.0 和HTTP 1.1协议,缓存内容可以自动或手动清除;
启用智能内容缓存功能,当用户的HTTP访问请求发送到应用交付网关时,如果Cache中的内容能够匹配用户的访问请求则直接由慧敏来响应用户的访问,从而避免了对后台服务器的负载压力,在减小了后台服务器负载的同时,提高了对用户的响应速度和整体网站的处理能力。
SSL加速
随着诸如网购、网银、证券、网上办公、电子商务等类型的应用在人们的日常生活当中日益普及,这些应用的重要性也越来越高,尤其对这类应用的数据安全性要求格外严格,通常情况下,SSL技术已经广泛应用到这些互联网应用之中,通过SSL技术的安全保障机制,提升了应用的认证安全和数据安全。
但是SSL技术使数据安全性得到保障的同时,对应用服务器的性能也提出了更高的要求,由于SSL的加解密过程是CPU密集型任务,需要消耗的大量的服务器性能,从而影响了这类应用的性能体验。为了更好的解决SSL应用性能瓶颈问题,慧敏应用交付网关提供SSL加速能力,在提升用户访问体验的同时,还有效避免服务器硬件的投资。
SSL加速的核心解决思路,首先是将耗费服务器资源的SSL处理任务从后台服务器迁移到 慧敏应用交付网关设备之上,其次要保障应用交付网关对SSL数据的处理性能。慧敏应用交付网关可以内置专业的SSL加速卡,其拥有超强的SSL协商和加解密能力,能够满足高并发访问应用的需求。通过借助慧敏应用交付网关在SSL业务处理上的优势,客户端与应用交付网关之间实现SSL化的应用数据交互,而后台服务器与应用交付网关之间采用明文处理,将原本在Web服务器上处理的SS任务全部卸载到应用交付网关上。
5.2.7 应用安全防护
应用交付过程中的安全保障一直数据中心或云计算中心最关注的领域,在专用安全防护产品的基础之上,慧敏应用交付网关提供的安全防护机制还能够帮助应用系统提升安全防护等级。慧敏产品安全防护技术具有如下特点:
*反向代理模式,屏蔽对服务器的直接攻击;
*提供全面的DDos防护能力
*提供Http Flood防护能力
*提供基于Http协议的协议清洗能力
*利用SmartRule编程脚本,支持自定义Web应用安全过滤策略
*提供针对Web应用防火墙功能,遵循OWASP十大WEB威胁防护守则
*利用SSL增强数据传输的安全性
隔离保护
由于慧敏应用交付网关缺省工作在反向代理模式,因此黑客无法直接与服务器直接联系。通常情况下,应用交付网关上的虚拟服务器只对外提供应用服务端口,从而有效地屏蔽了黑客攻击的第一步——端口扫描,增加了黑客攻击的难度。此时,服务器完全被应用交付网关与外界隔离,甚至对于提供服务的Web应用,应用交付网关也会其尽量屏蔽响应信息中关于真实服务器的信息,如Server类型信息(Apache,IIS等),让黑客无法准确定位后台Web系统的构架和类型。
但是来自外界的攻击并不可能因此而消失,大量非法的攻击行为都落在应用交付网关的身上,因此大力提升应用交付网关系统的自身防护能力尤为重要。
ACL防护
慧敏应用交付网关提供基于ACL访问控制列表的状态防火墙功能。系统支持基于IP数据五元组信息编写ACL访问控制策略,同时允许结合选定的时间段实现分时段的网络层安全防护。
慧敏ACL防控策略支持Accept/Drop/Reject/Redirect/log等操作行为,依据数据包源地址范围、源端口范围、目的地址范围、目的端口范围、协议类型和网络端口执行精准数据匹配,并且可以实现不同时段设置不同的防控策略,灵活控制数据转发。
DDos防护
DDoS攻击主要是黑客利用系统对外提供的正常服务,通过其控制的大量主机持续发送的数据请求,以达到阻止业务正常服务的目的。慧敏应用交付网关为了抵御DDoS攻击,在内核中优化了TCP协议栈,利用独特的连接管理技术和流量控制功能精心打造一个全面的DDos防护体系。
正常的TCP连接遵循标准的TCP三次握手,然后发送数据,为了维持TCP连接的管理,系统需要为每一个TCP连接初始分配512字节的内存空间。典型的DDos攻击(例如SYN_Flood),黑客就是利用TCP连接管理的机制,采用大量非法的半开连接来消耗系统资源,导致系统资源耗尽而服务崩溃。慧敏产品对此进行了优化设计,它仅在可以确定客户端发起的是一个合法的应用层访问行为时,才为此TCP连接分配内存,对于半开的TCP连接不消耗任何系统资源。
另外,慧敏应用交付网关还支持针对目标虚拟服务器或某个目标真实服务器提供流量控制功能,通过限制流量吞吐、TCP并发连接数量或Web请求速率来保护应用系统服务器。同时也可以针对访问源IP地址或IP地址范围设置TCP并发连接和TCP连接新建速率的上限,控制威胁源对系统的访问压力。
除此之外,通过基于内容验证的健康检测机制,精确探测服务器的处理能力,从而在服务器处理能力饱和之前自动屏蔽新的连接请求,以防止整个系统过载。
Http Flood防护
Http Flood攻击也称为CC攻击,这种攻击模式从TCP连接层面不易察觉,它是通过模拟正常用户产生大量恶意应用层访问请求,造成服务器资源的浪费,使得服务器CPU长时间处于繁忙状态,疲于应对那些堆积的大量待处理请求。最终可能导致应用系统异常、甚至网络拥塞,严重影响正常业务开展,应用服务不能及时提供。
慧敏应用交付网关针对7层虚拟服务器提供Http flood攻击防护功能,可以通过特定的客户端标识,包括源IP地址、请求方法、URI、查询参数、Cookie名称、Http头信息来限制单个客户端的TCP连接总量和Http请求速率。而客户完全可以根据网络洞察,利用慧敏应用交付网关提供的防护功能,自定义Http Flood攻击源特征和控制策略。
Http协议清洗
针对协议层攻击,慧敏应用交付网关还提供Http协议清洗功能,利用协议清洗引擎实时检测Http请求内容是否符合RFC定义,防止Http协议范围外的行为,可以对HTTP协议整理、发送无缺陷的数据包、阻止非法请求等。对于黑客恶意制造的非法请求,直接进行有效阻断,避免无效的请求耗费服务器资源。
例如我们将正常的Http请求头中故意将GET / HTTP/1.1改写成GET / HTTP/1.8,此类恶意的攻击请求基本可以骗过一般的防火墙产品,如果存在大量此类攻击,Web服务器将会造成极大资源浪费来响应这些“bad request”,严重的甚至会造成内存溢出的异常现象。慧敏应用交付网关通过协议清洗引擎,直接将这些协议异常行为及时阻断并丢弃。
基于策略的安全过滤规则
慧敏应用交付网关提供基于策略脚本的应用行为和内容控制机制,其中基于请求的内容过滤功能,主要用于用户自定义非法请求特征,并予以告警和阻断。
这种能力来源于两个坚实的技术基础,首先,慧敏具有详细的HTTP数据流检测能力,能够深度感知应用层信息。其次,慧敏核心的策略控制引擎对外提供一套完整的策略控制机制,允许用户利用易操作的图形工具或脚本编辑工具自定义策略规则(SmartRules),直接拒绝攻击请求或将攻击请求转向网络蜜罐,甚至为了满足安全规范,还可以改写或阻断服务器的响应。
正是基于如上的技术基础,我们可以利用策略脚本自主应对对不断变化的安全威胁,迅速做出响应、采取措施,增强系统的安全防护能力。慧敏应用交付平台的SmartRules简单易用,结合对非法请求特征的分析和定位,可以轻松实现部分入侵检测与防护能力。
内置轻量级Web应用防火墙(WAF)
数据中心前端的Web 应用服务器是经常遭受黑客攻击的主要对象。慧敏应用交付网关在为这些应用服务器提供流量调度管理的同时,还可以针对Web应用提供应用级别的WAF防护能力。
慧敏应用交付系统针对于7层虚拟服务器提供WAF安全防护能力。不同于专用的Web防火墙产品,它内置一个轻量级、低维护的WAF防护引擎,通过内置的安全防护规则阻挡SQL注入、跨站脚本攻击、目录遍历、远程文件、TOP10等Web攻击行为,同时可以将安全事件记录进行保存或导出,帮助Web应用系统增加安全防护能力。
系统内置的每一条WAF安全规则都可以针对不同虚拟应用自定义选择是否启用,并且支持添加和修改安全防护规则。同时也可以依据不同应用场景和应用行为,针对安全防护规则添加例外放行的策略,灵活实现WAF规则管理。
国密算法支持
国密算法是由国家密码局制定和颁布的一系列国产密码算法,即商用密码算法。商用密码的应用领域十分广泛,主要应用于涉及机密信息、敏感性内部信息、行政事务信息、经济信息等进行加密保护。主要的国密算法包括:
*对称加密算法(SM1/SM4),分组长度与秘钥长度均为128 比特;
*椭圆曲线非对称加密算法(SM2),可用于数字签名与秘钥交换,加密强度为256位;
*杂凑算法(SM3),用于计算数据摘要;
另外,国密算法体系与国际通用标准算法体系不同。国密规范标准规定,基于国密算法的应用需要使用双证书体系。国密双证书包括:签名证书与加密证书,签名证书用于身份验证,加密证书用于秘钥交换。而国际通用算法使用的是单证书体系,即服务器只需要提供一个签名证书用于向客户端证明自己的身份。
慧敏应用交付网关全面支持支持国密算法标准,提供国密算法套件ECC-SM4-SM3,用于建立SSL连接和连接建立之后的数据传输。SSL密码算法套件包含四个方面的算法,其格式为:秘钥交换算法—数字签名算法—对称加解密算法—数据摘要算法。而SM2-SM2-SM4-SM3(即ECC-SM4-SM3)由于使用了国密算法可以称之为国密算法套件。
同时,慧敏应用交付网关也实现了国密双证书的SSL握手协议,并且与国内首个支持国产密码算法的浏览器“360安全浏览器国密专版”成功实现国密算法联调。有了国密算法的浏览器的支持,使信国产密码算法的实际应用环境获得极大的改善。
5.2.8 应用智能控制
在应用交付概念中,对应用行为和内容的智能控制是其核心理念的重要组成部分,因此应用智能控制也成为应用交付网关至关重要的功能。慧敏应用交付网关的核心工作引擎-策略控制引擎允许通过SmartRules来实现Web应用层数据的深度检测和灵活控制。
慧敏应用交付网关可以识别Http应用层信息,包括:识别客户端类型及属性,了解请求使用的方法,了解响应的结果类型,甚至了解请求或响应的内容,基于对这些信息的细粒度识别,策略控制引擎可以制定规则,对应用流量的进行分类判断,并基于判断的结果进行策略操作。
例如某电商交易系统中,我们可以根据Http请求头中cookie的信息,识别商品交易的种类和金额,然后根据预先定义的策略,将购买贵重物品的高金额交易请求转发至服务质量保障较高的应用服务器上。
SmartRules中的“表达式”,实际上就是利用Http应用层的信息或信息之间的任意组合,准确定位具有期望特征的数据流。通过“表达式”的描述,我们可以识别哪些应用流量是希望被此规则进行管控的。例如我们可以根据Http请求头信息中Accept-Language属性就可以方便的区分那些浏览器是支持中文的,哪些是不支持中文的,而至于如何控制“表达式”判断出的结果,则由“操作行为”来决定。
宏观上,WiseGrid规划了4类应用控制的“操作行为”,它们是:
1、基于Http请求的内容交换行为
2、基于Http请求的内容过滤行为
3、基于Http请求的内容改写行为
4、基于Http响应的内容改写行为
通过操作行为的定义,策略控制引擎就知道对相应的应用数据如何进行操作,以达到SmartRules定制的策略。
最终,策略规则是需要被虚拟服务器引用的,而且我们制定的策略规则可能是多个,那么每个策略都会定义优先级,策略执行的顺序就是根据规则的优先级来确定的。
5.2.9 云计算集成
弹性计算
弹性计算是云计算环境中的一个重要特征,它可以根据工作负载的需求,动态、灵活调整服务器计算资源,弹性计算真正使云计算中心具备智能性,最终为用户提供按需所求的服务。WiseGrid 慧敏应用交付网关将流量管理、资源调度与虚拟化技术紧密结合,通过与云计算虚拟机管理平台的集成,为云计算环境提供一个完整的弹性计算解决方案,并成为解决方案中不可或缺的重要组成部分。
那么应用交付网关为什么会在弹性计算解决方案中如此重要呢?这是因为它具有得天独厚的天生优势,应用交付网关是应用交互数据的承载平台,对业务负载的变化非常敏感并最先感知。同时应用交付网关提供强大的服务器健康检测机制,可以实时掌握后台服务器的运行状态。最为关键的是,应用交付网关负责整体协调后台服务器计算资源的负载调度,那么对于业务的变化以及所需计算资源的多少,应用交付网关作为控制点是最为合适的。但问题的关键是,无论传统的负载均衡设备还是当前的应用交付网关,通常都是负责固定服务器群的负载调度,即使遇到业务的高峰或低谷,计算资源依然是固定的。除非人为的干预,通过调整服务器池中的参数,才能完成这种变化,可是这种管理方式是非常不灵活的,而且操作性较差。
不过我们也欣喜的发现,在云计算环境下,虚拟化技术的特点正好可以弥补上述的不足,虚拟机的灵活调度在云计算环境中根本不是什么问题,那么应用交付技术与虚拟化技术的完美结合,为弹性云计算提供坚实的技术基础。
在实现计算资源弹性调度解决方案中,慧敏应用交付网关将作为云计算资源管理中心的第三方应用者角色,通过资源管理中心提供的开放式API,与资源管理中心进行集成,例如通过调用VMware vCenter提供的API,远程执行唤起或关闭后台应用服务器策略,动态掌控应用服务器资源的规模。
OpenStack Neutron LBaaS集成
OpenStack是一个由美国国家航空航天局和Rackspace合作发起的开放源代码项目,旨在为公有云及私有云的建设与管理提供管理平台。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、标准统一的云计算管理平台,在简化云部署的同时也带来良好的可扩展性。
目前大量利用OpenStack开源项目构建的云管理平台如雨后春笋,应用面非常广泛。与OpenStack管理平台实现对接成为业界主流产品云计算解决方案的重要组成部分。OpenStack项目由几个核心组件组合起来完成具体工作,通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案。而每个服务提供开放的API以便于进行集成,同时为外部设备集成设计了插件(Plug-In)标准方式,这种设计思想提供广泛的适配性和开放性。
慧敏应用交付网关完全依照OpenStack Neutron LBaaS v2.0 标准实现与OpenStack管理平台紧密集成。OpenStack Neutron LBaaS作为Neutron项目的高级服务之一,能够确保工作负载以可预见的方式分配到这些实例中,从而达到更高效的使用系统资源的目的。通过在OpenStack网络节点部署慧敏产品的专用Nertron LBaaS 插件,将Neutron LBaas的API适配到慧敏应用交付网关自有的API。此时,慧敏应用交付网关设备将作为OpenStack管理平台的管理资源,不再需要独立管理即可完成负载均衡的业务管理。