满世界跑一圈,底线发球一路快攻得分的传统套路(LDNS没缓存的域名)
一个陌生的域名请求,本地DNS是没有缓存的,就类似咱们篮球需要从底线发球一样,一步一步稳打稳扎的推进过中场、到篮下,从后卫发起组织攻势,前锋左右逢源,中锋篮下定乾坤,基本上就是这个套路。完整的DNS请求也一样是这个过程,从本地DNS逐级迭代到根域名服务器、顶级域名服务器、授权域名服务器,最后拿到关键信息,IP地址A记录。需要指出的是,根域名服务器基本上都在欧美,根域名服务器的13太保(13组)大部分都在美国。授权服务器基本上散布全球,比如cn的就在中国。所以可以想象一下,如果是一个陌生的域名请求去到本地DNS,基本上需要全球游行示威一圈才能回来。
(DNS解析图)
科比想访问www.abc.com的网站。那么DNS请求的过程如下:
1、科比的主机先向本地LDNS服务器查询。
2、本地服务器LDNS采用迭代查询。它先向一个根域名服务器查询。
3、根域名服务器告诉本地服务器,下一次应查询的顶级域名服务器.com(GTLD-DNS)的IP地址。
4、本地域名服务器向顶级域名服务器.com进行查询。
5、顶级域名服务器.com告诉本地域名服务器,下一步应查询的授权服务器ns1.abc.com的IP地址。
6、本地域名服务器向权限域名服务器ns1.abc.com进行查询。
7、授权域名服务器ns1.abc.com告诉本地域名服务器,所查询的主机的IP地址。
8、本地域名服务器LDNS最后把查询结果告诉科比同学。
看起来有点绕,其实说白了,就是本地DNS服务器在被全世界的根服务器、顶级大佬服务器、授权服务器之间踢来踢去,最后找到组织的故事。
PS:根服务器主要用来管理互联网的主目录,全世界只有13台(这13台根域名服务器名字分别为“A”至“M”),1个为主根服务器在美国。其余12个均为辅根服务器,其中9个在美国,欧洲2个,位于英国和瑞典,亚洲1个位于日本。——度娘说的,我信~,谁让人家是漂亮MM呢
2经典快枪手,一记长传直接暴扣(LDNS有缓存)
看到没,科比一接到长传球,直接就爆扣~!咱们DNS解析也有这个神技哦。大家可以想象一下,如果所有的DNS请求都和上面一样,满世界跑一圈,估计大家没崩溃,那13太保的根服务器早就挂了。这时DNS有一项很重要的独门秘籍——本地DNS缓存,就发挥了至关重要的作用。
(DNS解析图)
PS:从技术出现的时间上看,DNS缓存技术应该也算是CDN的老祖宗了。看起来不是一家人,不进一家门啊~
3花蝴蝶科比满场飞,多点开花(带CDN加速的域名)
带CDN加速的这种客户域名,就多了一层域名调度,这一层域名调度是有CDN运营商的DNS服务器去完成的,这组CDN的DNS服务器在CDN系统有个很帅的名字:GSLB全局负载均衡。GSLB是一个很有技术含量的部件,咱们科比之所以可以全场多点开花,那因为科大侠是耳听八方、眼观六路、身手敏捷的高手,可以在瞬息之间,做出最优的判断~,出手即定乾坤。咱继续卖关子,后面会有一个专门的专题讲GSLB,到时看看科比大侠是怎么玩转全场的~!
(DNS解析图)
4中场断球(DNS劫持)
DNS劫持,就是类似咱们球场被人断球截胡了。为啥被断球了,是因为我们看出你的传球线路,中间插了一杠子。DNS劫持一般都是被人在网络层监听到了你的DNS请求,因为DNS的请求是一个UDP53端口的明文信息,只要可以监听到网络数据就可以劫持DNS请求,然后用一台非法的DNS服务器给你一个误导的解析结果。这种情况一般都是接入网络运营商可以做,比如CMCC。CMCC在全国部署了大规模的透明缓存系统,必定会用到DNS劫持,将流量引导到他们的缓存系统。如果还遇到不规范的网管,还会给你们弹出小框广告。