2023年12月6日发(作者:)

GTM多链路接入解决方案

目 录

1. 前言 ................................................................................................................... 3

2. 场景描述 ........................................................................................................... 3

3. 系统设计 ........................................................................................................... 4

3.1 GTM多链路设计结构图: ..................................................................... 4

3.2 网络拓扑结构说明 .................................................................................. 6

3.3 系统逻辑结构 .......................................................................................... 6

3.4 同一组服务器对外多地址服务原理 ...................................................... 7

3.5 GTM分配算法及运行机制 ..................................................................... 8

3.5.1 地理分布算法 ................................................................................ 9

3.5.2 全球可用性算法 .......................................................................... 10

3.5.3 RTT算法运行机制: ................................................................... 10

3.6 链路健康检查机制 ................................................................................ 13

3.7 系统切换时间 ........................................................................................ 14

3.8 服务器负载均衡 .................................................................................... 15

4. 系统安全性考虑 ............................................................................................. 17

5. 和CISCO GSS4492对比分析 ....................................................................... 18

6. 成功案例 ......................................................................................................... 20

1. 前言

在原Chinanet分为北方China Netcom 和南方China Telecom之后,出现南北网络之间的互联问题,表现形式为南方用户访问北方网站或北方用户访问南方用户访问速度较慢的问题。其出现的根本原因为南北网络的互通互联接点拥塞,造成用户丢包、延迟较大,从而导致访问缓慢,甚至对于一些应用根本无法访问。

2. 场景描述

对于提供给一个运行关键业务的电子商务网站的IDC来说,保持用户的访问速度和访问的成功率非常重要。需要一套系统来解决南方和北方用户的访问问题。

以下是一张实测数据表

测试项目 网通北京ADSL用户访问 12月2日凌晨1时

.209

网通

of 72

per 1.20

73

电信

69

1.15

70

13.47

0.22

4001.90

66.68

广东电信用户访问,宽带用户,带宽未知,12月2日 16:30

.11

网通

4

0.07

5

0.96

0.02

256.58

4.28

电信

76

1.27

77

14.96

0.25

4388.54

73.12

网通北京ADSL用户访问,12月2日16:00

.209

网通

52

0.87

53

13.61

0.23

3019.94

50.32

电信

47

0.78

48

12.23

0.20

上海ADSL宽带用户访问,12月2日 20:00

.11

网通

19

0.32

20

3.87

0.06

电信

35

0.58

36

7.03

0.12

39.83

0.66

DNS Result

Number

hits:

Requests

Second

Socket

Connects

Total Bytes 14.19

Sent (in KB)

Bytes Sent Rate 0.24

(in KB/s)

Total Bytes 4148.24

Recv (in KB)

Bytes Recv 69.12

Rate (in KB/s)

2703.26 21.73

45.05

0.36

表中可以看出,对于同一个站点,一个用户分别从两条线路进行访问,得出的访问速度差异是非常大的。最大的差值在广东电信分别访问站点的两条线路,其速度差异接近20倍。

3. 系统设计

通常用户系统原有结构设计图

在系统原有系统结构中,采用单条接入线路,一个或多个DNS服务器,这些服务器对于同一个域名均解析为同一个地址。

3.1 GTM多链路设计结构图:

非冗余结构:

在非冗余结构下,系统中需要增加一侧接入路由器、两台GTM设备和一台BIGIPLTM设备作为多线路接入设备。

冗余结构:

在冗余结构中,则采用两台GTM和两台BIGIPLTM实现了系统的全冗余,同时,在BIGIP LTM下端,可采用防火墙和核心交换机冗余保证系统的进一步可靠性。 3.2 网络拓扑结构说明

在原系统接入中,增加一条线路,并采用相应的接入路由器,将两台GTM服务器分别接在两台接入路由器上,负责用户的DNS访问请求。引导用户使用最快的链路进行访问站点。同时,GTM负责检查两条线路的健康状态,一旦检测到线路的中断,则停止相应线路的地址解析。

