速度法拉利 Google DNS服务器提速技术揭秘
创始人
2024-06-14 01:51:20
0

【51CTO.com独家特稿】Google推出了“Google免费公共DNS服务器”据Google官方声称,Google DNS的目标是速度、安全性和有效性,它意味着完全没有劫持、没有阻截、没有过滤的DNS查询,而且速度飞快。那么为什么Google敢说自己的DNS服务器速度快呢?Google官方出具了一份文档说明,我们这就来看一看。

传统的DNS服务器缓慢的原因

随着网页越做越复杂,引用的资源可能来自多个域,于是DNS查找成为网页浏览过程的瓶颈。无论何时,客户端需要查询DNS服务器的时候,由于要查询的DNS服务器数量和它所处的地理位置不同,时间延迟有很大的差异。例如,下图显示由PageSpeed测量出的浏览一个网页时时间都花到哪些动作上了,每个条块表示网页中引用的一个资源,黑色区域表示DNS查找所花掉的时间,在这个页面中,前11秒执行了13次DNS查找,虽然很多查找是并行执行的,图中显示仍然有5个串行查找时间,它们就占据了11秒的大部分时间。

 

图 1 PageSpeed报告的页面浏览过程各个操作的时间

DNS延迟由两部分组成

1、在客户端(用户)和DNS服务器之间的延迟,受网络通信情况的约束,这个时间所占的比例是非常大的,如客户端和服务器之间的距离,网络拥塞,数据包丢失和长时间重传延迟,服务器本身超载运行,拒绝服务攻击等。

2、DNS服务器之间的延迟,这种延迟主要是以下因素造成的:

(1)缓存丢失。如果某个查询请求不能从缓存中直接返回结果,请求就会递归查询其它DNS服务器,如果遇到根服务器出现这种问题,那影响更厉害。

(2)如果DNS服务器超载运行,所有查询请求必须排队。

(3)恶意流量。拒绝服务器攻击可以给DNS服务器带来过度的负载。

我们认为缓存丢失是DNS延迟最主要的因素。

缓存丢失

即使DNS服务器有充足的本地资源,但与远程DNS服务器之间的延迟是不可避免的,当本地缓存丢失时,解析器至少需要和一个其它DNS服务器沟通,有时甚至是两个或多个,通过对Google搜索的观察,我们发现平均每次解析时间需要130毫秒,由于UDP包丢失或服务器不能响应,大约有4-6%的搜索请求会超时。如果我们采取措施解决如数据包丢失,死掉的DNS服务器,或DNS配置错误,那响应时间会上升到300-400毫秒。

虽然各个DNS缓存丢失率不尽相同,但由于以下原因,缓存丢失是不可避免的:

1、互联网规模在不断变大。随着互联网爆炸式增长,不断有新用户和新的网站加入,互联网内容已经非常庞大。

2、TTL值。DNS TTL值降低的趋势迫使任何解析都需要频繁的查找。

3、缓存隔离。DNS服务器通常都采用了负载均衡技术,每个独立的服务器都维护一份独立的缓存,而不能共用共享缓存池中的解析。

Google免费公共DNS服务器如何提高DNS查找速度

在Google公共DNS中,我们采用了多种技术手段来提高DNS查找速度,其中一些方法是实验性质的,另外一些是遵循标准的。

1、充分配置服务器处理来自客户端的通信,包括恶意流量。

2、预防DoS和放大攻击,虽然这是一个安全问题,但阻止DoS攻击可以提高DNS服务器处理正常请求的能力。

3、共享缓存负载均衡,提高跨服务器集群的缓存命中率。

4、域名预取技术。克服传统的被动式缓存缺陷,我们将通过这个技术满足流量有限和缓存分区等技术挑战。

5、提供给全球用户使用。

Google免费公共DNS服务器提速法宝一:正确配置服务器集群

缓存DNS解析器必须执行比权威服务器更多的工作,因为很多响应不能直接从内存中找到结果,相反,它们需要与其它域名服务器通信,因此需要大量的网络I/O。此外,开放式解析器容易遭受攻击,如发送一些不能解析的全球,这增加了缓存丢失率,同时DoS攻击会增加通信负载。如果解析器没有正确配置集群,合理分配工作负载,可能也会带来负面的性能影响。如数据包被丢掉,需要重传,抵达域名服务器的请求必须排队等。所有这些因素都会引起延迟。

因此,为DNS解析器提供大容量的I/O非常重要,包括处理可能的DoS攻击,唯一有效的方法就是提供非常多的服务器,同时,增加服务器最重要的就是不能降低缓存命中率,这需要采用有效的负载均衡策略。

