累积技海拾贝浅谈通过GTM进行DNS的智能解析_第1页
累积技海拾贝浅谈通过GTM进行DNS的智能解析_第2页
累积技海拾贝浅谈通过GTM进行DNS的智能解析_第3页
累积技海拾贝浅谈通过GTM进行DNS的智能解析_第4页
累积技海拾贝浅谈通过GTM进行DNS的智能解析_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、累积:技海拾贝|cumulation浅谈通过gtm进行dns的智能解析文:东软信息技术服务有限公司 马新元什么是dns的智能解析目前中国的网络南北割据,电信、网通等不同线路的互访颇为困难,而dns智能解析是针对目前国内电信、联通以及移动等线路互联互通提供的一种解决方案。具备智能解析能力的dns除了具备一般的基本dns解析功能外,还可以自动识别dns请求发送者的来源,并根据其将域名智能的解析到双线路机器的网通或电信的ip或位于不同idc中机器的ip, 以便浏览者就近访问你的网站,而不会因为线路不同而导致访问慢。dns智能解析的原理dns智能解析的基本原理是识别用户的来路,并且根据用户的来路,通过

2、独有的算法,把用户分配到网站离用户最近的服务器上。例如我们将域名托管在可进行免费dns智能查询的dnspod,则dnspod可根据用户的来源,让网通线路的用户访问到网站的网通ip或者让沈阳的用户访问到位于沈阳idc机房中的服务器(这一切对用户而言是无感知的),而不需要像早年间很多网站为了保证不同线路的访问质量,建立一个网站的若干镜像站,让用户手动去选择自己要访问的站点。智能dns的实现方式有软件和硬件,软件中有久负盛名的bind,而硬件中有f5 的gtm 。同时也有提供dns服务的dnspod等。利用f5 gtm进行dns的智能解析f5 gtm全称为global traffic managem

3、ent即全局传输管理,它是一种广域网负载均衡设备,以dns解析为主要工作,可处理多个数据中心的流量分配。与它相对应的还有ltm 全称为local traffic management即本地传输管理,是一种局域网负载均衡设备,以tcp/udp流量分发处理、优化为主要工作,主要处理在一个数据中心内的流量分配,可以处理到流量的七层内容。在本文中我们主要讨论如何利用gtm进行域名的智能解析。在现实的生产环境中,一个有dns智能解析需求的网站,其服务器往往分布在不同的idc机房中,这些idc使用不同的线路对外提供服务;或者其服务器位于同一个idc机房中,但该idc机房为该服务器提供了不同线路的出口。对应

4、这种情况,在gtm中将使用某一线路的数据中心抽象为一个概念datacenter。在一个datacenter中包含了大量的服务器,gtm中将其抽象为一个概念server。每个服务器可以配置一个或多个ip,对应具体的这些ip以及相关的端口,gtm将其抽象为一个概念virtual server。datacenter、server、virtual server ,gtm通过以上三个概念完成了对idc机房中物理网络的描述。那么具体的datacenter、server、virtual server在gtm中担任何种角色呢? virtual server:gtm中的最小object,是server和pool

5、的逻辑成员,其ip即为gtm最终提供解析的结果。 server:用来代表一个服务器实体,类似于ltm中的node,有bigip server,non-bigip server 两类,隶属于datacenter中,同一server不应同时存在于两个datacenter中。 datacenter:组织server的容器,表示一个具体的数据中心。在完成对物理的网络的标示以后,即涉及到如何将不同用户所请求的域名地址正确的映射到具体的ip上。这里就涉及到gtm的智能解析方式。gtm通过wide ip和pool 来实现这一功能。那么wide ip和pool又是何方神圣? pool:是一个资源池,用来组织v

6、irtual server,是wide ip的配置要素,同一virtual server可以同时属于多个pool。 wide ip:对外呈现gtm所负载的智能域名,其下包含一个或多个pool。说完了这些比较枯燥的概念,我们用一个具体的例子来说明gtm智能解析的工作模式。假设情景:我们有一个网站http:/,该网站在北京和上海分别放置了一台镜像服务器对外提供服务。北京的服务器ip为是一个网通地址,上海的服务器ip为是一个电信地址。现在我们希望使用网通线路的用户在访问这个网站时,实际访问到的是北京服务器的ip地址,电信线路的用户在访问这

7、个网站时实际访问到的是上海服务器的ip地址。(以上域名及ip均为虚构,特此说明)gtm如何来完成这个需求呢:大体上分为两个阶段:第一阶段,描述物理资源;第二阶段,制定智能解析策略。以下为具体步骤:第一步:建立电信和网通线路的datacenter首先我们需要在从我们的网络运营商那里获得网通和电信线路的地址池,并在gtm中建立对应的地址池cnc-address、ct-address。其次,我们将分别建立对应网通和电信线路的datacenter: dc_cnc,dc_ct。最后我们将网通地址池cnc-address与网通datacenter相对应 ,电信地址池ct-addres

