DNS原理(DNS&Host)

DNS:Domain Name System域名系统

客户端查询DNS的过程是:本地host文件---本地缓存----DNS服务器

具体流程如图:

了解上述过程,我们将焦点转到Host.

  Host文件用于本地DNS解析,并且优先于寻找网络上的DNS服务器,在Windows中,它的目录通常在[Windows目录]\system32\drivers\etc\下。

  截个图贴出来Host文件:

  Hosts文件是一个纯文本文件,用记事本就可以将其打开。这个文件是根据TCP/IP for Windows 的标准来工作的,它的作用是包含IP地址和Host name(主机名)的映射关系,每段只能包括一个映射关系,IP地址要放在每段的最前面,后面写Host name(主机名),中间加个空格。如:127.0.0.1 localhost.
  我们知道,当电脑访问网站时,首先通过DNS服务器把网络 域名解析成IP地址后,我们的计算机才能访问。如果每个域名请求都要等待域名服务器解析后返回IP,访问速度就会比较慢,而Hosts文件正可以解决这个 问题。在进行DNS请求以前,Windows系统会先检查Hosts文件中是否有这个地址映射关系,如果有则调用这个IP地址映射,如果没有再向DNS服 务器提出域名解析。

  对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,这样当我们输入域名计算机就能很快解析出IP,而不用请求网络上的DNS服务器。
如果某个网站带有恶意木马或者病毒,你完全可以将其屏蔽掉,只写上IP地址,而不写上域名,还可以用#跟上说明文字.如:127.0.0.1 #屏掉           呵呵!

 

另外附上一个小故事,是我的同事伟强分享的,说在DNS团队初期,他们用的是Host存放这种映射关系,但是随着用户的增多,发现host文件嗷嗷大,如果用多个host,文件多了麻烦自然就来了,因此他们搞出来DNS用来干这个事情。

这里给一个开源社区的讨论组一个人的回复,我想对于继续学习可能是个启发点,这里记录下来:

论坛网址:http://www.oschina.net/question/159037_69600

网友窦智:

hosts速度快,不依赖网络,不用担心DNS服务器挂了。

刚开始我内网200多台机器就是靠puppet分发hosts来搞的。后来又换成了内网DNS的方案,感觉还是集中化管理方便一些。

posted @ 2013-07-25 13:54  rainbow1987  阅读(1568)  评论(1编辑  收藏  举报