快捷搜索:   nginx

自建DNS解析及Glue Record 自建DNS解析域名

对于有自建DNS服务器,并想对外提供服务的,不是说建好DNS服务器,并把自己域名绑定到DNS服务器上(比如绑成ns1.bnxb.com),然后让别人把他们的域名的DNS记录做到你的DNS服务器域名(ns1.bnxb.com)上就行了,还需要去你的域名注册商,比如我们的bnxb.com注册商godaddy那边提交一个glue info用来告诉上层DNS服务器,所有访问这个NS1.BNXB.COM的都定义到某个IP上

DNS组织形式是树状的:访客发起对一个域名的访问都是先从根域名服务器开始,域名最顶端是一个全球根,然后往下到顶级域名的根服务器(COM,NET等等顶级域名),再然后就是到授权子域的服务器.(这个可以没有),再然后就到了可以访问子域域名(如bnxb.com)的解析服务器(这里就是所谓的glue info)

举个例子:

访客访问www.bnxb.com,理论上要经过如下几步域名服务器解析来得到访问路径结果:

1:[a-m].root-servers.net.(根域名服务器)

2:[a-m].gtld-servers.net.(顶级域名服务器)

3:f1g1ns[1-2].dnspod.net.(域名指定的NS服务器,我们用DNSPOD,当然这里是可以指定为你自己要求的任意DNS服务器,这一步要自定义为你自己域名的NS服务器就要求在域名注册商那边设置glue记录,比如我们想用ns1.bnxb.com做为记录就必须设置这个记录)


至于为什么必须设置这条记录,我们以qq.com为例,QQ域名使用的DNS服务器是自己设置的ns1.qq.com ns2.qq.com这样的形式,那按一般规律按上述查询不就陷入死循环了么?因为要知道 ns1.qq.com 对应的IP就需要到 qq.com 的NS服务器去查询,而这个服务器又是 ns1.qq.com ,如此周而复始下去……,为了避免这个情况产生所以需要提供一个glue记录,这个记录告诉上层DNS服务器也就是2:[a-m].gtld-servers.net.(顶级域名服务器),我用的解析服务器是NS1.QQ.COM,这个服务器对应的IP地址是xx.xx.xx.xx,你遇到需要解析这个地址的话,直接给我定向到IP上。这样就完美解决了。


至于怎么设置glue记录,我们用到的域名DNS都是需要到域名注册商那里去注册glue记录的,否则无法正常使用。在Godaddy中可以通过Host Names设置,万网叫注册DNS。

blob.png


下面我们看看查询过程

在windows的命令提示符下,输入 nslookup qq.com a.gtld-servers.net 即可得到如下结果:

blob.png

里面列出了 qq.com 的NS服务器,以及每个服务器的IP地址。

然后我发现,其实不光是域名的NS为其子域名的情况,只要该NS的域名与要解析的域名的上级DNS相同(即顶级域名服务器相同),都会同时返回NS的IP地址。比如 nslookup bnxb.com a.gtld-servers.net 可以得到:

blob.png

根域名服务器的IP地址是直接保存到系统中的,它在给出顶级域名服务器的记录时,会同时有对应的IP地址。

顶(7)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论