首页 > 代码库 > Citrix NetScaler 全局负载均衡解决方案
Citrix NetScaler 全局负载均衡解决方案
Citrix NetScaler
全局负载均衡解决方案
思杰(Citrix)系统亚太有限公司
2008年5月
目 录
第1章 项目概述... 3
第2章 思杰系统(Citrix)公司简介... 4
2.1. 关于思杰系统(Citrix)公司... 4
2.2. 产品与服务... 6
2.3. 思杰 NetScaler产品... 7
2.4. 成功案例... 9
第3章 全局负载均衡技术方案... 13
3.1. 设计原则... 13
3.2. 详细技术设计... 13
3.3. 动态域名解析工作模式... 16
3.4. 不同厂商设备的同步与备份... 17
3.5. 设备管理与监控... 19
第4章 全局负载均衡以外其它技术功能... 21
4.1. 利用服务器负载均衡技术实现流量分担... 21
4.2. 利用优化功能提高了网站的整体性能... 22
4.3. 利用DDOS防范功能确保了网站的安全... 23
第5章 设备数据表... 25
第6章 设备配置清单... 29
第7章 总结... 30
第1章 思杰系统(Citrix)公司简介
1.1. 关于思杰系统(Citrix)公司
打造最完美的接入体验
思杰的宗旨是简化每个人的信息接入。只有企业软件公司才100%地专注于开发接入解决方案,所以这也是我们唯一的宗旨。
我们为提供最完美的信息接入体验感到无比骄傲——最完美的接入体验不仅是对用户,而且还针对IT机构和业务。
提高工作效率——用户无需知道接入的过程。他们希望能从任何地方采用任何设备和网络连接方式轻松按需访问信息。
降低成本和增强控制力——IT管理员需要透明的接入方式。可以对接入和资源利用率进行查看、监测、控制和管理,从而能够以更低的成本提供更高质的服务。
提升业务灵活性——业务经理需要透明的接入方式。他们希望掌控整个IT基础架构,以改善运营效率、数据安全性、员工移动性和业务灵活性。
思杰接入平台(Citrix Access Platform):思杰集成式端到端系统可无缝连接用户、设备、网络和企业资源,从而能满足客户的各种需求。
思杰产品专门解决客户的接入难题。它们相互还能更好地配合使用,作为一个平台进行无缝操作,适用于现有的所有IT环境。
如今,思杰是全球领先的以及最值得信赖的按需接入基础架构解决方案提供商。全球有18万多家企业都在使用思杰接入平台为用户提供最好的应用接入体验。思杰客户包括100的财富100强,99%的全球财富500强,以及成千上万家小企业和个人用户。
思杰公司2007年年收入达到14亿美元。思杰在全球47个国家有办事处,在100多个国家拥有6200多家渠道商和合作伙伴。
北京办事处地址
思杰系统信息技术(北京)有限公司
北京市东城区东长安街1号
东方广场E2办公楼19层1901室
电话:+86-10-8520 0077
传真:+86-10-8520 0110
电子信箱:chinainfo@citrix.com
上海办事处地址
思杰系统中国上海办事处
中国上海市浦东新区
花园石桥路33号
花旗集团大厦23楼
电话:+86-21-6101 0392
+86-21-6101 0393
传真:+86-21-6101 0389
电子信箱:chinainfo@citrix.com
思杰系统广州办事处
广州市天河区林和西路161号
中泰国际广场A座23层
电话: +86 020 2885 8201
chinainfo@citrix.com
1.2. 产品与服务
思杰应用交付基础设施
使企业实现按需接入
思杰使企业能够以最快的速度、最佳的安全性和最低的成本 , 将任意应用通过任意网络传输到任意位置。思杰应用交付基础设施提供了一种独特的方法,集网络选择、安全性和管理技术于一身,能够有效满足实现端到端按需交付应用的需求。这一以平台为导向的方法由软件、设备和服务构成,而这三者也是满足企业的端到端应用交付需求所需的基本要素。
改变 IT 支持和开展业务的方法
简化所有用户的接入体验 ――通过采用 SmoothRoaming 技术 的单一创新 IT 架构, 提高本地、远程或 移动 员工、合作伙伴、外包员工及客户的工作效率。
弥补安全缺陷 ――通过充分利用我们的“ Secure by Design (设计安全)”架构和专注于接入及企业知识产权保护的独特 SmartAccess 技术 , 消除分散方法固有的安全缺陷 。
增加可见性 ――更有效地对接入涉及的要素进行管理、衡量和观察,包括接入用户、内容、地点和持续时间。
确保业务连续性 ――在发生业务或技术中断、企业扩展、技术演进或组织变更时,均可实现持续、可靠的接入。
保护投资 ――思杰应用交付基础设施提供了一款灵活的平台,可帮助有效利用和扩展 IT 生态系统,同时还能够支持您的现有系统和通过调整满足未来需求。
最完善的应用交付系统
思杰产品与我们的生态系统(由超过 2,000 名技术合作伙伴 组成)所推出的补充性产品一起,构成了思杰接入平台( Citrix Access Platform )。这些市场领先的产品具有出色的互操作性,并且 可轻松扩展 ,以便能够用于几乎任意现有 IT 环境,并为其带来出色价值。同时,当组合使用这些产品来解决各种规模企业的业务计划中固有的应用交付挑战时,它们还能够创造更多价值。
1.3. 思杰 NetScaler产品
Citrix NetScaler应用交付解决方案
Citrix NetScaler应用交付解决方案将传统数据中心产品的各项特性与功能整合至一个单独的网络设施中,其中包括负载平衡、缓存、SSL加速、攻击防御和SSL VPN等。这一设施经过精心设计,旨在最大限度地提升应用性能。
Citrix NetScaler 应用交付架构
由于应用通常要求在服务器和客户机之间建立端到端连接,并需将单个应用请求隐藏起来,因此,构建智能应用基础设施极具挑战性。这种针对单个应用请求所进行的“隐藏”,使得众多应用层解决方案在应对智能应用时几乎一筹莫展、无计可施。
而建立在Citrix的“请求交换”TM专利架构之上的Citrix NetScaler产品,却是业内首款可根据其强大的用户定义策略来处理每种应用请求的线速级技术。Citrix NetScaler的面向应用型策略引擎――AppExpert TM,能够独立于连接之上,针对单独的请求创建详细的基于策略的决策。AppExpert 使管理员能够创建复杂的应用请求处理策略,并支持基于应用的强大完善特性。
Citrix NetScaler产品可提供:
最卓越的应用性能
端到端应用安全性
不中断地应用可用性
降低运营成本
其它解决方案宣称能够增强Web应用的性能时,而Citrix NetScaler产品不仅能够最大限度地提高Web应用的性能,还能确保其安全性。此外,由于不再使用许多其它解决方案,并代之以NetScaler单一标准设备,整体网络架构的复杂程度大为简化,同时整体成本也大为降低。
Citrix NetScaler产品能够将以下应用的性能提升70%仍至更高,其中包括Oracle、PeopleSoft、SAP、Siebel、Outlook Web Access、电子商务应用以及定制应用等,同时还能够提高安全性并降低运营成本。
Citrix NetScaler应用加速器
Citrix NetScaler应用加速器是企业用以最大限度地提高其Web应用性能的理想解决方案,提供了一种免客户端安全远程访问应用的方式。
Citrix NetScaler应用交换机
Citrix NetScaler应用交换机是一款具有丰富特性的联网系统,集第4至第7层负载平衡、内容交换,以及应用加速及安全特性于一身。该应用交换机是过时的负载平衡器及其它传统解决方案的理想替代品,能够简化网络复杂性和降低总体经营成本。
1.4. 成功案例
Citrix NetScaler产品在国内外拥有大量成功部署的案例. 据统计,目前全球约75%的Internet访问经过NetScaler处理. 另外,还有超过7000家企业正使用NetScaler系统帮助他们改善企业应用系统.
全球主要客户
国内部分用户名单
名称 使用的功能
人保财险 SLB, TCP
招商证券 SLB
工银瑞信基金 SLB ,TCP,DDOS,SSL ,Cache
嘉实基金 SLB,TCP,DDOS, Cache
建设银行 SLB,TCP, SSL
中国金融认证中心 SLB,CS,SSL
和讯 SLB, TCP, Cache, CS, Rewrite
CCTV.com SLB, TCP, Cache
新浪 SLB, TCP,DDoS, Cache, SSLVPN
搜狐 SLB, TCP offload, Cache
阿里巴巴 SLB, TCP,Cache, SSLVPN, DDoS
淘宝 SLB, TCP,Cache, SSLVPN, DDoS
Ebay中国 SLB,TCP
卓越 SLB, TCP,Comp, DDoS
盛大 SLB, TCP, Cache
起点 SLB,TCP
征途 SLB,TCP,DDoS,Cache
Google中国 SLB,TCP,Cache
Myspace中国 SLB, TCP offload, Cache
CNET SLB,TCP,Comp,Cache
中关村在线 SLB, TCP, Comp, Cache
中国新闻网 SLB, TCP,Cache, Comp
中企动力 SLB,TCP,Cache
51job.com SLB,TCP,Comp,Cache,GSLB
智联招聘 SLB,TCP,Cache, DDOS
土豆 DDOS,SLB Cache,
优酷 SLB,TCP,DDOS
Pchome.net SLB, TCP, Com, Cache
Evision.com SLB, TCP, Cache
中搜 SLB, TCP, Cache, SSLVPN
上海房地产 DDOS
NC Sina SLB, TCP, DDoS
51.com DDOS,TCP,SLB, Cache, GSLB
中国数码 SLB ,TCP, DDOS,
Hipihi.com SLB,TCP
中国移动 SLB,TCP
上海热线 SLB, Cache, Comp, DDoS
互联星空 SLB, TCP,DDoS
江苏联通 SLB
……
缩写:
SLB:服务器负载均衡
TCP :TCP连接复用
Cache :AppCahe缓存
Comp :AppCompress压缩
SSL :SSL加速
第2章 全局负载均衡技术方案
2.1. 设计原则
1. 实用性
NetScaler在全局负载均衡领域具有长期的实际经验和众多的成功案例, 我们可以提供完全满足用户技术需求的动态DNS解析和全局负载均衡;
2. 可靠性
本项目作为用户非常重要的信息系统,必须保证其高可靠性. NetScaler提供的双机热备,链路聚合等功能可以保证用户对可靠性的要求.
3. 多功能
除了负载均衡和全局负载均衡, NetScaler设备还提供了性能优化(连接复用,TCP卸载等),DDOS保护,SSL加速等多种功能. 使用户在很低的设备成本和运行成本下,同时获得性能,安全性和可管理性的改善.
4. 扩展性
NetScaler的性能优异,可以满足当今和未来系统对设备处理能力不断增强的需求. 同时,用户还可以通过购买软件授权,增加设备的功能.
2.2. 详细技术设计
Citrix NetScaler为数据中心应用交付提供多种优化和提高可用性的功能,但针对与中国石化动态域名解析的需求,主要用到了NetScaler的GSLB功能,即全局负载均衡。Citrix NetScaler的全局负载均衡(GSLB)功能可以把客户对一个网站的访问请求引导到分布在Internet上多个站点中性能最佳的一个站点。从而实现用户的就近访问,站点之间的负载均衡和远程容灾。
下图列举了一个典型的全局负载均衡部署
NetScaler支持的全局负载均衡算法(量度方法)如下
1. ROUNDROBIN——轮询
2. SOURCEIPHASH——源IP地址散列
3. LEASTCONNECTION——站点服务器连接数最少
4. LEASTRESPONSETIME——站点服务器响应最快
5. LEASTBANDWIDTH——站点带宽最低
6. LEASTPACKETS——站点数据包最少
7. CUSTOMLOAD——自定义的基于SNMP的判断
8. STATICPROXIMITY——静态的就近性
9. RTT——动态的就近性
上述算法中的第1、2种算法的作用主要是将客户端的访问均匀的分散到各个站点,实现站点之间的负载均衡和远程容灾;
第3-7种算法可以将用户端的请求引导到服务器性能最好或服务器最空闲的站点,主要用在服务器运算密集型的应用场景;
第8-9种算法可以将用户端的请求引导到距离用户最近的站点,实现用户的就近访问。
根据中国石化的需求,NetScaler可以根据用户所在的地理位置和用户使用的ISP链路,选择用户访问Web站点接入的ISP链路(电信,或网通)。Citrix NetScaler的全局负载均衡功能是基于DNS实现的,并由NetScaler系统自动智能判断。由此,我们建议的中国石化动态域名解析的实现方法如下:
在中国石化北京站点部署两台NetScaler, 分别用来解析电信链路和网通链路的DNS查询请求。当NetScaler收到一个DNS请求后,
1. 如果该请求是来自网通或电信的IP地址段,则根据静态就近性算法,判断此用户是网通还是电信用户,并返回响应的解析结果给用户,即网通用户使其通过网通链路访问站点,电信用户使其通过电信链路访问站点。
其中,静态就近性算法是指NetScaler依靠一个预先手工配置好的“IP地址与地理位置的映射列表”选择就近的站点,例如,我们可以在NetScaler中配置以下信息
100.100.100.0/24 中国.网通.北京
100.100.101.0/24 中国.网通.河北.石家庄
100.100.102.0/24 中国.网通.河北.保定
100.100.103.0/24 中国.网通.河北.唐山
100.100.111.0/24 中国.网通.山东.济南
100.100.112.0/24 中国.网通.山东.青岛
200.100.100.0/24 中国.电信.北京
200.100.100.0/24 中国.电信.上海
… …
当一个客户端访问NetScaler时,NetScaler根据用户端的源IP地址在列表中查询出其所处的地理位置或运营商信息,并与各个站点的地址位置和运营商信息进行匹配,匹配长度最长的站点一定是距离客户端最近的站点或相同的运营商,NetScaler就使用该站点或运营商的IP地址响应DNS请求。
2. 如果用户请求是来自非电信或网通的IP地址段,我们不确定该用户通过网通还是电信的链路访问中国石化北京站点效果更好,则可以让两台NetScaler分别通过动态的就近性算法探测用户的本地DNS服务器,测量由客户端网络分别通过网通和电信链路到达本站的速度,并依据这个量度,选择速度最快的链路,解析域名到该运营商对应的IP地址,从而将用户引导到该链路。
3. 如果通过动态就近性算法探测发现用户通过网通链路和电信链路访问站点的速度相同,NetScaler则采用轮询算法(ROUND ROBIN)将用户访问平均分配到网通和电信两条链路上,确保入站流量的负载均衡。
4. 当电信或网通链路中的一条发生故障,无法正常工作时,NetScaler会自动发现,并把用户访问全部集中到正常工作的另一条链路上,从而确保电信与网通链路的高可用性。
2.3. 动态域名解析工作模式
在本项目中,我们使用Citrix NetScaler为中石化站点实现动态域名解析。Citrix NetScaler设备本身支持三种工作模式,即:权威DNS(ADNS)模式,DNS代理模式以及GSLB子域模式。
权威DNS(ADNS)模式
NetScaler作为一个权威DNS服务器, NetScaler保存各种类型的DNS记录,并且全部由NetScaler解析用户的DNS请求。我们可以通过在NetScaler上配置ADNS服务并且添加NS记录和A记录,确保NetScaler成为本域的权威DNS服务器。
DNS代理模式
NetScaler作为一个DNS代理,NetScaler作为用户现有DNS服务器的代理。当有用户请求发送到NetScaler,NetScaler查询后端现有的DNS服务器,并且把结果返回给用户,并且缓存解析结果。当有其他用户请求解析相同的域名时,NetScaler首先查询自己的缓存,如果有记录则返回给用户,如果缓存中没有记录,则向后端的DNS服务器发起查询。
GSLB子域模式
在实际部署中,如果用户不希望将NetScaler作为其域名的权威DNS。Citrix也提供了相应的解决方案。
例如abcd.com网站希望对www.abcd.com服务进行全局负载均衡,就可以在abcd.com域的权威DNS上设置一个子域名gslb.abcd.com,并将这个子域名的ns记录指向NetScaler。同时,使用CNAME将www.abcd.com指向www.gslb.abcd.com。NetScaler只作为gslb.abcd.com域的权威DNS,使用全局负载均衡的算法动态解析www.gslb.abcd.com。通过上述部署,就可以实现对www.abcd.com的全局负载均衡,同时,不影响现有abcd.com域权威DNS上的其他设置。
根据中国石化动态域名解析的需求,我们建议NetScaler在中国石化的部署和工作模式采用GSLB子域的工作模式,采用这种模式可保持中国石化现有的权威DNS服务器仍为该域的权威DNS服务器,同时可以实现不同ISP的静态与动态地址解析。
2.4. 不同厂商设备的同步与备份
在本项目中,中国石化香港站点现有F5 GTM设备,目前作为判断用户是来自国内还是海外的动态DNS解析设备。在北京站点部署NetScaler做动态DNS解析后,我们可以监控香港站点的可用性,并实现对F5 GTM设备的备份。
利用多NS记录实现备份
在中国石化的现有DNS服务器上添加3条NS记录,一条指向负责网通地址段解析的NetScaler,另一条指向负责电信地址段解析的NetScaler,最后一条指向香港站点的F5 GTM设备。在现有DNS服务器建立的多NS记录可以互为备份,当其中一台设备出现故障无法返回动态DNS查询结果时,则会由其它的动态域名解析设备解析用户请求。
使用相同的静态就近性列表
由于就近性的判断我们首选静态就近性匹配的方式,因此系统所维护静态就近性列表关系到动态域名解析设备使用哪个IP地址(网通,电信或其他运营商链路)响应用户请求。同时NetScaler采用的是标准静态就近性数据库,其格式与内容均可以和F5或其他厂商DNS设备相通用,因此我们建议在NetScaler设备部署后,在中国石化所有动态域名解析设备全部导入相同的静态就近性列表,以便无论同一用户通过哪一台设备解析域名,根据用户的地理位置和运营商链路,能够遵循相同的就近性原则,返回相同解析地址。
各站点可用性检测
NetScaler在实现全局负载均衡的时候,可以通过SNMP采集和监控其他站点设备(例如中国石化香港站点的F5 GTM设备)的负载情况,从而判断该站点的压力情况,并由此作出全局负载均衡的决定,选择负载最小,性能最好的站点让用户访问。
下图为基于SNMP的设备负载监控方法配置界面
2.5. 设备管理与监控
设备可以通过Console/SSH以CLI方式,或者通过基于Java技术的GUI界面进行配置管理与监控. 同时,该设备支持SNMP,可以纳入用户的网管系统中进行统一的管理.
GUI配置和监控界面非常友好,便于用户操作.
图:界面范例
第3章 全局负载均衡以外其它技术功能
3.1. 利用服务器负载均衡技术实现流量分担
我们根据系统的实际情况,定义了若干个虚拟服务器(也称为vserver 或者 VIP), 其上包括了一个IP地址和端口。这个虚拟服务器被设置成与一组运行在真实服务器群上的真实服务所绑定。真实服务包含了后台真实服务器的IP地址以及端口。在这样的情况下,一个客户发送一个请求到虚拟服务器,然后虚拟服务器在真实服务器群中选择一个并将请求转发到真实服务器。不同的虚拟服务器可以设置成与不同的真实服务绑定,例如TCP以及UDP服务。虚拟服务器支持的协议和应用包括: HTTP, FTP, SSL , SSL BRIDGE, SSL TCP ,NNTP 以及DNS等等。
同时对于某些特定的服务,我们在虚拟服务器上配置“保持粘性” : 一旦一个服务器被选择了,后续的从该用户发出的请求都被转发到同一服务器上。“保持粘性”对于那些状态需要保存在服务器上的应用,例如:购物系统等是非常重要的。
NetScaler 系统也负责检查服务器群的服务的健康状况。一旦发现服务有问题, NetScaler 系统仍将继续依照负载均衡算法把服务转向到其他正常的服务上去。
负载均衡算法指定了负载均衡的标准,也就是说,负载均衡算法选择了一台真实服务器来传递用户的请求。如果这个被算法选定的最合适的服务器达到或者超过了其最大用户连接数(使用-maxClients 在CLI命令行中队服务进行设定),那么另外一个连接数比较合适的服务器将被代替。这个方法可以通过在均衡算法中将连接数作为权重设置来实现。
NetScaler 系统可以设置按照以下这些算法来实现负载均衡:
· 最少连接数
· 轮询
· 最少响应时间
· 最低带宽
· 最少包
· 令牌
· URL 散列法
· 域名称散列法
· 源IP地址散列法
· 目的IP地址散列法
· 源IP-目的IP散列法
3.2. 利用优化功能提高了网站的整体性能
如前所述,对于 HTTP 流量, NetScaler 系统通过利用保持自己与用户端的连接以及保持自己与服务器的常连接的技术来保证了快速的页面下载时间。
这个是通过在客户端以及服务器上的HTTP “连接保持” 技术来实现的。对于服务器来讲,它永远只感觉到自己在和一个一直保持连接的用户(就算实际上该用户不是一直保持连接的)进行交互。而对于客户端来讲,它永远感觉到自己在和一个保持连接的服务器在进行交互(就算实际上该服务器被设置成例如一个请求一个连接这样的非keep-alive方式).
这一常连接保持技术利用在客户系统上,可以显著提高用户客户端的页面下载时间。其原因在于用户不需要再建立新的连接,而一般来讲这些新建连接过程在WAN上通常会带来50到500ms的延迟。
服务器端的常连接保持带来的服务器服务卸载。Netscaler保持与服务器的连接,并且所有来自客户端的连接被Netscaler终结。这样的情况下,服务器可以将更多的资源用在对于用户请求的响应上而不是去浪费在TCP连接的建立和拆除的管理上。
常连接保持使得服务器上只存在有较少的连接,服务器 CPU/内存 使用率被显著降低,其原因是服务器现在处理的连接建立和拆除进程减少很多了。
3.3. 利用DDOS防范功能确保了网站的安全
在本项目中,我们使用NetScaler系统的SYN cookies 原理来防范SYN FLOOD攻击。
Cookies被发送到发送请求的用户端,该初始会话状态没有被保留在NetScaler系统上。正因如此,NetScaler没有为该会话分配内存,正常的由合法的用户发出的TCP连接并不会被终结。NetScaler系统在收到非HTTP流量的最终ACK包或者收到HTTP流量的HTTP请求包时才为连接分配内存。 正因如此,在多次项目的实施过程中的若干次压力测试下,NetScaler系统可以达到非常高的SYN处理能力(达到2M SYN/SEC)。
NetScaler系统的SYN cookie 机制确保了以下几点:
· NetScaler系统的内存不会浪费在非法的SYN包上,实际上,内存只被用来向合法用户提供服务。
· 合法用户的普通的TCP对话可以无终断的得到服务,就算系统在SYN FLOOD攻击下也是如此。
· 正由于内存只在收到HTTP请求后才予以分配给连接, NetScaler系统使得客户系统的WEB站点避免受到了 “空闲连接” 攻击。
此外,NetScaler系统还能有效的防范7层 DOS 攻击。一般来讲,有两种类型的7层 HTTP DOS攻击: GET攻击以及 IDLE攻击。 对于GET攻击,黑客在一个连接建立后发出非常多的GET请求。 对于IDLE攻击,攻击者在连接建立后恶意停止一切活动而空闲等待。
NetScaler系统在处理时,当连入的SESSION速率达到一个预先设定的门限值时,DOS防卫功能就自动触发。 NetScaler系统会抽样对一部分客户端请求发送带有SET-COOKIE的响应。 恶意攻击主机通常不会响应SET-COOKIE,所以这些攻击包就会被丢弃。 而普通正常的HTTP请求不会受到影响。 这个触发的门限值以及发送SET-COOKIE的比例值可以针对每个服务来精细微调。 并且,由上所述,连接不会在第一个GET请求到达前建立。所以NetScaler系统也可以有效的防止IDLE攻击。
第4章 设备数据表
第5章 设备配置清单
北京数据中心 Citrix NetScaler 7000 2台
设备 | 描述 | 数量 |
NetScaler 7000 | NetScaler 7000标准版 | 2 |
GSLB License | Global Server Load Balance License | 2 |
第6章 总结
思杰系统公司长期以来一直积极致力于参与国内运营商与企业的网络系统建设,并且根据中国石化动态域名解析的设备需求,NetScaler的技术指标与特性全部都可以满足。我们希望利用Citrix NetScaler产品的独特优势,帮助用户提高网络质量,改善使用体验,降低运行成本.
在本次项目中,我们期待以思杰系统公司提供的Citrix NetScaler产品和专业服务,参与本项目的建设.
Citrix NetScaler 全局负载均衡解决方案