DNS 伺服器是什麼?如何運用?

作者:Hightech   |   2019 / 03 / 08

文章來源:知識力   |   圖片來源:Koko


完整網域名稱(FQDN:Fully Qualified Domain Name)

大家一定都使用過「網址」來連接網際網路,例如:www.google.com、www.hightech.tw、www.ntu.edu.tw 等,這些網址我們稱為「完整網域名稱(FQDN)」,完整網域名稱的總長度不得超過 255 個字母,單項(兩個點號之間)不得超過 63 個字母。

使用網址來連接網路主要是為了方便人類記憶,因為 www 代表「WWW 伺服器」、ntu 代表「National Taiwan University」、edu 代表「Education」、tw 代表「Taiwan」,當大家看到網址 www.ntu.edu.tw 就知道這是位於台灣的一個教育單位——台灣大學的 WWW 伺服器內的網頁內容。

完整網域名稱(FQDN)雖然可以方便人類記憶,但是路由器只認得 IP 位址,卻不認得網址,所以當我們在網頁瀏覽器(例如:Google Chrome、Internet Explorer)的網址列輸入 www.ntu.edu.tw 時,用戶端電腦必須先向 DNS 伺服器查詢這個網址所對應的 IP 位址,查詢結果是 140.112.8.116,再使用這個 IP 位址來連接這個網址的 WWW 伺服器。

換句話說,在手動進行網路設定的時候,就必須將 DNS 伺服器的 IP 位址告訴電腦,這樣電腦才知道要向誰查詢我們輸入的網址對應的 IP 位址。

網域名稱系統(DNS:Domain Name System)

先思考一個有趣的問題,全世界的網址那麼多,一台 DNS 伺服器怎麼可能知道這麼多網址對應的 IP 位址是什麼呢?為了要解決這個問題,我們把全世界所有的網址區分為許多不同的「網域(Domain)」,並且定義了不同的層級,如<圖一>所示:

➤根網域(Root domain):根網域是 DNS 架構最上層的伺服器,全球共約 16 台,當下層的任何一台 DNS 伺服器無法查出某個網址對應的 IP 位址時,則會向最上層負責根網域的 DNS 伺服器查詢。

➤頂層網域(Top level domain):使用國際標準組織(ISO)所制定的國碼(Country code)來區分頂層網域。
例如:美國使用「us」、台灣使用「tw」、中國大陸使用「cn」、日本使用「jp」,由於美國是網際網路的創始國,所以通常可以不使用 us,全球的網域名稱是由「網際網路名稱與號碼分配組織(ICANN:Internet Corporation For Assigned Names and Numbers)」來管理(http://www.icann.org)。

➤第二層網域(Second level domain):由使用單位向各國的網址註冊中心申請,台灣的網域名稱是由「台灣網路資訊中心(TWNIC:Taiwan Network Information Center)」來管理(http://www.twnic.net),使用單位繳交年費即可取得第二層網域的使用權。
例如:教育單位台大使用 ntu.edu.、政大使用 nccu.edu.;政府單位台北市政府使用 taipei.gov、國科會使用 nsc.gov;營利單位 Google 使用 google.com、台積電(2330-TW)使用 tsmc.com、聯發科(2454-TW)使用 mediatek.com 等。

➤主機網域(Host domain):由各使用單位之網管人員,依照實際需要自行細分成許多主機使用,每一台主機可以設定一個網域名稱,例如:台大的網頁使用 www、台大的選課系統使用 info、台大的郵件伺服器使用 mail 等。

圖一、全球 DNS 伺服器架構

動動手

讓我們先來查查 www.ntu.edu.tw 對應的 IP 位址是多少吧!先到 DOS 模式下,在 C:\> 後面輸入指令「ping www.ntu.edu.tw」(中間要空一格),再按下「Enter」,電腦就會列出 www.ntu.edu.tw 對應的 IP 位址是 140.112.8.116。

➤網頁瀏覽器的網址列:可以輸入網址 http://www.ntu.edu.tw,如果你(妳)記憶力很好,知道這個網址的 IP 位址是 140.112.8.116,那麼當然也可以在網址列直接輸入 IP 位址 http://140.112.8.116,這樣子電腦就不用再向 DNS 伺服器查詢囉!

➤打開網頁瀏覽器:在網址列輸入 http://www.ntu.edu.tw 並且按下「Enter」,就會發現這是台灣大學的網站;現在我們在網址列輸入 http://info.ntu.edu.tw 並且按下「Enter」,就會發現這是台灣大學的選課系統。

DNS 的查詢流程

用戶端電腦向 DNS 伺服器查詢 www.ntu.edu.tw 的 IP 位址流程如<圖二>所示:

➤用戶端電腦:向 DNS 伺服器查詢 www.ntu.edu.tw 的 IP 位址,如<圖二(a)>所示。

➤DNS 伺服器:查詢自己的記憶體,如果曾經被詢問過就會有記錄,如果第一次被詢問則沒有記錄,於是轉向根網域 DNS 伺服器查詢,如<圖二(b)>所示。

➤根網域 DNS 伺服器:回答「我不知道 www.ntu.edu.tw 的 IP 位址」,但是我知道「管理 tw 的 DNS 伺服器」的 IP 位址,如<圖二(c)>所示。

➤DNS 伺服器:再轉向「管理 tw 的 DNS 伺服器」查詢,如<圖二(d)>所示。

➤管理 tw 的 DNS 伺服器:回答「我不知道 www.ntu.edu.tw 的 IP 位址」,但是我知道「管理 edu.tw 的 DNS 伺服器」的 IP 位址,如<圖二(e)>所示。

➤DNS 伺服器:再轉向「管理 edu.tw 的 DNS 伺服器」查詢,如<圖二(f)>所示。

➤管理 edu.tw 的 DNS 伺服器:回答「我不知道 www.ntu.edu.tw. 的 IP 位址」,但是我知道「管理 ntu.edu.tw 的 DNS 伺服器」的 IP 位址,如<圖二(g)>所示。

➤DNS 伺服器:再轉向管理 ntu.edu.tw 的 DNS 伺服器查詢,如<圖二(h)>所示。

➤管理 ntu.edu.tw 的 DNS 伺服器:回答「www.ntu.edu.tw. 的 IP 位址是 140.112.8.116」,如<圖二(i)>所示,呵~看來要查詢一個網址的 IP 位址還真辛苦!

➤DNS 伺服器:先將 www.ntu.edu.tw 對應的 IP 位址 140.112.8.116 儲存在自己的記憶體,以方便下一次用戶端電腦再查詢時使用,下一次就不用這麼辛苦地到處去問啦!並且將結果傳回用戶端電腦,如<圖二(j)>所示,用戶端電腦才能使用這個 IP 位址來連接網路上的一個網站。

圖二、DNS 查詢流程

由於目前電腦的記憶體都很大,而且我們又常常連結同一個網站,因此只要我們連結過某一個網站,我們的電腦就會把這個網址對應到的 IP 位址記錄下來,不必這麼辛苦的去向 DNS 伺服器查詢,因此我們的經驗都是輸入網址之後立刻出現網頁,如果使用者輸入了一個從來沒連結過的網址,則會等待比較久的時間,其實就是電腦在向 DNS 伺服器查詢 IP 位址。

知識力》授權轉載

【延伸閱讀】

分享
知識力
加入知識力 — 讓你的知識變力量,由區塊鏈與人工智慧架構而成的未來專業社群,讓專家在客觀公正的開放平台上,建立自己的專業度與信任度,讓全世界看到你的專業能力,讓會員不必再到處推文求貴人,各種背景的專家線上讓你選擇,互助合作共同開創事業的高峰。
關注