扯扯DNS解析的流程

来源:互联网 发布:网络兼职被骗报警程序 编辑:程序博客网 时间:2024/05/10 23:17
DNS(Domain Name System) 简单点来讲就是域名翻译成对应IP的处理过程中。DNS服务器中保存着从域名到IP的映射关系,其中一个域名对应着唯一的一组IP地址,一组IP地址可以对应多个域名,只用这个IP地址可以解析多个域名即可。

DNS除了在完成将域名翻译成IP的本职工作之外,实际在使用过程中也可以借助DNS这个特点,也常被用来干点其他的副业,可以简单总结如下:
1、负载均衡
在配置域名解析的时候,通常会配置一个域名对应一组IP地址。DNS服务器在实际处理域名解析的过程中,会从配置的一组IP地址中,随机返回其中的一个。这个域名解析的过程,实际就实现了简单的负载均衡,满足对负载均衡的需求不是很高的场景。当然,如果DNS服务器支持其他的负载均衡算法的话,那对负载均衡的支持也将更加的彻底。在这里需要明确的是,此处所指的DNS服务器是指申请域名时,由那个DNS服务器来解析这个域名,这类DNS服务器比较常见的DNSPod,在整个DNS解析过程中也只有这个的DNS服务商是你可以自由选择的;
2、就近接入
跨网(运营商)或者跨地域访问会加大网络请求的时间消耗是基本的通识。对于一些大型的服务或者网站,通常会在全国各地部署多个节点或者多个运营商提供服务,如果在用户访问时,将用户引导到对应的运营商或者比较近的运营商,相当于完成了对用户请求的就近接入。DNS服务器接收到域名解析请求时,判断出用户所在的地域和运营商,读取DNS配置文件,检索出用户访问最快的服务节点,用户拿到服务节点之后,直接向该网站服务节点发起服务请求,请求访问网站数据,至此完成了用户请求的就近接入。

下面来详细介绍一下,从用户在浏览器中输入网站(www.baidu.com)开始的DNS解析流程,具体流程参见下图:

1、DNS客户端查询“本地缓存”是否存在该域名记录的缓存,存在直接返回缓存中所对应的IP地址,否则继续查询;
     本地DNS的查询以及清楚方法:
     1)查看方法:ipconfig /displaydns
     2)清楚方法:ipconfig /flushdns
2、查询计算机中的host文件中是否配置了域名与IP地址的映射关系,正常情况下此处为空,Window下hosts文件的具体路径为:C:\Windows\System32\drivers\etc
3、Web浏览器中的DNS客户端向ISP DNS服务器请求进行域名的解析工作
4、ISP DNS查询缓存中是否存在域名与IP的映射
5、ISP DNS演变为DNS客户端向根(.)域名查询 顶级域(.com)的IP
6、向顶级域(.com)查询 二级域名(qq.com)的解析IP
7、向qq.com解析服务器查询www.qq.com的IP地址

补充说明:
     1)流程中的ISP DNS服务器并不是一定是ISP 的DNS服务器,而是任意可以完成ISP DNS同样功能的DNS服务器,Window或者Linux均可以设置本机的DNS服务器,设置方法请见百度;
     2)二级域名(qq.com)是由114DNS、DNSPod、GoogeDNS以及数不胜数ISP的DNS服务器,上面提到的DNS的负载均衡和就近接入等功能就是在这个层面进行支持的
     3)据了解到的BAT三大巨头,均根据自己的业务特性开发了自己的一套DNS服务,来保证DNS解析的高效、安全、功能多样;
     4)上述流程中6、7、8的详细流程可以采用:dig +trace www.baidu.com的命令来查看各个解析流程;

网站正常访问过程中插入广告是如何做到的呢?
网站展示中被插入运营商的广告,可以被理解为HTTP劫持。在网站访问过程中,使用的是基于TCP的HTTP协议。数据传输是明文文本,运营商可以很方便的识别出HTTP请求。运营商从网站服务商的服务器接收到请求之后,再返回给用户Web浏览器的HTTP内容插入js等内容,做到插入运营商广告的目的。针对这种行为采取修改本地DNS代理服务器的方式是无法规避的。毕竟,DNS服务器返回的仅是网站服务器的地址,请求网站的详细内容,仍然要经过运营商的交换机、路由器等设备,在任何一个环节都有可能被运营商给修改掉。
0 0
原创粉丝点击