網路活動

DNS查詢自我檢測方法

一.前言

在資訊科技發達的現代,「網路」已是目前生活中不可或缺的必備品,而DNS是所有網路應用服務之基礎,舉凡網頁服務、郵件服務…等都需要利用DNS查詢,才能順利連結取得相對應的服務,因此,DNS的設定正確與否,顯得格外重要。DNS的設定看似簡單,但,往往有些小細節容易忽略,而造成DNS查詢所獲得的資料時而正確、時而錯誤。目前已有一些DNS檢測網站,可以協助你快速找出DNS的設定問題。而本篇文章,會教你如何自己手動檢查,讓你可以對DNS有多一些了解。

二.示範說明

  1. 網域名稱: twnic.net.tw
  1. dig:在Linux及BSD系統,需要安裝bind-tools套件;Windows系統,可以連結至Internet Systems Consortium(https://www.isc.org/downloads/)下載BIND安裝包,解壓縮後無須安裝,只要拷貝其中的8個檔案即可使用(dig.exe、libbind9.dll、libdns.dll、libeay32.dll、libisc.dll、libisccfg.dll、liblwres.dll、libxml2.dll)。
  2. nslookup:Windows系統內建工具;在Linux及BSD系統,需要安裝bind-tools套件。
  1. intoDNS:http://www.intodns.com/
  2. iis.se:http://dnscheck.iis.se/
  3. mxtoolbox.com:http://mxtoolbox.com/DNSCheck.aspx
  4. dnsstuff.com:http://www.dnsstuff.com/
  1. whatsmydns.net:https://www.whatsmydns.net/
  2. dnschecker.org:https://dnschecker.org/

三.檢測查詢的步驟

DNS是一種階層式的分散管理架構,一般註冊的網域名稱大多屬於第三層(例:twnic.net.tw),DNS查詢時,必須一層一層的往下詢問,直到該層負責的DNS主機回應所查詢的資料。因此,檢測時,也必須一層一層的檢查,以確定是那一個環節出現問題?檢查的步驟如下:

  1. 先查出第二層的NS主機
    使用dig指令:
    # dig @8.8.8.8 net.tw ns

    使用nslookup指令:
    # nslookup
    > server 8.8.8.8
    > set type=ns
    > net.tw

  2. 向第二層(net.tw)的NS主機(任何一台)查詢第三層(twnic.net.tw)的NS主機設定
    使用dig指令:
    # dig @a.twnic.net.tw twnic.net.tw ns

    使用nslookup指令:
    # nslookup
    > server a.twnic.net.tw
    > set type=ns
    > twnic.net.tw
  3. 向第三層(twnic.net.tw)的NS主機查詢NS設定是否與上層一致?(剛才步驟二,查詢到twnic.net.tw在第二層登記了三台NS主機,因此,三台都要檢查)
    使用dig指令:
    # dig @dns.nic.net.tw twnic.net.tw ns
    # dig @dns1.twnic.net.tw twnic.net.tw ns
    # dig @dns2.twnic.net.tw twnic.net.tw ns

    使用nslookup指令:
    # nslookup
    > server dns.nic.net.tw
    > set type=ns
    > twnic.net.tw
    > server dns1.twnic.net.tw
    > twnic.net.tw
    > server dns2.twnic.net.tw
    > twnic.net.tw
  4. 檢查twnic.net.tw的3部NS主機,SOA的資料是否一致?(序號最重要)
    使用dig指令:
    # dig @dns.nic.net.tw twnic.net.tw soa
    # dig @dns1.twnic.net.tw twnic.net.tw soa
    # dig @dns2.twnic.net.tw twnic.net.tw soa

    使用nslookup指令:
    # nslookup
    > server dns.nic.net.tw
    > set type=soa
    > twnic.net.tw
    > server dns1.twnic.net.tw
    > twnic.net.tw
    > server dns2.twnic.net.tw
    > twnic.net.tw
    > twnic.net.tw
    > server dns2.twnic.net.tw
    > twnic.net.tw
  5. 檢查twnic.net.tw的MX記錄(電子郵件服務會使用此記錄)
    使用dig指令:
    # dig @dns.nic.net.tw twnic.net.tw mx
    # dig @dns1.twnic.net.tw twnic.net.tw mx
    # dig @dns2.twnic.net.tw twnic.net.tw mx

    使用nslookup指令:
    # nslookup
    > server dns.nic.net.tw
    > set type=mx
    > twnic.net.tw
    > server dns1.twnic.net.tw
    > twnic.net.tw
    > server dns2.twnic.net.tw
    > twnic.net.tw
    > twnic.net.tw
    > server dns2.twnic.net.tw
    > twnic.net.tw
    > twnic.net.tw
    > server dns2.twnic.net.tw
    > twnic.net.tw
  6. 檢查twnic.net.tw的A(www)記錄(網頁服務會使用此記錄)
    使用dig指令:
    # dig @dns.nic.net.tw www.twnic.net.tw a
    # dig @dns1.twnic.net.tw www.twnic.net.tw a
    # dig @dns2.twnic.net.tw www.twnic.net.tw a

    使用nslookup指令:
    # nslookup
    > server dns.nic.net.tw
    > set type=a
    > www.twnic.net.tw
    > server dns1.twnic.net.tw
    > www.twnic.net.tw
    > server dns2.twnic.net.tw
    > www.twnic.net.tw

四.模擬世界各地查詢的結果

  1. 使用whatsmydns網站查詢的結果
  2. 使用dnschecker網站查詢的結果