域名服务器解析过程及原理
钛金网络(www.tjmsn.com)
第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。;
( `+ X: S5 u, z+ S/ z* j5 b) K
第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。y4 }.
U& ^: P}/ u
第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。/ n) G! p/ _
第五步:重复第四步,直到找到正确的纪录。& A4
r" p( U% u* n3 ]( R
L) [
第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
p8 {
让我们举一个例子来详细说明解析域名的过程.假设我们的客户机如果想要访问站点:www.9125.info,此客户本地的域名服务器是dns.company.com,一个根域名服务器是NS.INTER.NET,所要访问的网站的域名服务器是ns1.lovewebhost.com,域名解析的过程如下所示:
(1)客户机发出请求解析域名www.9125.info的报文, e% M/ h' W2 Y$ z* L! V
/ E; M; x7 I ~+ ]3 x
(2)本地的域名服务器收到请求后, 查询本地缓存, 假设没有该纪录, 则本地域名服务器dns.company.com则向根域名服务器NS.INTER.NET发出请求解析域名www.9125.info
& {/ {& d! ~! d% w
(3)根域名服务器NS.INTER.NET收到请求后查询本地记录得到如下结果:9125.info NS ns1.lovewebhost.com(表示9125.info域中的域名服务器为:ns1.lovewebhost.com), 同时给出ns1.lovewebhost.com的地址,并将结果返回给域名服务器dns.company.com。
# [8 w# v! T" Z
(4)域名服务器dns.company.com 收到回应后,再向ns1.lovewebhost.com发出请求解析域名。www.9125.info的报文。: z
(5)域名服务器ns1.lovewebhost.com 收到请求后,开始查询本地的记录,找到如下一条记录www.9125.info,
(6)客户本地域名服务器将返回的结果保存到本地缓存,同时将结果返回给客户机。
/ V% n
这样就完成了一次域名解析过程。
为了帮助理解,我画了一张图,并把空间、域名的一些关联也画了进去。

G- c2 @* n$ n$ F
理解域名服务器解析非常的关键,这可以帮助我们解决很多问题,比如: x
域名9125.info由服务器Ⅰ解析到服务器Ⅱ,并关闭服务器Ⅰ上9125.info的帐户。 D1 j/ ~) }2 p1 t( k
A是上海电信用户,几小时内访问过域名9125.info/ J# G7 K& ]- o! s
B是上海电信用户,未访问过9125.info
C是上海网通用户,未访问过9125.info
D是北京网通用户,几小时内访问过域名9125.info
结果只有B能访问9125.info是什么原因?
A、D都因为几小时内访问过,所以他们使用的当地域名服务器缓存中保存的都是解析到服务器Ⅰ的数据,而服务器Ⅰ已经被关闭,所以无法访问。
B虽然自己没有访问过9125.info,但是使用同域名服务器的顾客A访问过9125.info,所以缓存中保存的也是解析到服务器Ⅰ的数据,所以无法访问。
C使用的域名服务器上的顾客没有访问过9125.info,所以上海网通的域名服务器会向美国的根域名服务器发出请求,...,然后得到的是修改后解析到服务器Ⅱ的数据,所以该顾客可以访问。
" U, k) J. @& U* S9 y& y9 h2 ]# t! o
A、B、D顾客什么时候能访问网站? k
1.取决于域名商服务器向根域名服务器发送信息频率,如果你修改了,而服务器没有发送,那也是白搭,国外一些域名商通常都是即时发送的。国内不是清楚,但从原理上来看这是前提。
2.在域名商服务即时发送的前提下,取决于TTL的设置,TTL全称Time-To-Live表示域名解析记录在DNS服务器中的存留时间(有些域名商不允许修改而采用某定值),比如设置3600,就是有效时间3600秒也是1小时,1小时后当地域名服务器会重新向根服务器发送请求,TTL是一把双刃剑如果设置的过短,影响网站的打开速度;如果设置的过大,搬空间时,就会造成有些顾客访问到的是旧服务器,而有些顾客访问到的是新服务器,但搬空间毕竟是少数,这里我建议大家设置成86400,也就是24小时,如果需要搬空间就提前修改TTL,可以把值设置的小一点,等解析好之后再修改回来。
我们知道在使用默认ISP域名服务器的前提下,域名解析的生效时间是由TTL决定的。从理论上说,如果我们换掉计算机使用的默认域名服务器,使用一个新的未打开过这个域名的域名服务器,那么我们就可以打开网站。opendns.com使这个理论变成了现实。大家可以用208.67.222.222、208.67.220.220这两个免费的域名服务器替换到自己默认的域名服务器。(操作方法见这里)当然opendns的妙用还不仅在这里,你甚至可以在巨大的opendns缓存中删除域名的记录,http://www.opendns.com/support/cache/,从而忽略TTL的设置