選對 DNS,速度快N倍

93a55e64a49a4ae46825d86bc0900202 Domain Name Server簡稱DNS,主要是因為人類記不住60.199.208.210這種IP位址,但是卻可以記住www.techbang.com這種比較有意義的網址,所以需要DNS進行轉換。另一方面,有時也會遇到位址轉換的時候,交由DNS去轉換就好。

DNS的效能瓶頸

先解釋一下重點原理,DNS基本上就是1張超大的表格,裡面填滿了IP位址和網址,只要有人送來「請問techbang.com的實際位置是什麼?」,DNS就會回應「techbang.com的位置是60.199.208.210」資訊。

DNS伺服器還有「分層」以及「快取」的觀念,因為地球是個說大不大、說小不小的星球,若是全部的人均向同一DNS要求域名解析,那麼住得離伺服器較遠的使用者回應時間會很高,目前除了最高等級的13個根(root)伺服器之外,還會再分成區域、國家、網路服務業者、公司等不同層級的DNS,服務當地的民眾。

因為服務區域以及成本的考量,越接近根伺服器的DNS效能越高,表格數越多,越底層的DNS就像是上層伺服器的快取,如果自己沒有techbang.com的資料,就向上一層要求,最糟的狀況就是最後向根伺服器請求。

也許有人會想,那為什麼不要直接向根伺服器請求就好?沒錯,根伺服器的確保有最完整的域名解析資料,但是數量也最少,且絕大多數位於美國,離使用者有段距離,回應時間並不一定比本地附近的DNS快。

另外一方面,快取資料具有「時間」以及「空間」的關聯性,你向DNS查詢的資料,很可能最近也有人查詢過,已經在本地的DNS中留下快取;住在你家附近的使用者,也很有可能跟你上過同樣的網站,以上這2種狀況將DNS伺服器指定為距離較近的主機,能夠獲得更快的回應。

▲在網路連線的TCP/IP設定中,可自行設定2組DNS位址。

DNSBench

首先介紹的是DNSBench這套軟體,這款軟體曾在本雜誌上多次提及,也是筆者經常使用的軟體之一,下載回來就是個可直接使用的執行檔。

DNSBench剛開始執行時會抓取電腦內部所設定的DNS位址,以及世界上大部分公開的DNS位址;使用者也可以利用Nameservers分頁下的Add/Remove按鈕自行添加想要測試的DNS位址。等到軟體抓完位址或是自行輸入之後,便可按下Run Benchmark開始測量。

▲在方框中輸入位址,其它的DNS便可加入DNSBench測試。

軟體預設為升冪排列,會根據3樣測量出來的資訊進行排名,使用者可在伺服器位址後方發現3種顏色的長條圖,綠色長條代表查詢資訊存在於DNS中的回應時間,藍色長條代表查詢資訊不存在DNS中,須向更高層級DNS查詢的反應時間,紅色長條則為.com域名的查詢時間。

▲DNSBench預設為升冪排列,挑前幾個DNS使用就對了。

在某些狀況下,軟體內的DNS位址部分也會出現紅色長條,這代表了部分電腦送出的DNS查詢沒有回應。這表示了2件事,第一,這台DNS可能有過載的情況,無法處理送過去的查詢。第二,你和這台DNS之間的網路可能不穩定,會掉封包,若是發生以上其中1種狀況,就不建議將DNS設定為此類位址。由於升冪排列的關係,越上方的DNS位址就代表反應速度越快,建議使用者直接將電腦預設DNS更改為前幾名的位址。

▲想得知更正確的測試結果,可至Tabular Data分頁中查看。(單位:秒)

namebench

第二套軟體是namebench,下載回來是個自解檔,等程式解壓縮至暫存資料夾後便自動開啟,介面比起DNSBench簡單多了。但其實這是個更在地化、個人化的測試軟體,除了像DNSBench會自動抓取電腦和全球各地的DNS之外,還會自動加入區域性的DNS。更棒的是可以選擇使用者網頁瀏覽器的瀏覽紀錄,作為測試的樣本,找出適合每個人的DNS伺服器。

