目前已有多种调度机制应用于CDN的GSLB系统,其中最常见的就是基于DNS解析方式的GSLB,同时还有基于应用层协议重定向的GSLB,基于路由协议的GSLB,本篇我们先来看一下基于DNS解析方式的GSLB。

首先,我们还是看一下传统网络的访问形式和使用CDN缓存的区别:

1 传统网络访问形式


1.用户再自己的浏览器中输入要访问的网站域名www.tencent.com,浏览器向本地DNS服务器请求对该域名的解析:

◎本地DNS服务器中如果缓存有这个域名的解析结果,则直接响应用户的解析请求;
◎本地DNS服务器中如果没有关于这个域名的解析结果的缓存,则以递归的方式向整个DNS系统请求解析,获得应答后将结果反馈给浏览器

2.浏览器得到域名解析结果,就是该域名相应的服务设备的IP地址“1.1.1.1”

3.浏览器向服务器请求内容

4.服务器将用户请求内容传送给浏览器

2.使用CDN进行访问


01.用户在自己的浏览器中输入要访问的网站域名tencent.com, 浏览器向本地DNS服务器 对该域名的解析

02.DNS 系统会最终将域名的解析权交给CNAME 指向的 CDN 专用 DNS 服务器tencent.cdn.dnsv1.com

03.CDN 的 DNS 服务器将 CDN 的全局负载均衡设备 IP地址“2.2.2.2”返回用户

04.用户向 CDN 的全局负载均衡设备发起内容 URL 访问请求

05.CDN 全局负载均衡设备根据用户 IP 地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求

06.基于以下这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址:

◎根据用户 IP 地址,判断哪一台服务器距用户最近;
◎根据用户所请求的 URL 中携带的内容名称,判断哪一台服务器上有用户所需内容;
◎查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力;

07.全局负载均衡设备把服务器的 IP 地址”3.3.3.3”返回给用户

08.用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

为了更好的了解使用CDN访问和传统网络访问的区别,可以思考以下两个问题:

1.为什么要使用CNAME这样的别名机制?好处是什么?
2.能否直接使用CNAME后的别名直接访问?

带着这样的问题,我们先来了解以下应用于CDN的GSLB系统。

3.DNS产生背景

Internet将网络中的主机连接在一起需要有一套自己的规则,主机在互联网上的位置靠IP来标识,每一个主机都需要拥有一个唯一不重复的IP地址,不同的主机通过这个唯一的IP来进行辨识。

但是我们在现实生活中很少会通过输入IP来访问的原因是很难记忆,比如你要访问腾讯的主页你会去输入www.tencent.com而不是1.1.1.1这样的IP。所以就出现了主机名识别码,比如www.tencent.com这种形式。

机器喜欢简单的数字IP,人们就使用主机名这样的方式,而这两者之间的转换,就是主机名于IP地址的映射关系。

为了实现这个功能,每台主机都将这个主机标识符到IP地址的转换表存储在一个叫hosts的数据库文件中。几乎所有的现代操作系统中,还仍然存在这个hosts文件,只是其中的内容变少了(因为其大部分职能都被DNS服务器替代了)。

我们现在依然可以查询自己的host文件。

然而,随着网络规模的不断扩大、接入主机的个数不断增加,使得这种集中式管理主机名和IP地址映射关系的方案可行性逐渐降低。

为了便于维护和管理,及时全网更新和同步映射关系,提出了DNS规范,最后演变成我们所说的DNS系统。

4.基于DNS解析的GSLB工作方式

基于DNS解析的GSLB方案实际上就是把负载均衡设备部署在DNS系统中,在用户发出任何应用连接请求时,首先必须通过DNS系统来请求获得服务器的IP地址,基于DNS的GSLB就是在返回DNS的过程中进行只能决策,给用户返回一个最佳的服务器IP的地址。从用户角度来看,整个应用流于没有GSLB参与是没有发生任何变化。

基于DNS解析来实现GSLB的方法有多种,常见的就是下面三种:

通过CNAME方式实现负载均衡
CNAME是描述一个域名的别名,服务器获得CNAME记录后就会用记录中的别名来替换查找的域名,然后通过查询这个别名的A记录来获得相应的IP地址。
它是这样操作的,先将GSLB的主机名定义为所查询域名的权威DNS服务器的别名,然后将GSLB主机名添加多条A记录,分别对应于多个服务器的IP地址。
这样本地服务器会向客户端返回多个IP地址作为域名的查询结果,并且轮询这些IP,比如DNS返回两个IP,5.5.5.5(深圳)、6.6.6.6(北京),首先尝试访问深圳IP,如果请求失败才会向北京IP发起请求,下一个用户请求同样的域名的解析是,权威域名服务器会在响应信息中将北京IP放在首位,客户端首先尝试向北京发起请求,以此来达到两台服务器之间的负载均衡。

负载均衡器作为权威DNS服务器
这种方式是把负载均衡器作为一个域名空间的权威DNS服务器,这样负载均衡器就会接受所有对这个域的DNS请求(负载均衡器代替权威DNS服务器进行解析,无论用户访问的网站是否是需要进行解析的域名,其DNS请求都会被发送到负载均衡器上),从而可以通过预置策略对域名进行解析来达到负载均衡。

负载均衡器作为代理DNS服务器
这种方式是把负载均衡器注册为一个域名空间的权威DNS服务器,而真正的权威域名服务器则部署在负载均衡器后面,所有的DNS请求都会先到达负载均衡器,由负载均衡器转发至真正的权威DNS服务器,然后修改权威DNS服务器返回的响应信息,从而实现负载均衡。

我们再回到提出的问题

1.为什么要使用CNAME这样的别名机制?好处是什么?

实际上在cdn业务场景下通常需要设置CNAME是因为采用了智能解析,不同地区解析的IP不一样,试想一下你再使用cdn服务时,服务商给你一个IP,如果有一天服务商修改了IP地址,这个IP上对应的域名是要一起修改的,如果使用了CNAME则只需要重新解析一下就行。

所以我个人认为经常换IP,建议用CNAME别名解析,不经常换IP,可以使用A记录直接解析到IP。

2.能否直接使用CNAME后的别名直接访问?

这个是不可以的,是因为CNAME后的域名是用于找到IP的,不能直接访问,如果直接访问CNAME域名,则可能会显示504页面。

一个关于CNAME的误解
很多站长认为将一个域名(sub.domain1.com)CNAME到另外一个域名(domain2.com)之后就可以实现:访问sub.domain1.com得到domain2.com的内容.这个混淆了解析和绑定的区别,把 CNAME 和转向功能混为一谈了。CNAME只能保证sub.domain1.com的解析和domain2.com同步起来,如果是共享ip的主机,不绑定还是访问不到网站内容!

关注腾讯云CDN公众号,技术干货一手掌握!