8、s与电信datacenter相对应,这样就基本完成了datacenter的建立。第二步:建立电信和网通线路的server我们在gtm中创建一个server来表示网通线路的服务器,命名为server_cnc,将其加入到网通datacenter dc_cnc中,表明该服务器是属于网通datacenter的,并为其创建ip地址为的virtual server用来作为gtm最终提供解析的结果。同理,我们创建电信线路的server,命名为server_ct,并将其加入电信datacenter dc_ct中,并为其创建ip地址为的virtual server用来作

9、为gtm最终提供解析的结果。通过以上两步,我们完成了对物理资源的描述,在以下的步骤中,我们将进行智能解析策略的制定。第三步:创建资源池pool我们在gtm创建一个资源池pool_ , 并将刚才建立的virtual server:server_cnc、server_ct加入到这个池中。在这个新建立的资源池中我们将为这些virtual server创建规则,以确定当dns请求被本资源池响应时,具体将哪个virtual server的ip作为解析结果返回给用户。在本例中,我们将按照topology的方式来决定具体将哪个virtual server的ip提供给用户。所

10、谓topology的方式,即按照发起dns解析请求者的ip的归属来确定使用哪些virtual server来进行响应。gtm中所定义的topology可以在continent/country/ip subnet/isp四个层次进行传入ip的分类。本例中我们创建了网通线路和电信线路的地址池,那么用户发起的dns解析请求就将按照用户的ip属于哪一个地址池,来确定是将电信服务器还是网通服务器的ip返回给用户。第四步:建立域名到资源池的映射。最后我们创建一个wide ip :,表明:对外该gtm接受所有对该域名的查询请求,并将第三步建立的资源池pool_www.som

11、添加到该wide ip中。表明所有对这个域名的解析都将由资源池pool_进行。至此,一个最简化版本的智能解析就完成了。此时一个网通线路的用户在浏览器中输入网站网址,用户的所配置的网通dns将向我们的gtm发起该域名的查询请求。我们的gtm在接收到该查询请求后,将使用资源池pool_对该域名进行解析,由于该域名查询请求的发起者ip地址包含在网通地址池中,gtm就将网通线路服务器的ip地址返回给发起查询的网通dns,网通dns进一步

12、将该ip地址作为查询结果返回给该用户。这样用户事实上最终访问到的服务器即为该网站的网通线路服务器,但整个过程对于用户而言是无感知的。单纯从以上的dns智能解析方式来说,gtm的智能解析方式与一般的bind服务器通过访问控制列表结合视图来进行智能解析的方式差别并不大。但在实际的应用中,gtm提供了几种比较有特点的功能以提高其智能解析能力。由于篇幅所限,本文将就比较有代表性的功能health monitors以及irule进行一下说明。其他的系统特性,可以在网站上获取到最新的资料。首先介绍一下health monitorhealth monitor一般译为健康检查,

13、在 gtm中将会在pool,以及server中加入对virtual server的健康检查,以确定该服务器是否可以正常的对外提供服务。例如在pool中使用了健康检查后,如通过健康检查,某virtual server的服务处于不可用状态,pool将会利用已定义的负载平衡策略将其他可用的ip返回给用户,以保证在部分服务器宕机的情况下,用户仍可以获得所需服务,从而保证用户的使用体验。gtm系统中默认创建了几种健康检查的脚本,但是我们也可以根据需要进行自定义健康检查脚本的编写,自定义的健康检查脚本可以根据检测内容的不同,定义检测的类型、时间周期、超时标准,服务端口等信息,满足用户的检测需求。下面简单介

14、绍一下irule通过使用f5由事件驱动的irule,可以定制全局流量的动态分配。gtm可以深入查看dns消息,向期望的数据中心、池或虚拟服务器分配应用流量。这一功能可以减少延迟,加强针对恶意攻击的保护,并改进应用性能。在gtm中irules主要使用在wide ip模块中,当我们定义了多个资源池的时候,可以设定irule,让符合特定条件的流量连接到特定的资源池进行处理。这里所指的特定条件可以是dns查询请求发起者的ip地址,也可以是uri这样的通用资源标识符。irule规则使用的语法为tcl,目前gtm可以支持tcl8.4版本的语法。以下使用一个小例子来说明irules的用法:下面是一个简单的irulewhen dns_request if ip:addr ip:client_addr equals 0 pool my_pool当我们为一个wide ip添加了这样的irule以后,每当这个wide ip监听到dns请求发送者的ip地址是0,就会将这个请求包传递给my_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论