CS KAIROS · LEARNING LIBRARY

M04-02 · DNS 列舉

DNS 像網路聯絡簿:查名稱、找位址,也查看郵件與名稱伺服器的設定。把查到的設定和服務實際運作分開,就能寫出清楚的盤點紀錄。

一、找到網站地址,接著確認什麼?

想像你要找一家店。聯絡簿寫著地址,能幫你找到位置;店有沒有營業,還要另外確認。DNS 也很像:它回答名稱對應的資料,網站能否開啟、誰能登入,則要各自查核。

下面是自建實驗室的合成資料,沒有執行真實查詢。example.test 是示範名稱,192.0.2.10 是文件用位址;練習時換成你獲准的實驗資料。

先讀三筆設定

A 告訴你 www 的 IPv4 位址;CNAME 表示 shop 是指向 www 的別名;MX 指定收信主機 mail,10 是優先順序,數字較小的優先。

這些結果可以列入 DNS 資產盤點。要確認網頁或郵件真的可用,再做獲准的服務測試;管理權限也另行確認。

www.example.test.   A       192.0.2.10
shop.example.test.  CNAME   www.example.test.
example.test.       MX      10 mail.example.test.

二、誰替你查?誰管理正式資料?

DNS 列舉就是查詢不同類型的記錄,把名稱、位址與伺服器線索整理出來。查詢的對象與時間要一起記下,才能比較結果。

遞迴解析器像代查人員:替你找答案,也把結果暫存為快取。權威伺服器則管理某個區域的正式資料。區域(zone)是一份由同一組權威管理的 DNS 資料範圍,可能只是網域的一部分。

傳統 DNS 使用 UDP 或 TCP 53;TCP 也支援一般查詢。這裡描述傳統傳輸,實際環境也可能採其他 DNS 傳輸方式。DNS 概念 · 訊息與記錄

一次查詢,留下四個重點

這是判讀順序;回應可能來自快取,也可能需要繼續查詢。

  1. 選對象

    記下要問哪台 DNS、查詢名稱和類型。

  2. 看回應

    先看狀態,再看 Answer 與 Authority 區段。

  3. 記設定

    保存回傳的位址、別名或其他欄位。

  4. 分開驗證

    網站連線、郵件投遞及登入權限各自測試。

三、聯絡簿裡有哪些欄位?

同一個名稱可以有不同類型的記錄。先選你要回答的問題,再選記錄類型。A 和 AAAA 分別查 IPv4 與 IPv6 位址。AAAA 規格

常用 DNS 記錄
類型用來查什麼
A/AAAA名稱對應的 IPv4/IPv6 位址。
CNAME別名指向哪個名稱;沿著別名繼續查。
MX網域的收信主機與優先順序,內容是主機名稱。
NS區域的權威名稱伺服器。
TXT文字資料,例如網域驗證與郵件政策。
SOA區域管理資訊,例如序號及同步時間設定。
PTR反向查 IP 對應的名稱,再與正向記錄交叉核對。

四、答案是空的,要怎麼讀?

查不到資料時,先看完整回應,再寫結論。NOERROR 表示 DNS 回應沒有回報該類錯誤;答案區空白時,仍要查看 Authority(權威資訊)與別名,確認是沒有這種資料,還是請你轉問其他伺服器。

回應與後續確認
回應這次可以怎麼記
NXDOMAIN回應指出名稱不存在。若經過 CNAME,要核對指的是哪個名稱。
NODATA名稱存在,所問類型沒有資料;它是回應的判讀結果,不是獨立錯誤碼。
SERVFAIL伺服器處理解析時發生問題,保留回應再找原因。
Timeout等待期間沒有收到回覆;連線、伺服器或其他原因待查。
選讀:NOERROR+空 Answer,也可能是轉介

NODATA 常見表現是 NOERROR 且沒有所問類型的答案。Authority 中的 SOA 與其他內容可協助判讀。若回應是 referral(轉介),Authority 可能列出下一組 NS,要繼續詢問才能取得答案。

因此要一起看狀態、Answer、Authority、別名鏈及查詢對象。某些情況需再查一次才能確定。RFC 2308

同一名稱,為什麼查到不同答案?

TTL 是記錄可被快取的時間。快取尚未更新、TTL 剩餘時間、內外網提供不同資料,或你詢問不同 DNS,都可能讓結果不同。

每筆保存時間、伺服器、名稱、類型與完整回應;換網路或伺服器時另記一筆。這樣能比較條件,而不是只留下最後一個 IP。

五、在自己的實驗環境查一筆

網頁補充:以下是可選的練習指令,與上方合成結果分開。準備安裝 dig 的電腦,以及獲准查詢的 DNS 實驗伺服器與 example.test 區域。先約定目標、記錄類型、時段、查詢量與停止條件。

192.0.2.53 只是示範 DNS 位址,請替換成獲准的主機。這裡沒有執行指令,也不預填你的查詢結果。

在本機終端機,一次查一種類型

@ 後面指定詢問的伺服器;名稱後面指定 A 或 AAAA。每一行執行完先保存完整回應,再繼續。

dig @192.0.2.53 www.example.test A
dig @192.0.2.53 www.example.test AAAA

看完回應,再填觀察

先找 status,再看 QUESTION 是否問對名稱與類型;查看 ANSWER、AUTHORITY、SERVER、查詢時間和 TTL。這裡保留完整輸出,比只看短答案更方便辨別轉介與無資料。

如果 A 回傳位址,而 AAAA 經完整判讀為 NODATA,可以記「這台 DNS 在這次查詢提供 IPv4 位址,沒有提供該名稱的 AAAA 資料」。要知道網站是否可用,再於授權範圍測試對應的網頁服務。

完成後保留去識別的紀錄;本練習只查詢,不需要修改 DNS 設定。

六、一筆查詢與整區複製,分別管理

AXFR 是區域傳送,用來把一個區域的完整資料同步給另一台 DNS。它像複製一份區域聯絡簿;已委派出去的下層區域,其完整資料由另一份區域管理。AXFR

一般記錄查詢與 AXFR 測試分別確認許可。本課保留區域傳送概念,不執行第三方探測。防護時限制接收區域傳送的對象、使用適當驗證,也限制誰能使用遞迴與快取查詢。

選讀:BIND 的設定檢查方向

可檢查 allow-transfer、allow-recursion、allow-query-cache 等設定,並依部署需求使用 TSIG 等驗證機制。要看實際版本、套用層級與設定內容,再判斷有效政策;這裡不假設所有版本有相同預設值。ISC BIND 參考

選讀:快取線索與 DNSSEC

Cache Snooping 是從快取回應推測哪些名稱曾被查過。共用快取、預先載入等因素都會影響結果,對某個人的行為判斷需要其他證據。

DNSSEC 用簽章支援資料來源驗證與完整性檢查;查詢內容的保密由其他機制處理。使用 NSEC 的簽署區域也可能透露名稱間的線索。公開記錄與資源存取權限仍分別管理。DNSSEC

七、小檢核:用一句話說清楚

同一台 DNS 回覆 www.example.test 的 A 是 192.0.2.10,查 AAAA 則得到 NODATA。請用一兩句話說明:目前確認了什麼?要知道網站能否開啟,還要查什麼?

這是一題待回答的教材檢核;網站不會自動送出答案或更新理解狀態。下一個核心是 M04-03 FTP 列舉。

概念 Q&A

待補:收到相關問題後,會整理為匿名教學版。