域名DNS服务器设置不能混用多个不同的Name Server

本来一直使用dnspod的域名解析服务的,后来发现国外的DNS服务HE.NET也不错,有一天突发奇想,就是想能不能混用多个DNS 解析服务器,于是就混用了dnspod和HE.NET这两家的NS,现在域名的NS列表变成了如下:

1
2
3
4
5
6
Name Server:NS2.HE.NET
Name Server:NS3.HE.NET
Name Server:NS4.HE.NET
Name Server:NS5.HE.NET
Name Server:F1G1NS1.DNSPOD.NET
Name Server:F1G1NS2.DNSPOD.NET

后来解析生效后网站访问正常,于是暗暗自喜,然而DNSPOD控制台却显示解析错误,然后我通过DNSPOD查看了各地的生效情况,基本都能正常解析到服务器IP上,不过我注意到一个东西,那就是SOA,什么是SOA?“起始授权机构 (SOA) 资源记录指明区域的源名称,并包含作为区域信息主要来源的服务器的名称。它还表示该区域的其他基本属性。”也就是说其指明了哪个Name Server为主要的权威解析服务器,观察各地的解析情况,发现要么只定位到HE.NET的SOA,要不只定位到DNSPOD的SOA,本来以为没有什么,但是通过在线域名DNS诊断服务INTODNS发现了问题,首先每个SOA指定了权威NS服务器的序列号,很明显HE.NET的一组NS服务器和DNSPOD的NS服务器的序列号是不一样的,一般情况下一个域名DNS解析不允许有两个SOA服务器存在,貌似这样会导致NO GLUE问题(在参考了《DNS NO GLUE》这篇文章后,了解到不是同属于一个 TLDs才会出现NO GLUE现象),NO GLUE略微会造成解析上的延迟,不过不是致命的问题,还有就是解析的混乱了,一会SOA是HE.NET一会是DNSPOD的,所以这个问题还是要尽快更正的。

《域名DNS服务器设置不能混用多个不同的Name Server》有12个想法

        1. @未来往事
          理论上利用类似于.htacess这样的规则实现要好于嵌入判断代码到PHP文件实现,当然如果你的域名DNS支持301转向就更好了,一般优先推荐域名DNS转向,其次是类似.htaccess的规则实现,最后才是PHP文件嵌入代码实现,支持转向的免费域名DNS有freedns.ws、zoneedit等。

    1. 我认为是不可以的,因为SOA的缘故,DNSPOD不会让你去改SOA记录,你所设置的DNSPOD的记录不会指向HE.NET的SOA权威服务器,这样容易导致混乱,除非DNSPOD可以设置从服务器,然后拉取HE.NET的SOA信息,或者DNSPOD允许HE.NET读取其SOA服务器的解析信息,HE.NET自身可以设置从服务器,一个域名下只能有一个SOA权威DNS服务器,否则容易混乱(也许解析是正常的)。你可以通过intoDNS对域名DNS进行诊断。

      1. 的确是这样的,两边都不能删SOA,而且DNSPOD里两条NS记录是改不了的。我还是换回DNSPOD算了,另HE.NET不支持泛解析,理由是too many abuse;DNSPOD不像以前那么自由了,负载均衡记录免费最多3条。哪天还是买个付费服务算了,毕竟服务器都是要成本的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据