网站导航:首页-计算机网络知识-DNS中的胶水记录

DNS中的胶水记录

  在通过whois查询域名的DNS服务器时,有没有过这样的疑问:为什么某域名的DNS服务器是当前域名的子域名,这种情况不会造成死循环么?也许你无法一下理解我这句话的含义,我在这里举一个例子。域名abc.com的DNS服务器是ns.abc.com,此时,我们需要访问网站http://www.abc.com,由于我们本地与local DNS上都没有这个域名的缓存记录,这时便需要进行递归解析。过程如下:

  (若对递归解析过程不了解,请点击此处查看相关文章)

  1、向全球的13台根域DNS服务器之一请求www.abc.com的IP地址。但由于根域服务器并不知道这个域名的IP地址,于是只能告知com域的DNS服务器的地址。

  2、向com域的DNS服务器请求www.abc.com的IP地址。但com域的DNS服务器也不知道这个域名的IP地址,于是只能告知abc.com的DNS服务器的地址为ns.abc.com。

  3、这时,本应向abc.com的DNS服务器(即ns.abc.com)发起请求,但由于目前并不知道这台服务器(abc.com的DNS服务器)的IP地址,所以无法找到这台服务器,为了找到这台abc.com的DNS服务器(即ns.abc.com),必须要先解析abc.com的DNS服务器的域名(即必须先解析ns.abc.com)。在解析ns.anc.com时,由于缓存中没有对应的信息,所以还要从根域开始解析,即重复步骤1。

  4、重复步骤2。

  5、重复步骤3(即步骤1)。

  6、重复步骤4 (即步骤2)。

  7、重复步骤5(即步骤1)。

  8、重复步骤6(即步骤2)。

  ······

  根据上述分析,这种情况就会导致解析陷入死循环(就是一个鸡生蛋,蛋生鸡的问题),为了打破这个死循环,我们就需要在域名的上一级中配置好DNS服务器的A记录,这就是胶水记录(glue records),举例如下:

  解析记录

  test.example.com. IN NS ns1.test.example.com.

  test.example.com. IN NS ns2.test.exanple.com.

  ns1.test.example.com IN A 1.1.1.1

  ns2.test.example.com IN A 2.2.2.2

  上面解析记录的后两条就是胶水记录。example.com的DNS服务器不仅告知了负责解析test.example.com的两个DNS服务器,同时告知了这两台DNS服务器的IP地址。那么我们继续思考一下,这两条胶水记录是否需要在com域中注册呢(即是否需要在com的DNS服务器中添加这两条记录)?这里是不需要的,因为当域名解析到example.com的DNS服务器时就可以得知test.example.com的DNS服务器地址以及DNS服务器的IP地址。但是,我们考虑本文开始时那个例子呢?

  解析记录

  abc.com. IN NS ns.abc.com.

  ns.abc.com. IN A 1.2.3.4

  这条胶水记录应该添加在那个域中呢?应该是添加在com域中的,com域的DNS服务器告知abc.com的DNS服务器,也告知abc.com的DNS服务器(即ns.abc.com)的IP地址。这种情况下是需要在com域添加胶水记录的。

  刚刚的两个例子中,第一个是要在example.com的DNS服务器上添加胶水记录,第二个是需要在com的DNS服务器上添加胶水记录,他们之间的不同就是后者的DNS服务器不在我们自己可控制之下,而一般大多数自建DNS服务器都需要使用的都是后者的这种方式,所以自建DNS服务器时需要通过对应的注册局(在注册商处申请即可)。

  不过,这里要提醒一下,即使在上一级的DNS中加入了胶水记录,在使用时仍然要在当前的DNS中在再添加一次A记录哦~


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