在接入路由器之后,采用了F5 BIGIP作为多链路接入设备,在BIGIP上配置多个IP对应每条线路分配的IP网段。这些IP同时对应后端的一台或多台服务器。实现服务器组的对外统一服务。

根据每个系统的需求,可以采用非冗余结构或者冗余结构。

3.3 系统逻辑结构

GTM上采用DataCenter、VS、和WideIP来标识系统中的各元素,系统逻辑结构图如下:

其中:

GTM配置:

 VS:表示各线路真实对外提供服务的IP地址,在本系统中,VS为BIGIP上虚拟的后端服务器地址。

 WideIP:表示外部用户访问的统一域名,每个WideIP均与相应的两个或多个VS相对应,对于每一个LocalDNS的请求,3DNS均会选择一个或多个相应的VS地址返回。WideIP主要负责A记录的解析。

 DataCenter:用于标识线路或数据中心,位于同一条线路侧的所有VS、3DNS均位于同一个DataCenter。  NameSurfer/BIND:在3DNS内部用于解析非动态域名,提供标准DNS服务器的所有功能。包括SOA、NS、MX和A记录的解析。

BIGIP LTM配置:

 VS:表示对应于各线路的服务地址,该地址为虚拟地址

 Pool:用于对后端的服务器分组,在同一组内可以是一个或多个服务器组成的负载均衡组。BIGIP将对VS的访问根据预先定义的算法分配到Pool中的每个Node节点上。

 Node:标识每一台真实的服务器地址和提供服务的端口。

3.4 同一组服务器对外多地址服务原理

由于采用了多条链路接入,则此时必将面临将系统中的一台或多台服务器同时对多条链路提供服务的问题。在系统设计中,我们采用了F5 BIGIP来实现了多出口接入。

如图:

在BIGIP实现多链路接入的时候,采用了BIGIP上的AutoLastHop技术。对于每条线路,在BIGIP上均配置一个与线路分配网段对应的IP地址,这些IP地址均映射到后端的一台或同一组服务器。当用户访问不同地址的时候,BIGIP上将建立每个请求与来源设备Mac地址的对应关系表。即将每个用户的请求连接和上端的路由器MAC地址进行对应,在服务器数据返回的时候,则根据该对应表将返回的数据包发送到相应的路由器,避免了数据往返通路不同的问题。

3.5 GTM分配算法及运行机制

GTM控制器采用了完善的负载平衡算法和业界最先进的流量分配方法:

 循环

 全球可用性

 LDNS持续性

 应用可用性

 地理分布

 虚拟服务器容量

 最少连接

 Pkt/sec(数据包/每秒)

 KB/sec(千字节/每秒)

 往返时间

 中继段(hop)

 数据包完整率

 用户定义服务质量(QoS)

 动态比率

 LDNS循环

 比率

 随机

 以及最新的有第三方地址(Quova)信息资源数据库导入和支持DNSSEC功能

在GTM的每个WideIP中,可以选择三种算法,这三种算法按照预定的优先级进行排列。在通常情况下,选择Topology计算方法作为系统的优选算法,即所有的LocalDNS请求均被GTM计算其就近性,以保证绝大部分用户访问的最优化性。而RTT动态计算则作为Topology计算的补充算法,在Topology计算方式没有结果的时候,将用户请求定义到其本网的线路上。Global Availability 算法作为系统的默认算法,将所有无法计算结果并且不在Topology范围之内的LocalDNS请求,定义到系统的默认线路上。

3.5.1 地理分布算法

在GTM上,可以根据用户的LocalDNS地址来决定给用户返回那个地址。在GTM上可配置多个自定义区域,并将这些区域与链路相对应。当用户的LocalDNS发起请求连接GTM的时候,GTM将根据LocalDNS所位于的区域返回给LocalDNS适当的链路侧服务器地址,引导用户从正确的线路进行访问。

由于F5公司已经有多个运营商详细的地址段信息,因此通过对运营商的IP地址网段的信息输入到GTM内形成自定义区域表。

