http://www.sigma.me/2011/01/01/about_dns_soa.html
今天登入google webmaster,发现有好多crawl错误,一看,都是Domain name not found,连sitemap都是如此,感觉比较严重,于是搜了下该错误,发现还是挺多人碰到该问题,但貌似都没有说什么具体好的解决方法,但有一个回答里提到了一个DNS网站分析网站http://www.intodns.com,于是,试着分析了下我的网站DNS信息,发现竟然有个大红的警告信息,一看是SOA有问题,貌似是我的域名所用的两个DNS服务器ns01.domaincontrol.com,ns02.domaincontrol.com的SOA域信息(主要是序列号)不一致所致,一看具体记录信息,一个是2010122301一个是2010122401,导致google crawler无法验证我的dns服务器。
之后,我想到这应该是由于godaddy自动分配给我的DNS服务器有问题,于是,我想应该换个DNS服务器,但换几个好呢,于是试着查了下grapeot.me的DNS信息,发现其DNS没有错误,于是也把我域名的DNS服务器改成了他所用的ns51和ns52。改好后,等了几分钟貌似就生效了,查了下,貌似没问题,recrawl,成功crawl了!
下面就简要的介绍下 DNS 的 SOA记录吧:
在任何 DNS 记录文件(Domain Name System (DNS) Zone file)中, 都是以SOA(Start of Authority)记录开始。SOA 资源记录表明此 DNS 名称服务器是为该 DNS 域中的数据的信息的最佳来源。SOA 记录与 NS 记录的区别:简单讲,NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间的信息.
下面用我的 DNS 的 SOA 记录为例来说明其结构:
The SOA record is:
Primary nameserver: ns51.domaincontrol.com
Hostmaster E-mail address: dns.jomax.net
Serial #: 2010123100
Refresh: 28800
Retry: 7200
Expire: 604800 1 weeks
Default TTL: 86400
源主机(Primary nameserver):
DNS记录文件所在的主机位置。
联系邮箱(Hostmaster E-mail address):
记录主机管理员的联系方式,其中第一个点表示的是@。
序列号(Serial):
格式为yyyymmddnn,nn代表这一天是第几次修改。辅名字服务器通过比较这个序列号是否加载一份新的区数据拷贝。
refresh(刷新):
告诉该区的辅名字服务器相隔多久检查该区的数据是否是最新的。
retry(重试):
如果辅名字服务器超过刷新间隔时间后无法访问主服务器,那么它就开始隔一段时间重试连接一次。这个时间通常比刷新时间短,但也不一定非要这样。
expire(过期或期满):
如果在期满时间内辅名字服务器还不能和主服务器连接上,辅名字服务器就使用这个我失效。这就意味着辅名字服务器将停止关于该区的回答,因为这些区数据太旧了,没有用了。设置时间要比刷新和重试时间长很多,以周为单位是较合理的。
否定缓存TTL(生存期):
这个值对来自这个区的权威名字服务器的否定响应都适用。
一个Microsoft DNS服务器的SOA记录的数据结构如下:
@ IN SOA nameserver.place.dom. postmaster.place.dom. ( 1 ; serial number 3600 ; refresh [1h] 600 ; retry [10m] 86400 ; expire [1d] 3600 ) ; min TTL [1h]