Knowledgebase: 中文知识库
域名的解析过程是怎样的?
Posted by Li Side on 17 June 2014 02:01 AM
简要讲解一下域名的解析过程,然后结合解析过程分析大家经常遇到的问题。

假设你用浏览器访问 www.hostease.com ,解析过程如下:

1. 首先你的电脑检查本地(你用的这台电脑)是否有缓存,如果有就直接使用
2. 如果没有就发查询请求到本地的DNS查询。这个其实就是你的上网设置里面设置的DNS服务器,默认一般取当地运营商的,也可以自己指定。不要把这个和域名解析里面说的ns混淆。
3. 如果本地的DNS已经有这个域名的缓存,那么就把缓存的记录发给你的电脑。
4. 如果本地的DNS没有缓存,那么它将向根服务器发送查询请求。根服务器将返回域.com的ns及对应的a记录给本地DNS
5. 本地DNS收到以后发送查询请求到域.com的ns,该ns发送hostease.com的ns以及对应的a记录给本地服务器
6. 本地DNS收到以后发送查询请求到hostease.com的ns 查询,返回www. hostease.com对应的A记录,并且缓存改记录。

这样查询就完毕了。

这个是一个简化的过程,实际上涉及到很多缓存,每一步查询,如果有缓存的话就会使用缓存而略过查询。我们只是为了理解域名解析,所以就简化一些说。

缓存是有时间的,超过时间对应的缓存就会失效。

下面我们来说明几个容易混淆的概念:

1. 本地的DNS只是供上网时查询解析记录用,他的记录来自域名的ns或者是缓存,我们无法修改这个上面的记录。
2. 每一级域都有对应的ns (也有叫DNS,所以容易混淆),最高的域是什么也没有,叫根域(用.表示),然后是顶级域 ,例如.com和 .cn ,然后是二级域 .com.cn 等等。而我们通常说的域名的ns,实际上指的就是你的域名的域的ns,也只有这个ns的记录是我们可以修改的。这个一般是由注册商的服务器提供服务的,也 可能是主机商,例如 ns1. sohu.com 。而像根域 ,顶级域 .com域 .cn域都是由对应的管理机构来维护的,例如.cn是cnnic来维护的。
3. 解析的更新和同步问题。通过上面的过程大家就不难理解了,例如12点的时候合肥本地DNS缓存了www. hostease.com 的记录,有效期是1小时,而你在12点30分修改了ns上的记录,然后你去访问www. hostease.com ,得到的其实是本地dns的缓存,也就是通常说的解析还没有生效。这个是合肥的情况。而如果北京那边的本地dns没有缓存或者缓存已经失效,那边的用户访 问得到的就是最新的记录,也就是出现了各地不同步的现象。
4. 注册商(主机商)的ns,也就是你的域名的ns一般也有缓存,这个是为了提升服务器的性能。这个也会延迟域名解析的生效时间。
(8 vote(s))
Helpful
Not helpful

Comments (0)
Post a new comment
 
 
Full Name:
Email:
Comments: