騰訊DNSPod公共DNS體驗報告
上周看到DNSPod官網(wǎng)正式推出了公共DNS服務(wù),并且號稱是國內(nèi)***家支持ECS協(xié)議的公共DNS,于是抓緊時間體驗了下。(其實很久之前就聽聞DNSPod有搞公共DNS的動作,不知道為什么一直沒有正式對外推廣,后來看了服務(wù)介紹,個人猜測可能就是為了等Google的ECS協(xié)議才拖到現(xiàn)在發(fā)布吧。)Anyway,隨著代表騰訊的DNSPod加入,現(xiàn)在BAT三家的公共DNS服務(wù)算是全部集齊!
DNSPod的公共DNS服務(wù)(又稱“Public DNS+”)IP是119.29.29.29,和他家之前推出的移動解析“D+”是一樣的,目測后端應(yīng)該是同一套架構(gòu)。(再吐個槽,怎么現(xiàn)在都喜歡在名字后面搞個+號呢?DNSPod之前出了httpdns叫D+,現(xiàn)在搞公共DNS,又叫Public DNS+,是為了響應(yīng)“互聯(lián)網(wǎng)+”號召么?)
言歸正傳!我特意找了國內(nèi)外幾家知名的公共DNS對比測試,它們是:
114dns: 114.114.114.114
阿里: 223.5.5.5.5
百度: 180.76.76.76
360: 101.226.4.6
Google: 8.8.8.8
從宣傳資料來看,各家賣點都差不多,基本都是快速、準(zhǔn)確、穩(wěn)定、無劫持等等。下面就以這些方面做考量,用實際數(shù)據(jù)說話吧。
1、快速
關(guān)于DNS的持續(xù)測試工具,我簡單選用ping測試。通過測試ping來測試延時,也可以反映DNS的解析延時。
1-1 從全國各地的3大運營商進行ping測試,測試結(jié)果如下:
如上圖,可以清晰地看到Google的公共DNS平均時延極高,達到了174.495ms。果然從大陸訪問Google遠在臺灣的服務(wù)器,速度還是太慢了!
1-2 以下是去掉Google后,國內(nèi)幾家公共DNS的延時表現(xiàn):
DNSPod的公共DNS延時***,為35ms;其次是百度的38.503ms和114的40.195ms;阿里的公共DNS延時***,達到了41.246ms,仍需努力呀!
【結(jié)論】 在國內(nèi),本土4家公共DNS的速度遠遠快于國外的Google。其中DNSPod最快,但與國內(nèi)其他公共DNS差距不算大。至于360,連Anycast都沒有,直接懶測out!
2、準(zhǔn)確
如果運營商沒有各種劫持和NAT的話,毫無疑問運營商的遞歸DNS應(yīng)該是最準(zhǔn)確的,但事實往往事與愿違,也是因為這樣,我們不得不使用公共DNS,因此公共DNS的準(zhǔn)確度,是重要的考慮因素。
理論來講,如果公共DNS能支持Google的ECS協(xié)議,直接把用戶的IP信息透傳到授權(quán)DNS,授權(quán)DNS根據(jù)用戶的IP而不是遞歸的IP來進行智能解析,這樣就可以保證解析的準(zhǔn)確度了。但是據(jù)了解,目前除了國外的Google和Open DNS支持ECS以外,國內(nèi)之前的公共DNS都沒有支持,DNSPod算是***家。
個人認為主要原因應(yīng)該是支持ECS的技術(shù)難度太高:需要每個域名、每個線路、每個IP段單獨緩存,緩存量實在是太大了,而如果不緩存速度又太慢。技術(shù)投入大,而實際收益不高,應(yīng)該是國內(nèi)其他公共DNS對ECS望而卻步的原因。
2.1 各家公共DNS對ECS協(xié)議的支持情況:
經(jīng)過實際測試發(fā)現(xiàn),DNSPod的公共DNS確實如它宣傳的一致,是支持了ECS的!并且支持程度和Google一樣,在接入端和后端都支持ECS。這確實是個驚喜!以后終于可以用著國內(nèi)的公共DNS,享受快速解析的同時也不犧牲解析準(zhǔn)確度了。
另外,國內(nèi)其他4家中,只有阿里的公共DNS在接入端是支持ECS。但說實話,單單在接入端支持ECS對用戶解析準(zhǔn)確度的提升并沒有實質(zhì)性的幫助,還是和使用用戶實際IP一樣依賴后端遞歸DNS的分布情況,只是可以方便用戶對解析準(zhǔn)確度進行測試而已。所以像Open DNS的接入端都沒有支持ECS,只是后端支持。
又有問題來了,當(dāng)用戶解析域名的授權(quán)DNS不支持ECS時,只有公共DNS支持ECS也沒用啊。這時候怎么辦呢?那就只有靠公共DNS的后端節(jié)點部署情況來提升解析準(zhǔn)確度了。
在更多省份的運營商部署更多的遞歸DNS節(jié)點,就可以根據(jù)用戶DNS請求中的IP分配到對應(yīng)的節(jié)點去。當(dāng)某個省份運營商沒有遞歸DNS節(jié)點時,只能將請求分配到鄰近省份同運營商的遞歸節(jié)點上,解析準(zhǔn)確度會受到一定影響。簡單來講,就是“節(jié)點越多,解析越準(zhǔn)確!”。
從各家公共DNS的官網(wǎng)上看了下后端遞歸DNS節(jié)點的部署情況,發(fā)現(xiàn)DNSPod的節(jié)點部署竟然也是最多的!
2.1 各家公共DNS節(jié)點情況:
如上,在國內(nèi)幾家公共DNS中,DNSPod的公共DNS無論是總結(jié)點數(shù)還是國外節(jié)點數(shù),都比其他家高得多。(百度的節(jié)點數(shù)沒公布,不知道有多少個。Google沒有國內(nèi)節(jié)點,測試了下國內(nèi)用戶的DNS查詢請求,是路由到了臺灣的解析服務(wù)器。)
【結(jié)論】DNSPod的公共DNS在接入端和后端都支持ECS協(xié)議,準(zhǔn)確度等同Google,速度又比Google快。另外DNSPod密集的節(jié)點部署,進一步保證了解析準(zhǔn)確度,Public DNS+確實值得推薦!為良心產(chǎn)品點贊!
3、穩(wěn)定
因為無法知道各家公共DNS的具體架構(gòu),所以我用dig測試和ping測試丟包率來看下各家公共DNS服務(wù)的穩(wěn)定性(未測試360)。
dig測試來看,BAT和114都部署了多個國內(nèi)接入節(jié)點,且每個接入節(jié)點都是多臺服務(wù)器組成的集群,都用同一個IP使用BGP Anycast接入,不管是單服務(wù)器故障還是單節(jié)點故障,都可以快速切換,穩(wěn)定性上應(yīng)該是都有保障的。Google的話,因為國內(nèi)沒有服務(wù)器且經(jīng)常受到防護墻的干擾,穩(wěn)定性欠佳。
3-1 ping測試的丟包率,各家公共DNS結(jié)果如下:
從ping測試的丟包率來看,國內(nèi)各家公共DNS丟包率都差不多,DNSPod、阿里、114的丟包率都在1%左右,百度丟包略高為2.286%。
Google的結(jié)果就慘多了,半夜之后好點在30%左右,白天和上半夜在70%左右,整體丟包率為50%左右,縱是真愛也真心不敢推薦使用。
【結(jié)論】 DNSPod、阿里、114和百度4家的公共DNS服務(wù),在穩(wěn)定性沒有看出明顯差別,大家都可以放心使用。
4、無劫持
所有公共DNS都宣稱自己無劫持,這個功能不太好測試,但是實際使用中確實沒發(fā)現(xiàn)明顯的惡意劫持,就算都過關(guān)吧。
以上就是我對市場上幾家主流公共DNS服務(wù)進行的實際體驗報告。最終發(fā)現(xiàn)新出的“Public DNS+”(騰訊DNSPod的公共DNS)確實不錯,無論速度、準(zhǔn)確度、穩(wěn)定性都可圈可點,與其他家相比都不遜色甚至略強。感興趣的不妨把DNS改為119.29.29.29試試吧。