http://www.sigma.me/2011/01/01/about_dns_soa.htmlhtml
今天登入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服務器。web
以後,我想到這應該是因爲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 記錄爲例來講明其結構:dom
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: 86400post
源主機(Primary nameserver):網站
DNS記錄文件所在的主機位置。google
聯繫郵箱(Hostmaster E-mail address):spa
記錄主機管理員的聯繫方式,其中第一個點表示的是@。
序列號(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]