应用于CDN的GSLB系统相关推荐

  1. CDN之GSLB详解

    CDN的关键技术主要有内容路由技术.内容分发技术.内容存储技术.内容管理技术等,而本文介绍的GSLB是属于CDN中的内容路由技术的关键技术. 一.内容路由技术简介: CDN负载均衡系统实现CDN的内容 ...

  2. 基于脑电图的情绪识别BCI应用于DOC患者

    点击上面"脑机接口社区"关注我们 更多技术干货第一时间送达 ‍‍‍ 基于脑电图(EEG)信号的人类情感识别已引起广泛关注.现有的大多数研究都集中在离线分析上,使用脑计算机接口(BC ...

  3. fritz_如何使用Fritz.ai将机器学习应用于Android

    fritz 本文介绍如何使用Fritz.ai将机器学习应用于Android . 在深入探讨如何开发机器学习Android应用程序的细节之前,简要介绍一下什么是Fritz.ai平台很有用. 如您所知,机 ...

  4. 记录一次与大神们的关于GAN应用于NLP的讨论

    说实话,是聆听了大神们,本人只是捧哏似的嗯.啊了几句. 之前paperweekly的GAN讨论组要进行一次讨论,给出了很多议题进行投票.里边有GAN in NLP.GAN and RL.半监督GAN等 ...

  5. 如何将高效设计应用于 DAO?

    去中心化是需要提高效率的. DAO 的操作者们已经感受到了协调.沟通和执行失败的痛苦.这就是我们想象的未来吗?我们真的在建设新的数字领域的道路上吗?许多经验丰富的操作者甚至都会指出 DAO 构造本质上 ...

  6. 应用于RFID医疗试剂防伪管理系统解决方案

    1.项目背景 Iris Diagnostics(纽约证券交易所Beckman Coulter分部:BEC)是加州一家医疗诊断制造商,公司希望将一个基于rfid防伪管理系统集成到其iQ200自动尿液分析 ...

  7. python在工程中的应用_将Flash应用于Python项目(转)

    lostpencil 2014-4-7 15:43:00 阅读(1737) 评论(4) == 基于本地的Python应用程序 == === 写在之前 === {{{ 这篇所说的是关于建立python调 ...

  8. 西门子vav控制器_西门子电子式房间温控器用于VAV和CAV系统RCU50、RCU50.1、RCU50.2...

    RCU50- 用于CAV 及VAV 系统 PI 控制 供热或者制冷的0-10V 输出 自动冷/热转换(RCU50,RCU50.1) 手动冷热切换(RCU50.2) 运行模式:正常,节能和待机(RCU5 ...

  9. 如何将Simulink应用于ISO 26262项目

    如何将Simulink应用于ISO 26262项目 作者 Tom Erkkinen, MathWorks 转载自:MathWorks 研究传统汽车和自动驾驶汽车嵌入式安全系统领域的汽车工程师正在寻找有 ...

最新文章

  1. POJ 1017 Packets 贪心 模拟
  2. 基于itchat的个人情感分析
  3. CENTOS安装ElasticSearch
  4. 计算机网络·通俗理解RIP协议(距离向量算法计算)
  5. Firefox浏览器中,input输入框输入的内容在刷新网页后为何还在?
  6. 小学4年级计算机课,小学四年级信息技术课件
  7. 域控 批量导入 用户_kerberos域用户提权分析
  8. js读取div从html中导入,在html中div+css布局的简单应用...-js+div+css下拉导航菜单完整代...-CSS文件的条件导入 - Gene Li_169IT.COM...
  9. 小师妹学JavaIO之:NIO中那些奇怪的Buffer
  10. Pandas数据结构简介
  11. cocos html5 一直在加载失败,项目进行中的小问题-0426-【Cocos2d-html5】初识Cocos2d-html5-一些移动端浏览器的兼容性Bug_169IT.COM...
  12. 跟随报文,开启一段奇妙之旅
  13. Pytest之参数化
  14. 全国计算机 offic,全国计算机二级MSOffic选择题全.doc
  15. Dxg——[版本管理工具Git SVN]开发笔记整理分类合集【所有的相关记录,都整理在此】
  16. zblog php获取文章的第一张图片,zblog 获取文章图片作缩略图的几种方式
  17. JS -获取屏幕/浏览器高度
  18. cadence设计PCB流程
  19. FinTech4Good创始人张晓晨:全球区块链的产业应用趋势
  20. 《最强大脑》之四色定理—— GIS 无处不在

热门文章

  1. 单多晶之争:光伏技术要靠市场检验
  2. js 对 URL 参数进行 加密 解密
  3. 学习angularjs的内置API函数
  4. lua工具库penlight--06数据(一)
  5. 关于ssl免费证书设置
  6. Oracle_9i常用管理命令
  7. 赠李哲(帮别人名字作诗)
  8. HDU多校2 - 6763 Total Eclipse(贪心+并查集)
  9. POJ - 2778 DNA Sequence(AC自动机+矩阵快速幂)
  10. CodeForces - 1208E Let Them Slide(模拟+multiset)