提醒:本页面将不再更新、维护或者支持,文章、评论所叙述内容存在时效性,涉及技术细节或者软件使用方面不保证能够完全有效可操作,请谨慎参考!

前面有篇文章 《域名DNS服务器设置不能混用多个不同的Name Server》 介绍的是关于域名Nameserver不能混用的问题,但是后来发现自己的一些想法有些绝对了。

其实稍微有些高级的域名DNS服务器都提供Primary DNS(Master DNS)和Secondary DNS(Slave DNS),顾名思义,域名NS分为两种模式,一种是首要DNS服务器(Primary/Master),一种是辅助DNS服务器(Secondary/Slave),也称为主DNS和从DNS。之所以前面那篇文章介绍不能混用,是因为不能混用多个不同的主DNS服务器,因为一个主DNS服务器拥有一个起始授权机构(SOA),多个主DNS混用必然导致SOA混乱,进而容易造成解析混乱。假如我们想利用多家DNS服务商进行冗余解析,那该怎么办呢?其实很简单,我们只需要保证一个Primary DNS,其余的都是Secondary DNS就可以了,对于不同的DNS服务商来说,从属DNS和主要DNS通讯的方式就是AXFR。什么是AXFR,准确的说AXFR是一种请求(request),是指从DNS服务器请求在主DNS服务器上更新信息的一类域名系统的请求。也就是说我们只需要更新主DNS的解析设置,相关的设置将在设定的时间内被从DNS抓取,所以我们也没有必要再去设置从DNS了。相关的操作又称为Zone Transfer。

国内支持这项服务的免费DNS较少,至少目前我还没有发现,如果你知道的话可以分享一下。国外支持Secondary DNS的免费DNS服务比较多,比如像著名的 HE.NET ,你可以用Free Secondary DNS或者Free Slave DNS为关键字去谷歌搜索一下就能找到一些,关键是好用的免费Primary DNS就比较少了,尤其是支持AXFR的那种,在这里我推荐 zoneedit.com 的服务,免费账户限制域的数量,创建一个新域后到Advanced栏目下,找到Allow-transfer,这里就可以设置允许访问的从DNS权限,只要把你所期望的从DNS的IP地址填进去即可(用英文分号 ; 分割),当然你所申请从DNS的供应商会告诉你允许哪些IP访问。然后在从DNS那里设置zoneedit.com的NS,拥有SOA的那个NS,基本上是数字比较小的,比如我有两个NS,ns4.zoneedit.com和ns12.zoneedit.com,基本上从DNS要访问的就是ns4.zoneedit.com了。

ZoneEdit allow DNS Transfer.png

设置完成后,稍等片刻,基本上所有的从DNS就会自动同步了,同样也不会出现SOA混乱了,同步会共用一个SOA,并且序列号也会统一,以后要修改,也只要修改主DNS即可。