分类: LINUX
2011-10-25 11:20:13
转自:
其实这个文章叫大型网站用户定位技术,其实今天要讲的不是智能 DNS ,今天是要讲的智能 DNS 的问题,和一些网站对这个的处理,下面要讲的这个技术主要是针对比较大的文件,比如下载和视频之类。为什么要讲这个,主要是我的群中一些朋友吵着想了解一 下。我答应了非常非常久了。直到现在才有时间给大家分享一下。
我们知道,现在很多网站的 GLSB 都是基于 DNS 来做。DNS 的解析流程如下。我们来看。
比如,我是北京的用户,我的 DNS 为 202.106.0.20.当我要打开 时,先会给请求发给 ISP 告诉我的 DNS.这个叫 Local DNS 。然后其它的向根域和二级域的查询,都是由 Local DNS 帮我完成的。
当一个网站使用了智能的 DNS 后,智能 DNS 服务器会得到 Local DNS 的 IP 来区分用户的来源。如下,发现 202.106.0.20 这个 Local DNS 的地址,然后到自己收集的地址中一对比,是北京联通用户。然后给我解析 cname 到 bj. 这个地址。
这样完成了我最近的用户到最近的网站服务器的目的。
但这个有个小问题,就是当用户设的 DNS 地址不对时,比如现在很多人喜欢使用 google 的 DNS 。时会出现什么样的问题啦?
我们看下面的图片,就会知道。
当使用了错误的 Local DNS 后,用户的定位就不准了。这样会解析到离自己很远的服务器,比如,我使用了 google 的 8.8.8.8 的地址的 Local DNS。这时智能 DNS 只能得到 8.8.8.8 。然后智能 DNS 一查这个地址,是美国。就给解析到国外,我这画的是解析到 hk.。
在 Local DNS 地址不准时,解析基本都是不正常的。这些用户的响应和打开就非常慢。
解决方法,使用 IP 定位。
什么是 IP 定位,见下面的图。图实在不怎么样。不好意思,随手搞了一下。
当我们打开一个地址时,如下,使用了错误的 Local DNS ,但这些 Local DNS 查的智能 DNS 怎么样只会给出少量的地址,比如南方和北方都只有一个,解析的地址这些不会根着地区变化。
解析到的服务器,其实不是真实的服务器,只是一个 IP 调度器。这时客户端就会试着连接这个调度器,但调度器不吐文件,只会吐出一个 302 的响应,转到别的服务器(真实的最近的服务器)。
因为这些用户真实的请求出来到调度器上,不在是 Local DNS 的 IP ,是用户实际的 IP ,这些可以在调度器上在查 IP 的来源。这些就会非常准。
然后在使用 302 定位。更加高级可以使用 tcp 迁移技术
在这个时候调度器可以做得非常强大,象大脑一样,多少量,多少请求,有多少热点,请求了多少文件。
使用上面的技术进行用户定位,优点很明显,定位非常非常精准,可以非常快和高效的定位到合适的资源。但不好的一点也很明显,需多进行一次 302 跳转,处理时间变长了一点点,所以非常合适视频网站之类来使用。
了解更多请搜索“gslb + cdn”