
GTM算法和运行机制.docx
10页1.1 GTM分配算法及运行机制GTM控制器采用了完善的负载平衡算法和业界最先进的流量分配方法:•循环• 全球可用性• LDNS 持续性• 应用可用性• 地理分布• 虚拟服务器容量• 最少连接• Pkt/sec (数据包 / 每秒)• KB/sec (千字节 / 每秒)• 往返时间• 中继段( hop )• 数据包完整率•用户定义服务质量(QoS)• 动态比率• LDNS循环• 比率• 随机•以及最新的有第三方地址(Quova)信息资源数据库导入和支持DNSSEC功 能在 GTM 的每个 WideIP 中,可以选择三种算法,这三种算法按照预定的优 先级进行排列在通常情况下,选择 Topology 计算方法作为系统的优选算法, 即所有的 LocalDNS 请求均被 GTM 计算其就近性,以保证绝大部分用户访问的 最优化性而RTT动态计算则作为Topology计算的补充算法,在Topology计算 方式没有结果的时候,将用户请求定义到其本网的线路上Global Availability算 法作为系统的默认算法,将所有无法计算结果并且不在 Topology 范围之内的LocalDNS 请求,定义到系统的默认线路上。
1.1.1 地理分布算法在 GTM 上,可以根据用户的 LocalDNS 地址来决定给用户返回那个地址在 GTM 上可配置多个自定义区域,并将这些区域与链路相对应当用户的 LocalDNS 发起请求连接GTM的时候,GTM将根据LocalDNS所位于的区域返回给LocalDNS 适当的链路侧服务器地址,引导用户从正确的线路进行访问由于F5公司已经有多个运营商详细的地址段信息,因此通过对运营商的IP 地址网段的信息输入到 GTM 内形成自定义区域表一个典型的 topology 表结构如下:topology { // 4 Items// serverldnsscoredc."CNC"202.106.0.0/16100dc."TEL"219.172.0.0/16100dc."CNC"200.100.0.0/16100}这样,就将所有从表中ldns网段内的LocalDNS请求有限定一到相应的表中 对应的链路上通常,我们采用地理分布算法作为首选算法当动态检测机制无法检到LocalDNS就进性的时候,将启动静态算法,将在地址范围列表之内的用户定义到 正确的线路上去1.1.2 全球可用性算法全球可用性算法主要用于灾难备份系统。
通过GTM的健康检查算法,可判 断各站点或线路的健康状态并在配置的时候,将同一域名所对应的 IP 地址进 行排序,在系统正常的时候,仅会有排名第一的服务器对外提供服务只有在排 名第一的服务器无法对外提供服务的时候,由排名第二的服务器接管服务如果 有多线路或者多站点则依次类推通常,我们采用全球可用性算法作为第三选择算法在动态计算和地理分 布均没有命中的时候,将所有的用户定义到默认的线路上1.1.3RTT算法运行机制:通过3DNS的RTT就近性算法会自动运算生成一个ldns就近分布表,通过 这个动态的表,每个客户上来都会提供一个最快速的链路进行访问,由于站点有 网通和电信的两条广域网线路在3DNS上会针对站点服务器(以 为例)解析网通和电信的两个不同的公网地址对应于 域名,在 3DNS 上配置 wideip: ,对应 两个 Virtual Server: VS1: 202.106.83.177, VS2: 219.17.66.100分别属于网通和 电信两条线路分配的IP地址段在3DNS内部,同时定义两个DataCenter分别与 网通和电信相对应用户的访问流程如下:^02.107 S3.126^219.172 ®.109访问网银的用户在发起DNS请求时(1) 首先向其所在运营商的Local DNS发起域名的DNS 请求。
步骤 2(2) 运营商的 Local DNS 服务器通过递归算法查找到工行的主、辅 DNS 服务器步骤 3 和 43) 接受到请求的 GTM 首先查询在本地是否有该 LocalDNS 的就近性 表项,如果存在,则直接给LocalDNS返回速度最快的服务器地址 如果不存在,则通知另外一台 GTM 发起对该 LocalDNS 的查询 步骤 54) 两台GTM分别对LocalDNS进行Probe例如网通侧3DNS查询该 LocalDNS的RTT时间为150ms,而电信侧GTM查询同一 LocalDNS 的RTT时间为300ms,则此时在两台GTM内都形成了该LocalDNS 的对应就近性表记录5) 接受到 LocalDNS 请求得 GTM 根据系统的就近性表返回相应的 DataCenter内的WEB服务器地址6) 在用户LocalDNS获得地址后,将该地址返回给用户步骤7(7) 用户向网站发起访问通过以上流程可以看出,通过动态计算方式,可以最为准确的估算出用户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.229cur_target_state 419446729ttl 2419199probe_protocol tcppath {datacenter "CNC"cur_rtt 189850cur_hops 0cur_completion_rate 10000 cur_last_hops 0}path {datacenter "TEL"cur_rtt 57209cur_hops 0cur_completion_rate 10000 cur_last_hops 0}}通常情况下,我们选择RTT动态算法作为优选算法,只要是GTM能检测到 的地址,一律按照动态算法分配,保证系统最大的灵活性。
在实际的运行环境中,可能存在某些 LocalDNS 无法检测的情况,所以我们 可以采用地理分布算法作为动态RTT算法的有效补充1.2 链路健康检查机制两台 GTM 分别检查本地端的服务器地址和对端线路的服务器地址,两台GTM 通讯是采用证书加密的方式进行 GTM 检查的这些服务器地址实际上为BIGIP 上配置的内部服务器的对外服务地址GTMwww fS^comcri->219.17268.100->202*106.33.177LocslDMS 刊蹄rtS-COJB-ai r202.106,83177 "_LocalDNS219.172.66.100电信红堵接入路由箸GTMwww.f5_com.GD.->219.172.66.100->202.106.83.177当一条线路出现故障的时候,两台GTM服务器均无法检测到对端线路的地址所以在每台 GTM 服务器上均只解析本侧线路对应的服务器地址ternet电信GTMLocalDMSwww-fSsrrrcn219.172.66.1 CDWWW-馬coE-cn .219J 72 66.100网遊线貉接人堵由器电曲线陷緩扎略由器219.172.66.100202.106.83,177【"°"一八 LTM3 3www_f5.conrc 门GTM 但在此时故障线路的 GTM 服务器无法接受请求,根据 DNS 的冗余机制。
所 有的用户请求均会发送到正常线路侧的GTM,所以此时所有的用户均将通过正 常的线路进行访问1.3 系统切换时间在采用 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 分钟,同时可以根据具体情况调整检测时间的间隔。
1.4 服务器负载均衡BIG/IP利用虚拟IP地址(VIP由IP地址和TCP/UDP应用的端口组成,它是一 个地址)来为用户的一个或多个目标服务器(称为节点:目标服务器的IP地址和 TCP/UDP应用的端口组成,它可以是in ternet的私网地址)提供服务因此,它 能够为大量的基于TCP/IP的网络应用提供服务器负载均衡服务BIG/IP连续地对 目标服务器进行L4到L7合理性检查,当用户通过VIP请求目标服务器服务时, BIG/IP根椐目标服务器之间性能和网络健康情况,选择性能最佳的服务器响应用 户的请求如果能够充分利用所有的服务器资源,将所有流量均衡的分配到各个 服务器,我们就可以有效地避免“不平衡”现象的发生路由器B^-IPIP本地流量控制器•皙盂化盅勢煨鮭个系编解定區 扩展性BIGIP是一台对流量和内容进行管理分配的设备它提供12种灵活的算法将 数据流有效地转发到它所连接的服务器群而面对用户,只是一台虚拟服务器 用户此时只须记住一台服务器,即虚拟服务器但他们的数据流却被BIGIP灵活 地均衡到所有的服务器这12种算法包括:0 轮询(RoundRobin):顺序循环将请求一次顺序循环地连接每个服务器。
当其中某个服务器发生第二到第7层的故障,BIG/IP就把其从顺序循环队 列中拿出,不参加下一次的轮询,直到其恢复正常0比率(Ratio):给每个服务器分配一个加权值为比例,根椐这个比例, 把用户的请求分配到每个服务器当其中某个服务器发生第二到第7层的 故障,BIG/IP就把其从服务器队列中拿出,不参加下一次的用户。
