本文系統整理 DNS 架構、授權機制、封包格式、查詢/回應流程,為網路程式設計打基礎。
DNS 授權與區域
- NIC 授權頂層域,授權機構管理子域。
- 獨立管理的子樹稱為「區域」。每區域需一主用、至少一輔用名稱伺服器。
- 主伺服器必須知根伺服器 IP;根伺服器知所有頂層域授權伺服器。
DNS 封包格式 (12 位元組標頭 + 4 可變區段)
ID | Flags | QDCOUNT | ANCOUNT | NSCOUNT | ARCOUNT | Questions | Answers | Authority | Additional
- Flags:QR(查詢/回應)、Opcode、AA(授權)、TC(截斷)、RD(遞迴期望)、RA(遞迴可用)、Rcode(錯誤碼)。
- 查詢通常 QDCOUNT=1,其餘 0;回應 ANCOUNT≥1。
查詢區段
QNAME (標籤長度+內容, 以 0 結束) | QTYPE | QCLASS
- 例:
gemini.tuc.noao.edu → 6gemini3tuc4noao3edu0
- QTYPE: 1=A (IP 位址)、12=PTR (反向查詢)。QCLASS=1 (IN)。
資源記錄 (RR) 格式 — 回答/授權/附加區段共用
NAME | TYPE | CLASS | TTL | RDLENGTH | RDATA
- TYPE/CLASS 同查詢。TTL 為快取壽命 (秒)。RDATA 依 TYPE 而異 (A 記錄為 4 位元組 IP)。
掌握 DNS 封包結構是實作解析器、攔截分析工具的關鍵。