一个典型的topology表结构如下:

topology { // 4 Items

// server ldns score

dc."CNC" 202.106.0.0/16 100

dc."TEL" 219.172.0.0/16 100

dc."CNC" 200.100.0.0/16 100

}

这样,就将所有从表中ldns网段内的LocalDNS请求有限定一到相应的表中对应的链路上。

通常,我们采用地理分布算法作为首选算法。当动态检测机制无法检到LocalDNS就进性的时候,将启动静态算法,将在地址范围列表之内的用户定义到正确的线路上去。

3.5.2 全球可用性算法

全球可用性算法主要用于灾难备份系统。通过GTM的健康检查算法,可判断各站点或线路的健康状态。并在配置的时候,将同一域名所对应的IP地址进行排序,在系统正常的时候,仅会有排名第一的服务器对外提供服务。只有在排名第一的服务器无法对外提供服务的时候,由排名第二的服务器接管服务。如果有多线路或者多站点则依次类推。

通常,我们采用全球可用性算法作为第三选择算法。在动态计算和地理分布均没有命中的时候,将所有的用户定义到默认的线路上。

3.5.3 RTT算法运行机制:

通过3DNS的RTT就近性算法会自动运算生成一个ldns就近分布表,通过这个动态的表,每个客户上来都会提供一个最快速的链路进行访问,由于站点有网通和电信的两条广域网线路。在3DNS上会针对站点服务器(以为例)解析网通和电信的两个不同的公网地址。

对应于域名,在3DNS上配置wideip:,对应两个Virtual Server:VS1:202.106.83.177,VS2:219.17.66.100。分别属于网通和电信两条线路分配的IP地址段。在3DNS内部,同时定义两个DataCenter分别与网通和电信相对应。

用户的访问流程如下: 访问网银的用户在发起DNS请求时

(1) 首先向其所在运营商的Local DNS发起域名的DNS请求。步骤2

(2) 运营商的Local DNS服务器通过递归算法查找到工行的主、辅DNS服务器。步骤3和4。

(3) 接受到请求的GTM首先查询在本地是否有该LocalDNS的就近性表项,如果存在,则直接给LocalDNS返回速度最快的服务器地址。如果不存在,则通知另外一台GTM发起对该LocalDNS的查询。步骤5。

(4) 两台GTM分别对LocalDNS进行Probe。例如网通侧3DNS查询该LocalDNS的RTT时间为150ms,而电信侧GTM查询同一LocalDNS的RTT时间为300ms,则此时在两台GTM内都形成了该LocalDNS的对应就近性表记录。

(5) 接受到LocalDNS请求得GTM根据系统的就近性表返回相应的DataCenter内的WEB服务器地址。步骤6。

(6) 在用户LocalDNS获得地址后,将该地址返回给用户。步骤7

(7) 用户向网站发起访问。步骤8。

通过以上流程可以看出,通过动态计算方式,可以最为准确的估算出用户LocalDNS与两条线路之间的速度。通过GTM之间的信息交互,在两台GTM上形成就近性表,并根据该表返回用户的最佳访问地址。

GTM可以选择多种测试方法判断对local DNS的RTT时间, 包括:

 DNS_Dot: 向local DNS发起一个包含”.”的测试, 也就是向目标LocalDNS请求root清单,该解析一般默认配置的DNS服务器均提供支持。

 DNS_REV: 向local DNS发起LocalDNS本机IP的PTR请求

 UDP:发起一个UDP的包, 看是否回应

 TCP:发起一个TCP的包看是否回应

 ICMP:发起一个ICMP 的ping 包, 看是否回应

在以上各检测方式中,无论目标系统返回那种类型的数据包,GTM均可认为是有效数据包而记录数据包往返时间,最终形成就近性表。

针对一个local DNS 的RTT结果:

ldns {

address 61.136.178.229

cur_target_state 419446729

ttl 2419199

probe_protocol tcp

path {

datacenter "CNC"

cur_rtt 189850

cur_hops 0

cur_completion_rate 10000

cur_last_hops 0

} path {

datacenter "TEL"

cur_rtt 57209

cur_hops 0

cur_completion_rate 10000

cur_last_hops 0

}

}

通常情况下,我们选择RTT动态算法作为优选算法,只要是GTM能检测到的地址,一律按照动态算法分配,保证系统最大的灵活性。

在实际的运行环境中,可能存在某些LocalDNS无法检测的情况,所以我们可以采用地理分布算法作为动态RTT算法的有效补充。

3.6 链路健康检查机制

两台GTM分别检查本地端的服务器地址和对端线路的服务器地址,两台GTM通讯是采用证书加密的方式进行。GTM检查的这些服务器地址实际上为BIGIP上配置的内部服务器的对外服务地址。

当一条线路出现故障的时候,两台GTM服务器均无法检测到对端线路的地址。所以在每台GTM服务器上均只解析本侧线路对应的服务器地址。

但在此时故障线路的GTM服务器无法接受请求,根据DNS的冗余机制。所有的用户请求均会发送到正常线路侧的GTM,所以此时所有的用户均将通过正常的线路进行访问。

3.7 系统切换时间

在采用DNS实现链路切换时,系统的切换时间主要取决于每个域名的TTL时间设置。在GTM系统里,每个域名如均可设置对应的TTL生存时间。在用户的LocalDNS得到域名解析纪录后,将在本地在TTL设定时间内将该域名解析对应纪录进行Cache,在Cache期间所有到该LocalDNS上进行域名解析的用户均将获得该纪录。在TTL时间timeout之后,如果有用户到LocalDNS上请求解析,则此LocalDNS将重新发起一次请求到3DNS上获得相应纪录。

因此,当单条线路出现故障时,3DNS将在系统定义的检查间隔(该时间可自行定义)内检查到线路的故障,并只解析正常的线路侧地址。但此时在LocalDNS上可能还有未过时的Cache纪录。在TTL时间timeout之后,该LocalDNS重新发起请求的时候就将从GTM上获得正确的解析,从而引导用户通过正常的线路进行访问。系统检测间隔加上TTL时间之和则为系统切换的最长时间。通常,系统检测间隔设置为60秒,而GTM的TTL默认时间设置为30秒,所以系统切换的整体时间为小于2分钟,同时可以根据具体情况调整检测时间的间隔。

3.8 服务器负载均衡

BIG/IP利用虚拟IP地址(VIP由IP地址和TCP/UDP应用的端口组成,它是一个地址)来为用户的一个或多个目标服务器(称为节点:目标服务器的IP地址和TCP/UDP应用的端口组成,它可以是internet的私网地址)提供服务。因此,它能够为大量的基于TCP/IP的网络应用提供服务器负载均衡服务。BIG/IP连续地对目标服务器进行L4到L7合理性检查,当用户通过VIP请求目标服务器服务时,BIG/IP根椐目标服务器之间性能和网络健康情况,选择性能最佳的服务器响应用户的请求。如果能够充分利用所有的服务器资源,将所有流量均衡的分配到各个服务器,我们就可以有效地避免“不平衡”现象的发生。

BIGIP是一台对流量和内容进行管理分配的设备。它提供12种灵活的算法将数据流有效地转发到它所连接的服务器群。而面对用户,只是一台虚拟服务器。用户此时只须记住一台服务器,即虚拟服务器。但他们的数据流却被BIGIP灵活地均衡到所有的服务器。

这12种算法包括:

Ø 轮询(RoundRobin):顺序循环将请求一次顺序循环地连接每个服务器。当其中某个服务器发生第二到第7层的故障,BIG/IP就把其从顺序循环队列中拿出,不参加下一次的轮询,直到其恢复正常。

Ø 比率(Ratio):给每个服务器分配一个加权值为比例,根椐这个比例,把用户的请求分配到每个服务器。当其中某个服务器发生第二到第7层的故障,BIG/IP就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。

