DNS的解析原理不是你想的那样,要是全Internet的主机名全放在你们公司的DNS服务器上解析,那不是累死了。
首先,Internet的域是一个树型结构,根接点由一个"."表示,下面位高层域(例如:cn, tw, com, net, org....),在往下有第二层、第三层或更多的层次,例如www.active.com.cn中cn为高层,com为第二层,active为第三层,www就是主机名了。
DNS是一个巨大的分布式数据库。它是通过名字服务器(name server)提供一个指定的域的信息来实现的。在每个区,至少有两个以上的保存其所在区的所有主机授权信息的名字服务器。所以为了获得www.active.com.cn中www这台机器的IP地址,就必须与active.com.cn区的名字服务器联系。
具体过程如下:当应用程序想查找www的信息,它就与本地的域名服务器联系,进行所谓的重复查询。本地的域名服务器向根域的名字服务器发送一个请求,查询www.active.com.cn的地址;根名字服务器一看不属于自己的管辖区,而是属于cn下的一个域,它就会告诉你去联系一个cn区的名字服务器以获得更多的信息,并发给你一个所有cn名字服务器的地址列表;你的本地名字服务器会继续向这些服务器发送解析请求,而其中的一个一看是属于自己区的,将重复上述过程,直到找到解析www这台机器的域名服务起来获得www.active.com.cn的ip地址。
为了进一步提高查询的响应速度,名字服务器会将其获得的信息存储在本地cache中。这样当再有本地网络希望查询地址属于active.com.cn域的主机地址时,名字服务器将直接和此域的名字服务器联系。
名字服务器不会永久保存这些信息,而是在TTL(生存时间Time To Life)时间后自动抛弃掉。
每个名字服务器都会有一个保存根服务器信息的文件。