DNS 簡介
DNS,也就是網域名稱系統(Domain Name System),是一套用來解析 IP 位址的系統。可是 Peter……你不是說會用不那麼技術性的方式來解釋嗎?🤔
好,來了。我不打算講歷史,反正你大概也沒興趣,所以直接講重點。
首先,你得先搞懂什麼是 IP 位址。IP 位址的格式長得像 142.251.40.110,用途是讓裝置之間彼此通訊。
你的電腦有 IP,你的手機有 IP,你旁邊的印表機有另一個 IP,電視、智慧手錶,連用手機就能開關的 IOT 燈泡也都有 IP。
它的運作方式,和現實世界的地址一模一樣。
想像你要從巴塞隆納寄一個包裹到瓦倫西亞📦。基本上,你會在包裹上寫下收件地點的郵寄地址。只不過這裡的收件地點不是房子、大樓或土地,而是電子裝置。
網路上也是同樣的道理。如果我想從筆電把資料傳到家裡的印表機,我要做的事(或者說,我的電腦要做的事)就是透過 IP 把資料送到印表機。
我們的電腦知道印表機的 IP 是多少,所以它能把資料(例如一份要列印的文件)傳過去。

DNS 如何運作
剛才我用印表機當例子,但**瀏覽網站時發生的也是同一件事。**如果想連上 Google,我們得(客氣地)請 Google 把資料傳給我們。
Google 本身就是一台伺服器。**伺服器其實就是一台連上網際網路、專門用來處理請求的電腦。**而正如前面所說,每個裝置都有 IP。既然它是一台電腦,就有一個 IP,所以我們才找得到它。我們發出一個請求,它回傳一個回應。這就是「伺服器」(server)名稱的由來,因為它會為我們「提供」(serve)回應。

聽起來很簡單,對吧?
但問題來了。
就像前面的例子裡,我們的電腦知道印表機的地址(也就是 IP),那它怎麼知道 Google 的 IP 是什麼?再說,它又怎麼會知道你家對面那間麵包店的網站 IP 是什麼?
很簡單,它不知道。你必須告訴它。
這就是幾年前他們必須解決的問題:要向伺服器發出請求,你就得指定那台伺服器的 IP 位址,電腦才知道怎麼連過去,伺服器也才會回應你的請求。
舉例來說,如果想讓電腦請求 Google 的網站,只要在瀏覽器裡輸入 Google 的 IP 位址就行了。事實上,你可以自己試試,點這裡:216.58.215.142. 很有意思吧?
常見的 DNS 記錄
大問題來了。如果我連記住 Google 的 IP(216.58.215.142)都有困難,又怎麼可能記得我家對面那間麵包店網站伺服器的 IP 位址?還有 Facebook 的?Instagram 的?😅
嗯,我可以在筆記本裡列一份清單,把所有 IP 都記下來,想查就查。這樣也行啦,可是……如果隔壁麵包店的網站因為需要更大的主機而換了伺服器呢?難道我得不停更新自己的清單嗎?
這時候就輪到 DNS 登場了
DNS 是一份巨大的網域與 IP 位址對照清單。它就像一位翻譯員,你給它一個網域,它就把它翻譯成 IP。這樣一來,你的電腦就能透過 IP 找到目標伺服器,而你不必去背 IP。
這樣說得通嗎?
在前面客戶端與伺服器的圖中,還需要再加上一個步驟。順序會變成:客戶端、ISP(我們的網際網路服務供應商,也就是握有那份龐大 DNS 清單的單位,例如 Movistar),最後才是伺服器。你可以進一步了解現有的各種 DNS 伺服器類型。

DNS 問題排除
現在,我們的電腦終於能找到 Google 的伺服器了。而且這一切只要幾毫秒!
好的 Peter,這些我現在都完全懂了,可是這跟我想做的事有什麼關係?比如說,我想在 Facebook 上驗證我的網域。
做法其實很類似。
說到底,DNS 是可以公開查詢的,例如用 dnschecker.org. 這類工具。它做的事跟我們的 ISP 一樣,你給它一個網域,它就把它翻譯成對應的 IP。
事實上,DNS 記錄有好幾種不同的類型:
到目前為止,我一直在解釋的是「A」類型的 DNS 記錄。不過我們還能看到以下這些:
-
A:回傳一個 IP 位址 這種記錄用來把主機名稱解析成 IPv4 數字,同時會考量該 IP 是動態還是固定的。例如,把我們的網域名稱指向某台伺服器。
-
**.AAAA:**AAAA 記錄與 A 記錄非常相似,兩者都會回傳一個 IP 位址。AAAA 儲存的是 IPv6 位址。這種 DNS 記錄和 A 記錄一樣,都是用來把我們的網域指向特定的伺服器。
-
CAA: **憑證授權機構授權(Certificate Authority Authorization)。**這個 DNS 參數是一種安全機制,可以限制某個網域可使用的有效憑證授權機構。換句話說,它會指出我們允許哪些憑證授權機構為該網域核發安全憑證(SSL)
-
CNAME: **標準名稱記錄(Canonical name record)。**這種記錄通常用來為某個名稱建立別名。CNAME 能讓網域指向另一個網域或子網域。當不同服務共用同一個 IP 時也可以使用,讓每項服務都有自己的 DNS 項目。
-
MX: **郵件交換記錄(Mail exchange record)。**可以依需要設定任意多筆。關於這類記錄,請記得優先順序是自動設定的。也就是說,你輸入的第一筆 MX 記錄,會優先於後面的記錄。
-
PTR: **指標記錄(Pointer record)。**也稱為反向記錄,因為它的運作方向與 A 記錄相反,是把 IP 轉換成網域名稱。PTR 通常用在反向 DNS 區域的設定檔中。
-
SRV:服務定位記錄(Service Locator)。這是用於特殊服務的記錄,提供某個網域所提供的服務的相關資訊。常與 XMPP、LDAP 或 SIP 搭配使用。
-
TXT: 文字記錄(Text record)。可以插入任何你想要的文字。通常用來驗證網域的控制權,或防止電子郵件地址遭到濫用。此外,TXT 也能用來建立特殊記錄與 Domain-Keys
如你所見,最後這種記錄就能幫我們驗證網域,因為它負責儲存文字。
現在你可能會問,我要怎麼修改我的 DNS?
DNS 是在你註冊網域的平台上修改的,也就是俗稱的「註冊商」。