Ø 优先权(Priority):给所有服务器分组,给每个组定义优先权,BIG/IP用户的请求,分配给优先级最高的服务器组(在同一组内,采用轮询或比率算法,分配用户的请求);当最高优先级中所有服务器出现故障,BIG/IP才将请求送给次优先级的服务器组。这种方式,实际为用户提供一种热备份的方式。

Ø 最少的连接方式(LeastConnection):传递新的连接给那些进行最少连接处理的服务器。当其中某个服务器发生第二到第7层的故障,BIG/IP就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。

Ø 最快模式(Fastest):传递连接给那些响应最快的服务器。当其中某个服务器发生第二到第7层的故障,BIG/IP就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。

Ø 观察模式(Observed):连接数目和响应时间以这两项的最佳平衡为依据为新的请求选择服务器。当其中某个服务器发生第二到第7层的故障,BIG/IP就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。

Ø 预测模式(Predictive):BIG/IP利用收集到的服务器当前的性能指标,进行预测分析,选择一台服务器在下一个时间片内,其性能将达到最佳的服务器相应用户的请求。(被big/ip进行检测)

Ø 动态性能分配(DynamicRatio-APM):BIG/IP收集到的应用程序和应用服务器的各项性能参数如CPU、内存和磁盘的占用情况,动态调整流量分配。动态性能分配可通过标准SNMP或服务器端插件完成。 Ø 动态服务器补充(DynamicServerAct.):当主服务器群中因故障导致数量减少时,动态地将备份服务器补充至主服务器群。

Ø 服务质量(QoS):按不同的优先级对数据流进行分配。

Ø 服务类型(ToS):按不同的服务类型(在TypeofField中标识)对数据流进行分配。

Ø 规则模式:针对不同的数据流设置导向规则,用户可自行编辑流量分配规则,BIG/IP利用这些规则对通过的数据流实施导向控制。

当出现流量“峰值”时,如果能调配所有服务器的资源同时提供服务,所谓的“峰值堵塞”压力就会由于系统性能的大大提高而明显减弱。由于BIGIP优秀的负载均衡能力,所有流量会被均衡的转发到各个服务器,即组织所有服务器提供服务。这时,系统性能等于所有服务器性能的总和,远大于流量“峰值”。这样,即缓解了“峰值堵塞”的压力,又降低了为调整系统性能而增加的投资。

4. 系统安全性考虑

GTM包含众多固有的安全特性,能够有效保护您的站点免受一般攻击,并为其提供更强大的保护。GTM在发运时缺省设置为较高级安全模式,并提供了以下特性:

 可根据对通信源、目的地或端口的监视结果,利用数据包过滤功能限制或拒绝网站发出或接到的访问。

 GTM控制器采用远程命令行界面进行配置;并采用安全外壳(SSH)进行加密。

 GTM控制器非常强大,能够有效防御一般攻击:

 Thwarts teardrop攻击

 保护自己和服务器免受ICMP攻击

 不运行SMTPd、FTPd、Telnetd或任何其它可被攻击的端口监控程序

GTM本身也具有强大的解析能力,在正常配置下,GTM在3600平台非递归查询可每秒钟可达解析400000个记录。通常的攻击很难达到GTM的上限。

在实际情况中,还可以通过在路由器上设置ACL访问控制列表来进一步增强系统的安全性。

5. 和CISCO GSS4492对比分析

相对于目前业内的智能DNS产品,F5GTM是一款多平台型号的、具有高度扩展和功能升级能力的硬件平台,平台含盖了从1G平台的1600到40G的11050平台。提供了强大的DNS智能解析服务,且为众多用户所信任。

功能名称

1. 硬件支持能力

 端口数量

 处理器CPU

GTM 3600 CiscoGSS4492R

≥10个千兆端口,其中千兆光口不少于24千兆电口(Fixed)

两核CPU,单核主频≥2GHz

Cluster Multi Processor技术,可以充分利用CPU资源,使得每个核都能为负载均衡所利用,而不是负载均衡跑在一个核,其它功能跑在另外一个核。

单核Intel 3.4 GHz

Pentium D CPU

不支持,仅单核

 CMP技术

 内存

内存≥4GB,以支持更大的并发连接数,2GB RAM (fixed)

以及RamCache等应用优化功能。

增加硬件设备运行稳定性,同时备份多个drive

操作系统,增加日志记录量

CF≥8GB, Disk≥320GBm双存储介质,One 80-GB hard

 存储介质  硬件SSL加速卡

 冗余电源/风扇

 LCD液晶管理面板

2.设备冗余性

 冗余电源/风扇

支持硬件SSL加速芯片

支持交流或直流双电源/风扇

N

仅单电源,不可扩展

N

提供液晶面板进行简单管理,显示设备工作状态和报警,便于机房管理人员巡检。

支持交流或直流双电源/风扇 仅单电源,不可扩展

 设备冗余

支持Active-Active及Active-Standby冗余方式;提供硬件级心跳线和网络级冗余判断方式,系统切换时间<200毫秒; Y,network-based HA

提供连接会话的镜像功能,实现无缝故障切换。

3.设备支持技术能力

 DNS解析处理能力

400,000connection/second

 Virtual Server数支持 ≥40000

 Real server数量

支持≥80000

要求可以拓展支持链路负载均衡和数据 支持负载均衡拓展中心负载均衡。

性 同时支持外部地址第三方信息库导入功能。

最大到30,000

4000

4000

N

 DOS和SYN Flood防Y(需要额外购买支持大流量的DOS和SYN Flood攻击防护

护 license)

可编程管理流量 可编程,个性化,精确化管理流量 N

提供API/SDK开发包,具备二次开发能力,能够定制应用健康检查机制;便于跟 API二次开发接口

Microsoft,BEA,Oracle等应用软件无缝结合。

 安全管理

 统计图表和日志

4.原厂服务支持能力

 硬件故障诊断程序

 RMA返修服务

 原厂服务

要求支持硬件故障诊断程序,能够快速确定硬件故障情况。EUD

要求支持国内备品备件库,第二个工作日NBD,备机到达用户指定地点。

要求三年原厂软件升级,故障修复,技术支持等服务。

采用加密的系统管理,提供基于ssh的命令行方式和基于https的图形管理方式

管理界面上自带实时流量及系统开销统计图表,同时自带日志报警和输出功能

N

Y

Y

Y

Y

Y 5.平台扩展能力,获得最大的ROI

实现:

1. 全面的负载均衡功能。包含静态和动态负载均衡方法,可定制的基于应用层的健康检查方式,基于HTTP

Cookie Insert模式的会话保持方 支持服务器负载均式。

衡能力扩展

2. 多路连接复用

3. 智能HTTP压缩,缺省提供50Mbps处理能力,最大支持1Gbps。

4. RAMCache技术

要求允许设计定制的分区,并分配不同级别的管理权限和功能浏览权。管理员可以 支持虚拟管理域功根据业务、应用的拥有者或者其它分类来能

设计定制的浏览权,实现管理扩展性和效率。

 包过滤防火墙

内置访问控制列表,满足一般性网络安全需求

N

Y

Y

抵御页面防篡改,第7层DoS攻击,SQL 全面的攻击防护注入式攻击,参数篡改等攻击提高应用级(需要有license)

安全防护,确保应用安全。

 4-7层协议安全

提供如FTP等协议安全模块及异构防火墙负载均衡

N

N

N

 Web动态、静态页面对客户portalweb页面的动态、静态页面加速 进行加速。

6. 成功案例

 多链路接入及镜像站点

中国工商银行总行网上银行接入系统

中国农业银行总行网上银行接入系统

中国交通银行总行网上银行接入系统

招商银行总行网上银行接入系统

浦发银行总行网上银行接入系统

光大银行总行网上银行接入系统 腾讯(QQ)网站

 CDN

蓝汛,ChinaCache

CDN

中国网通SCDN

华奥星空CDN