网站导航:首页-计算机网络知识-DNS服务器如何解析域名

DNS服务器如何解析域名

  在给大家举例之前,首先介绍几个名词:

  DNS服务器:DNS(Domain Name Server,域名服务器)是把域名与IP地址对应转换的服务器。DNS中保存着一张域名与IP地址相对应的表,用于将域名映射为对应的IP地址,这个过程称为域名解析。

  local DNS:我们计算机上设置的DNS服务器,当有解析请求的时候,计算机会向这台指定的DNS服务器查询IP地址。

  公共DNS:一些域名解析商提供给我们使用的,可以用做local DNS的服务器。

  根域DNS服务器:根域DNS服务器主要是管理互联网解析的主目录,全球只有13台,1台主根服务器在美国,其余12个为辅助根服务器,9个在美国,欧洲2个,位于英国和瑞典,亚洲一个位于日本。

  hosts文件:hosts是一个没有扩展名的数据库文件,可以用记事本等工具打开。其作用就是将一些域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中登录一个网址时,系统首先会从hosts文件中寻找对应的IP得知,一旦找到,系统会立即打开对应网页,如果没找到,则系统会在将域名提交到DNS服务器进行解析。


  为了方便理解,下面直接举一个例子,相信大家通过读这个例子,就能了解DNS服务器解析域名的过程。

  现在有一台计算机接入了互联网,那么ISP就会分配一个DNS服务器给我们使用,这台DNS服务器是由ISP创建的,它一般不是我们要访问的域名的权威服务器。我们上网时所默认使用的DNS服务器就是ISP提供的这个。不过我们也可以手动修改这个DNS服务器为其他公共DNS服务器,或是自建的DNS服务器。这个在网络设置中填写的DNS服务器成为local DNS服务器。

  当某台计算机要查询www.rivalsa.cn这个域名的IP地址时,首先计算机会检查当前机器本地是否有这个域名的缓存(例如hosts文件中的缓存),如果有,则直接返回本地缓存中的IP地址,此时域名解析结束。如果本地没有找到这个域名缓存的IP地址,那么进入下一个步骤继续查询。

  当在本地没有找到对应域名的缓存时,系统会向本机指定的local DNS发送查询请求,local DNS收到请求后,会首先检查服务器中是否有这个域名的解析记录(可能是缓存的记录,也可能这台DNS服务器本身就是这个域名的权威DNS)。如果找到对应的记录,则直接返回对应的IP地址,域名解析完成。

  如果在local DNS中找不到对应的记录,local DNS会从配置文件里面读取根域(.域)服务器的地址(对于互联网来说,全球共有13台根于DNS服务器,他们的地址是固定的),并向其中一台根域DNS服务器发起查询请求。

  根服务器拿到这个请求后,首先在自己的服务器中查询是否有这个域名的解析记录,但发现并没有www.rivalsa.cn这条域名的记录,不过服务器中存在cn.域的NS记录,于是便返回了cn.域的NS记录。

  接下来local DNS再向得到的cn.域的DNS服务器再次发起请求,cn.域的DNS服务器会查询是否有这个域名的解析记录,但发现并没有www.rivalsa.cn这条域名的解析记录,不过服务器中存在rivalsa.cn.域的NS记录,于是便返回了rivalsa.cn.域的NS记录。

  local DNS继续向rivalsa.cn.域的DNS服务器发起查询请求,此时这台DNS服务器中查询到了www的这台主机(即www.rivalsa.cn)的IP地址。于是将相应的IP地址返回给了local DNS服务器。随后local DNS服务器会将这个IP地址返回给了我们,并且把这个记录保存在自己的缓存中。 如果遇到再次查询这个域名的IP地址,则会在缓存没有过期的情况下直接返回缓存中的IP。(若缓存已过期,则需要重新从根域开始重新查询,而缓存的过期时间是多久,是由域名解析的权威服务器所设置的。)

已经到本页底线啦,您可以:返回目录页|返回首页