[DNS管理系統] DNS的運作及學校切換DNS集中化

URL Link http://n.sfs.tw/12690

2018-09-04 15:58:56 By Axer

DN和DNS簡介

網路上的位址對人類來說是沒有意義的,而且也很難記得住,因此誕生了網域名稱DN(Domain Name), DN是由英文、數字、少數特殊符號及'.'構成的網址格式,例如:

123.test.tc.edu.tw.

DN對人有意義但對電腦來說只認識由數字組成的位址,因此需要一個服務來提供給電腦查詢,這就是DNS(Domain Name System)。

DNS依服務端可分為客戶端(Client)和伺服端(Server),客戶端可向伺服端詢問網域名稱對應的網址或其他的資訊。隨著規格的改變,DNS提供可查詢的服務類型也越來越多樣,運作中的至少有3 40種,例如:

A 位址
AAAA IPv6位址
CNAME 別名
MX 郵件交換
NS 網域名稱伺服器

TXT 文字說明
PTR 反解
SOA 網域初始

SRV 資源

DNS是一個分散式的位址查詢服務。DNS最早於1983年提出,經過幾年之後協定成熟並廣為使用。

DNS的詢問方法只有Recursive(遞迴式)和Iterative(交談式)兩種,簡單的來說這兩種的差異在於遞迴式會用多次的交談式方式把結果問回來

 

DNS 運作流程

假設一個客戶端想連到台中市 xxjh的首頁,他在瀏覽器網址列打上 www.xxjh.tc.edu.tw,理論上他的連線流程會是這樣

1. 瀏覽器透過作業系統呼叫 Local DNS,請求查詢 www.xxjh.tc.edu.tw 的真實位址

2. Local DNS 查詢根DNS伺服器,取得 .tw的DNS伺服器位址

3. Local DNS 查詢.tw DNS伺服器,取得 .edu的DNS伺服器位址

4. Local DNS 查詢.edu DNS伺服器,取得 .tc的DNS伺服器位址

5. Local DNS 查詢.tc DNS伺服器,取得 .xxjh的DNS伺服器位址

6. Local DNS 查詢.xxjh DNS伺服器,取得 www的真實位址,並將結果回傳給使用者的作業系統

7. 瀏覽器取得作業系統查詢的真實位址,直接進行連線。

其中 ❶~❻ 每次都是進行 iterative query, 對使用者來說 Local DNS進行❷~❻的iterative query 就是 recusive query

DNS 集中化

dns 集中化是將上面的第❻步驟收攏到市網的 .tc伺服器中。學校可因此不再需要維護自己網域的網域名稱伺服器。

但是 Local DNS仍不可少,否則校內所有電腦都無法查詢DNS。

 

Cache,到處都Cache

上面可看到一個網址就得進行多次的詢問,當網路流量請求多的時候,會造成DNS負擔,甚至演變成dos攻擊。

為了改良這個問題,dns引入了cache和TTL:

  CACHE:把記錄先存起來,當再有詢問相同記錄時,就直接取用不再向外詢問。

windows cache dns 24小時。[1]
瀏覽器 cache dns 1~30分鐘不等。可參考 [手動清除 Firefox, Chrome的DNS cache] 這篇。

  TTL:ttl就是time to live 的首字縮寫,對DNS server來說,每筆記錄的存活時間就是TTL,也就是DNS Server用的cache。當DNS回應 cache的資料時,你會得到一個 Non-authoritative answer。

Cache 可加速查詢的結果,減少網路流量,但缺點就是不這麼即時。

 

參考資料

[1] https://www.itprotoday.com/management-mobility/how-can-i-configure-how-long-dns-cache-stores-positive-and-negative-responses