▲namebench的Query Data Source可以匯入瀏覽器的歷史紀錄,並利用這些歷史紀錄作為測試樣本。

不過這個軟體的測試時間較久,可能長達數十分鐘(視測試樣本數量而定),使用者可以先去看個電視再回來,這個期間請不要使用網路,測試結果會比較準。

軟體跑完之後會開起網頁測試報告,並告訴你若是改採namebench推薦的DNS,速度將比目前系統設定的快多少百分比,下方也是按照升冪排列,還有圖表可供參考,甚至還將DNS請求和回傳的資訊製作成.csv表單,非常的詳盡。

▲namebench測試完畢之後會跳出網頁版結果,並提出更改建議。

▲namebench還產生綜合圖表一起比較各DNS優劣。

▲.csv表格記錄每個DNS查詢以及返回的結果。

讀者若是有空閒時間,不妨將2套軟體均執行過一遍,將測試結果交叉比對一下。

延伸閱讀:

Facebook 連線速度變慢?你也要學會修改 DNS,讓你順暢瀏覽網站

家裡的網路使用固定 IP 會比較快?小編實驗給你看

IPv4 快用完,IPv6 來了!網路位址超多,重點觀念解析、試用給你看

 

本文同步刊載於電腦王雜誌
  
歡迎加入電腦王雜誌粉絲團

使用 Facebook 留言

原來是蜘蛛
2.  原來是蜘蛛 (發表於 2013年6月10日 13:34)
不一樣喔!這篇說的是可以找到效能比較好的DNS server來設定。你說的那篇是簡易更改DNS設定的軟體。
劈你是為你好
3.  劈你是為你好 (發表於 2013年6月10日 14:58)
上一次騙人改dns,這一次又想唬人一次喔!!!

文中圖的範例都不是台灣的,用美國的ip測然後再把hinet的丟進去模糊比對,讓人誤會說用這類的軟體真的dns速度會有差別

真夠怪的!幹馬不把事實真像告訴讀者呢?
在台灣如果是中華電信的,dns一定是hinet自家的最有效率
其他家isp也是如此,根本幾乎沒有這篇所述的情況存在

作者要是有空的話,應該要幫讀者測試一下
到底你說的這二套在台灣不同的isp用戶中去執行,會有什麼樣不同的效果?
tandee
4.  tandee (發表於 2013年6月10日 15:21)
網路品質的不確定性這麼高
測了等下又有人跳出來講跟自己測的怎麼又不一樣
或是酸測試沒有客觀性可言
不論怎麼做都會有人靠腰
R.F.
1人給推

5.  R.F. (發表於 2013年6月10日 16:18)
※ 引述《劈你是為你好》的留言:
> 上一次騙人改dns,這一次又想唬人一次喔!!!
>
> 文中圖的範例都不是台灣的,用美國的ip測然後再把hinet的丟進去模糊比對,讓人誤會說用這類的軟體真的dns速度會有差別
>
> 真夠怪的!幹馬不把事實真像告訴讀者呢?
> 在台灣如果是中華電信的,dns一定是hinet自家的最有效率
> 其他家isp也是如此,根本幾乎沒有這篇所述的情況存在
>
> 作者要是有空的話,應該要幫讀者測試一下
> 到底你說的這二套在台灣不同的isp用戶中去執行,會有什麼樣不同的效果?

這是在公司的網路狀況下測的, 一套建議我換172.24.203.7(公司自己的DNS), 一套建議我換8.8.4.4, 基本上不可能有誰家的DNS最有效率的問題存在.
圖中範例都是國外網址, 就代表了小編經常去國外網站啊! 所以建議我用8.8.4.4也是很正常的, 如果讀者比較常去台灣網站, 軟體建議你更換為其它DNS也是有可能的, namebench會根據個人電腦歷史紀錄而變更推薦的DNS, 就像你絕對不可能使用我們公司的DNS一樣╮(╯_╰)╭

此外DNS也是會有當機和域名挾持的情況發生, 改個號碼沒這麼難吧? 其實HiNet的DNS在台灣也是數一數二快的, 只是偶爾當機的情況一直沒有改善

發表回應

謹慎發言,尊重彼此。按此展開留言規則