其实本文除了找这样一个服务,同时也是为了讨论域名解析上,使用 IP 地址和使用域名的差别。
1. 为什么要找提供 IP 地址的解析服务商
如果我们的 NS 服务器的地址也是一个域名,例如 ns.domain.com
,那么在解析过程中,最终是否也需要也需要去解析 ns.domain.com
所在的服务器 IP 地址?如果是这样,那这个解析过程无疑消耗了一定的时间。
那么除去分布式等问题,有没有一个 NS 服务商可以直接提供 IP 地址呢?
2. 如果 NS 服务器的域名也有解析缓存,那么是否应该使用热门的 DNS 呢?
这个问题可能有点绕,这个问题的前提是在上一个问题成立的情况下,简单的说,例如 DNSPOD 使用的人比较多,那 f1g1ns1.dnspod.net
这个域名在各个节点都有解析缓存了,那么当我的域名使用 DNSPOD 解析时是不是就降低了再去解析 f1g1ns1.dnspod.net
的几率,从而提高了解析速度。
以上是一些关于 NS 的脑洞,不确定我的认知是否正确,欢迎大家讨论。
1
sumhat 2015-07-08 23:36:09 +08:00
DNS 有缓存
DNS 有缓存 DNS 有缓存 |
2
wy315700 2015-07-08 23:37:31 +08:00
|
4
LazyZhu 2015-07-08 23:39:01 +08:00
|
5
abelyao OP |
6
sumhat 2015-07-08 23:42:29 +08:00
@abelyao DNS 的缓存不仅限于 DNS 解析服务器,比如你的机器要解析 domain.com,它会先请求它指定的 DNS 服务器(如 1.1.1.1),如果 1.1.1.1 中有 domain.com 的数据,它就直接返回了,根本不会去 ns.domain.com;若没有,它会请求它的上级服务器(如 2.2.2.2),直到上级服务器上根服务器,才会去 ns.domain.com 解析。所以你用哪个 DNS 提供商,和解析速度没有必然联系。
|
7
cevincheung 2015-07-08 23:43:08 +08:00
@abelyao 可以
|
8
abelyao OP @sumhat 如果到了根服务器都没发现记录,需要到 `ns.domain.com` 去找我的 `abc.com` 的记录时,然后恰巧全部节点都不存在 `ns.domain.com` 自己的记录,那是否需要先解析 `ns.domain.com` 这个 NS 域名,然后得到结果后,再去解析我要访问的 `abc.com` 对应的记录呢?
|
10
abelyao OP @cevincheung @sumhat 谢谢 :)
|
11
XiaoxiaoPu 2015-07-08 23:58:09 +08:00 2
在没有缓存的时候,是要先解析 ns。一般 NS 服务器的域名是 Glue Records,解析层数比较少。DNSPOD 企业版 NS 是 Glue Records,免费版不是,所以用免费版可能解析时间会长一点。
|
12
abelyao OP @XiaoxiaoPu 赞!有没有什么办法可以判断 NS 域名是否为 glue record 呢?
|
13
wmhb 2015-07-09 00:14:24 +08:00
有没有办法让DNS缓存永不过期,或者是在即将过期的时候,马上刷新。
|
14
abelyao OP @wmhb 考虑到各运营商可能无视域名 DNS 缓存时间的设置,最简单的方法应该是写个定时任务,每几分钟自己访问一次域名吧…
|
16
yangqi 2015-07-09 00:36:31 +08:00
当然可以了, 但是域名更加直观易于识别, 而且更换服务器ip方便多了
|
17
XiaoxiaoPu 2015-07-09 00:43:15 +08:00
@abelyao 向 a.gtld-servers.net 查询看是 ADDITIONAL SECTION 否返回 A 记录,对比
dig @a.gtld-servers.net ns1.dnsv5.com 和 dig @a.gtld-servers.net f1g1ns1.dnspod.net 的结果就看出来了 |
18
abelyao OP |
19
CinderellaCiCi 2015-07-09 01:37:48 +08:00 via Android
胶水记录 Glue record
NS一般都有这个的,你可以去一些诊断ns的网站都能看到提示。 CloudXNS每组服务都有胶水记录,有些其他免费服务可能没有,可以自行比较感受下。 |