DNS是用来将域名解析为IP地址的服务。
DNS查询采用分层次的查询结构。以本站域名"noyesno.net"为例,一个基本的DNS查询过程如下:
为了提高查询效率,各个查询环节广泛使用了各种缓存技术。
上面提到的服务器从最顶层往下依次是:
TODO: host文件
根域名服务器显然是带有“基础公益”性质的。
顶级域名服务器主要是出售域名。比如".com"域名多由商业公司拥有,这是一个不小的生意;".cn"这样管制重重的域名是不大受欢迎的;".tk"这样小众的域名则买家寥寥。
Name Server是一个提供了不少可能性的地方。
目前全球共有13台根域名服务器,名字分别为“A”至“M”。
网络上的一个段子怎样摧毁互联网说的主要意思就是破坏这些根域名服务器。
比如".com"和".net"域名的服务器是[a-m].gtld-servers.net
,共13个。
本机可以手工指定想用的DNS服务器。但很多时候,本机的IP地址,包括DNS服务器都是通过DHCP服务自动获得的。
自动获得的DNS服务器理论上应该是离本机最近的——速度最快。但实际上则可能有下面的问题:
这时,就有需要手工指定相对靠谱的DNS服务器。
可是太多选择即无选择,到底该用哪一个好呢。
从速度角度讲,可以用ping
命令简单测试网络延迟。
一个开源工具namebench可以用于DNS服务器速度测试。
国内的使用方案,综合来看,比较好的应该是:
更多国内DNS服务器可以参考 http://www.114dns.com/DNS_List.html
DNS查询的网络延时在100ms左右。慢的话,也可能达到200ms左右。
现在家庭里通常都是通过无线路由器上网,可以在无线路由器里设置DHCP服务器的DNS服务器。
DNS服务器的选择可以参考上面的"免费的DNS服务器"