Google免费公共DNS服务器提速法宝二:共享缓存负载均衡

如果负载均衡配置不当,增加服务器反倒会降低缓存命中率,在一个常见的部署中,多台服务器位于一台负载均衡器背后,使用诸如循环这样的简单算法来分配请求,这样做的结果是每台服务器维护它们自己的独立缓存,因此缓存内容是孤立的。如果每个请求根据通信情况被随机分配,缓存丢失率将不断增长,例如,对于那些长TTL重复查询的域名,缓存丢失率会随集群中服务器数量的增加而增长。

为了提高缓存命中率,最重要的是负载均衡,避免缓存分散在各个服务器上,目前有两种方法:一是使所有服务器使用全局缓存,二是按域名将缓存分区,所有同一域名的查询就会被定向到同一台服务器。在Google公共DNS中,我们同时使用了这两种技术,每台服务器都共享一个小的全局缓存,包括最流行的域名,这些服务器负载均衡就很好控制了,如果这些缓存不能满足查询,它会根据域名将请求发给另一个服务器,所有相同域名的查询都会发给同一台服务器。

Google免费公共DNS服务器提速法宝三:域名预取技术

随着互联网规模的扩大,传统解析器命中率有些限制,它们一般缓存的都是比较流行的域名,我们希望也能够处理冷门的域名,在传统DNS服务器上,由于这些冷门域名访问次数较少,过不了多长时间就会过期,就会从缓存中清除。

为了实现这些目标,我们正在试验域名预取技术,当前主要面临两大挑战:

1、考虑其他域名服务器的限制。为了确保我们的预取技术不会给其它域名服务器带来过多的负载,我们队我们的传出请求做了限制,确保其它服务器的容量不被用尽。

2、管理我们自己服务器的容量限制。由于我们的服务器没有无限的内存和CPU,在挑选域名预取服务器时要谨慎。此外,为了保护缓存不被伪造的攻击吃掉,我们将主要缓存分成主/次分区,并根据流量类型授予每个分区上的读/写权限。

为了最大限度使用固定域名服务器,我们需要权衡每个域名记录的成本,不过要确定每个域名的成本是一项复杂的任务,因为我们想实现以下所有目标,其中一些是相互冲突的:

1、最小化缓存丢失。这意味着我们不需要预取流行的域名,因为考正常的用户访问流量足以保证它不被清除出缓存。

2、即使我们的服务器正在遭受拒绝服务攻击,但仍然要为流行的域名提供服务在,这意味着我们需要预取流行的域名。

3、避免假域名污染攻击,这意味着我们不能完全依靠域名来选择流量。

4、保持选中的域名更新,我们须臾根据流行度,成本等因素调整候选域名。

域名选择问题的复杂性使得它不能在线完成,因此我们将预取系统分成了两部分:管道组件,它是一个外部运行的,脱机的,周期性的过程,它选择域名提交到预取系统;另一个是运行时组件,定期根据它们的TTL窗口解析选中的域名。

管道组件综合来自各个不同源的域名,主要是Google搜索索引和最近的Google公共DNS服务器日志,根据效益进行排列,效益是各种因素的结合,包括命中率、缓存丢失成本和知名度。管道然后参照TTL成本,重新对所有记录进行排列,从顶部选择所有域名,知道成本预算用尽,管道不断更新选定的域名,运行时组件解析选中的域名记录,并根据它们的TTL设置刷新它们。

Google免费公共DNS服务器提速法宝四:分布式DNS服务集群

对于封闭式解析器,不存在这个问题,但对于开放式解析器,服务器越接近用户越好,他们在客户端看到的延迟会更少,此外,足够的地域覆盖也是保证端到端低延迟的重要手段,域名服务器通常会返回优化后的结果,也就是说,如果一个内容提供商在全世界都托管了他们的镜像站点,该提供商的域名服务器将会返回离访问IP最近的IP地址。

Google公共DNS托管在全球的数据中心中,并使用选播路由将用户转向最近的数据中心。

注意,由于域名服务器根据解析器的IP地址而不是用户的IP地址作为定位依据的,Google公共DNS服务器和其它开放式DNS服务有相同的限制:用户可能不会被定向到本地DNS提供商的服务器。这可能导致某些网站浏览起来仍然很慢。

【51CTO.com译稿,非经授权请勿转载。合作站点转载请注明原文译者和出处为51CTO.com,且不得修改原文内容。】

【编辑推荐】

  1. Google大脚踢向DNS服务器 OpenDNS做出五项回应
  2. Google称自己的公共DNS服务速度更快安全性更高
  3. Google为何推出公共DNS服务器

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...