如果你們已經閱讀了我們的另外二個課程:

  • 網路地址 (IP Address) 的結構, 和
  • 網域名稱系統 (DNS) 是如何工作

相信你們對 DNS 及網域名稱伺服器 (Name Server) 已經有一定認識了。

這個課程將嘗試深入淺出的介紹網域名稱伺服器是如何工作, 如果你們希望自己註冊網域名稱, 但又不太清楚網域名稱伺服器是什麼東西, 希望這個課程對你有所幫助。

第 1 課 : 重溫網域名稱系統 (Domain Name System) 及網域名稱伺服器 (Name Server)

我們首先重溫網域名稱系統及網域名稱伺服器在互聯網上的工作:

  • 網域名稱系統的工作是負責將網域名稱 (人類溝通用) 轉換為網路地址 (電腦溝通用)。
  • 網域名稱伺服器是互聯網上安裝了可以處理網域名稱查詢 (DNS Query) 軟件的電腦, 它們可以將網域名稱轉換為網路地址。
  • 每個註冊的網域名稱必須提供最少二個網域名稱伺服器的資料。
  • 當一個新的網域名稱 (例如: YourDomain.com) 在互聯網上註冊, interNIC 會將這個網域名稱的網域名稱伺服器的資料加入根網域名稱伺服器內。

第 2 課 : 重溫註冊新網域名稱的程序

讓我們簡單地重溫整個註冊新網域名稱的程序:

1. 假設你們同我們登記一個新的網域名稱 (例 如 : YourDomain.com)

2. 我們會立即進行以下二個工作:

a. 呈交新網域名稱的資料給我們的 Registrar, 用作登記新的網域名稱. 資料包括 :

• 網 域 名 稱
• 擁 有 者 資 料, 例 如 : 姓 名, 地 址
• 二 個 網 域 名 稱 伺 服 器 的 資 料

b. 將新網域名稱的資料加入我們的名稱伺服器 (例 如 : ns1.NameServer.com) 內:

[註] :
• 每個註冊的網域名稱的資料必須加入最少二個網域名稱伺服器內。
一個稱為主網域名稱伺服器 (Primary Name Server),
例如 : ns1.NameServer.com

• 另一個稱為副網域名稱伺服器 (Secondary Name Server),
例 如 : ns2.NameServer.com

3. Registrar 收到新網域名稱的資料, 便通知 interNIC。

4. interNIC 便將新網域名稱的資料加入一個資料庫 (whois) 內。

5. 新網域名稱的資料一旦加入資料庫內, 其他人便不能重複登記這個網域名稱了。

6. 接著, interNIC 便將新網域名稱的網域名稱伺服器的資料加入根網域名稱伺服器內。

7. 新網域名稱的資料便從一個根網域名稱伺服器慢慢地傳去其他的根網域名稱伺服器. 這過程稱為 Propagation。

8. 新網域名稱的資料一旦加入根網域名稱伺服器內, 新網域名稱便可以在互聯網上活躍 (Activate) 了, 一 般需要 二 個工作天。

整個註冊新網域名稱過程如下圖所示 :

第 3 課 : 重溫 DNS 的工作程序

讓我們簡單地重溫整個DNS的工作程序:

  1. 假設你的電腦要瀏覽網域名稱 YourDomain.com。
  2. 你的電腦首先會跑去你電腦預先設定的網域名稱伺服器 (一般是你ISP的網域名稱伺服器), 查詢YourDomain.com 的 IP 地址。
  3. 如果你 ISP 的網域名稱伺服器有 YourDomain.com 的 IP 地址資料, 它會立即答覆你的電腦YourDomain.com 的 IP 地址。
  4. 不過, 我們假設你 ISP 的網域名稱伺服器沒有 YourDomain.com 的 IP 地址資料。
  5. 你 ISP 的網域名稱伺服器會查看自己的 named.cache 檔案, 找出根網域名稱伺服器的 IP 地址, 然後跑去其中一個根網域名稱伺服器, 查詢 YourDomain.com 的 IP 地址。
  6. 如果第一個根網域名稱伺服器壞了, 就跑去 named.cache 檔案的第二個根網域名稱伺服器查詢…….。
  7. 根網域名稱伺服器內如果有 YourDomain.com 的網域名稱伺服器的資料, 便答覆 ISP 的網域名稱伺服器 YourDomain.com 的網域名稱伺服器的 IP 地址。
  8. ISP 網域名稱伺服器有了 YourDomain.com 的網域名稱伺服器的 IP 地址, 便向它查詢YourDomain.com 的IP 地址。
  9. YourDomain.com 的網域名稱伺服器內的檔案有 YourDomain.com 的 IP 地址, 便答覆 ISP 網域名稱伺服器 YourDomain.com 的 IP 地址。
  10. ISP 網域名稱伺服器於是答覆你的電腦 YourDomain.com 的 IP 地址。
  11. 你的電腦有了 YourDomain.com 的 IP 地址, 於是可以和 YourDomain.com 的電腦互相溝通了。

整個 DNS 的工作程序如下圖所示 :

第 4 課 : 主網域名稱伺服器 (Primary Nameserver) 及副網域名稱伺服器(Secondary Nameserver)

每個網域名稱的資料都要存放在至少二個網域名稱伺服器內。

所以, 當你們自己註冊網域名稱, 必須首先要找二個網域名稱伺服器存放你的網域名稱的資料, 當然, 如果我們替你們註冊網域名稱, 你們網域名稱的資料會存放在我們的網域名稱伺服器內。

網域名稱伺服器一般會設定一個為主網域名稱伺服器 (PrimaryNameServer), 另一個則設定為副網域名稱伺服器 (SecondaryNameServer), 副網域名稱伺服器主要用作後備之用。

主和副網域名稱伺服器其實是沒有分別的, 只不過, 主網域名稱伺服器在網域檔案 (DNSZoneFile) 會排在前, 副網域名稱伺服器則排在後.

例如, 我們可以設定網域檔案如下:

這樣 :

ns1.NameServer.com 是 主網域名稱伺服器, 而
ns2.NameServer.com 是 副網域名稱伺服器

又如果將網域檔案設定如下 :

則 :

ns2.NameServer.com 是 主網域名稱伺服器, 而
ns1.NameServer.com 是 副網域名稱伺服器

網域名稱伺服器內的每一個網域名稱都有自己的檔案, 這個檔案一般會稱為網域檔案 (DNS Zone File)。

網域檔案是由多個記錄組成的, 每一個記錄一般會稱為資源記錄 (Resource Record 或簡稱 RR)。 資源記錄決定每個網域名稱的結構. 簡單來解釋: 資源記錄可以將網域名稱轉換為 IP 地址。

資源記錄可以有很多格式, 但我們需要使用的格式一般如下:

下一課會討論網域檔案及資源記錄的結構。

第 5 課 : 網域檔案 (DNS Zone File) 主要結構

從上一課, 我們知道, 網域名稱伺服器內的每一個網域名稱都有自己的檔案, 這個檔案一般會稱為網域檔案(DNS Zone File)。

網域檔案是由多個記錄組成的, 每一個記錄一般會稱為資源記錄 (Resource Record 或簡稱 RR)。

網域檔案內可以有很多不同種類的資源記錄, 但一般最常使用的可歸納為以下的四大類:

對一般網域名稱來說, 相信使用這四種資源記錄已經足夠了, 我們將在往後幾課逐一討論。

第 6 課 : 網域檔案的開始授權資源記錄 (DNS Zone File SOA Record)

開始授權 (SOA) 資源記錄是放在每個網域檔案的開始, 它標示一個網域檔案的開始。

SOA 資 源 記 錄 主 要 記 錄 :

  • 網域名稱伺服器的名稱, 和
  • 網域名稱伺服器負責人的電郵地址

SOA Resource Record 資源記錄一般格式如下圖所示:

除了以上的資料外, 網域名稱伺服器的設定也可以放在 SOA資源記錄內。網域名稱伺服器的設定有很多, 但一般只會設定重要的設定。 這裡介紹四個重要的設定, 如下:

  • Serial (資 料 編 號)
  • Refresh (更 新 資 料)
  • Retry (再 次 嘗 試)
  • TTL (生 存 時 間)

以下是一個頗為完整的 SOA 資源記錄 :

Serial (資 料 編 號)

這是用來記錄網域檔案資料的更新編號, 每當檔案內資料的更新一次, 資料編號便會加一。

以上的例子為例 (200105508), 我們設定資料編號為年份 (2001), 月份(05), 及當月更新次數 (508 次)。當下次檔案資料更新, 資料編號便會改為 200105509, 再下次便是 200105510 了……。

你也可以將資料編號設定從0開始, 資料每更新一次 ,資料編號便會加一。

當副網域名稱伺服器檢查主網域名稱伺服器的資料時, 發覺自己的資料編號和主網域名稱伺服器的資料編號不同, 便立即知道主網域名稱伺服器的資料更新了, 所以副網域名稱伺服器便會將自己的資料更新。

Refresh (更 新 資 料)

更新資料的數值一般用秒來表示, 以上的例子是 10080 秒 (即 3 小時)。

更新資料是設定副網域名稱伺服器多久才檢查主網域名稱伺服器的資料有沒有更改。

Retry (再次嘗試)

再次嘗試的數值一般也是用秒來表示, 以上的例子是 3600 秒 (即 1 小時)。

再次嘗試是設定: 如果副網域名稱伺服器不能聯絡主網域名稱伺服器, 它需要相隔多久才再次嘗試聯絡主網域名稱伺服器。

TTL (生存時間)

TTL 全名為 Time To Live, 我們將它譯成生存時間。生存時間的數值也是用秒來表示. 以上的例子是 86400 秒 (即 24 小時)。

我們知道, 當你的網域名稱伺服器沒有查詢的網域名稱的 IP 地址的時候, 它會向其他的網域名稱伺服器查詢, 最後將查詢結果答覆你的電腦, 並會將查詢結果保存在自己的 Cache 記憶體內一段時間, 然後才將查詢資料棄置. 這一段時間稱為生存時間, 如下圖所示:

為什麼將查詢結果保存在自己的 Cache 記憶體內一段時間呢?

理由十分簡單, 因為, 這個查詢很有可能再次發生, 如果真的再次查詢這個網域名稱, 這樣, 網域名稱伺服器便不需要向其他網域名稱伺服器查詢, 而直接從 Cache 記憶體取出結果答覆查詢, 大大提高查詢效率. 如下圖所示:

但請記著, 這樣的資料只會保存在 Cache 記憶體設定的 TTL 時間。

你可能又會問: 既然提高查詢效率, 為什麼不保存在 Cache 記憶體長久一些, 例如一至二個月或甚至一年呢?

理由又是十分簡單, 因為, 如果網域名稱的資料更改了, 而留在 Cache 記憶體仍然是舊的資料, 這樣, 更改了資料的網域名稱便石沈大海了! 這解釋了為何更改了資料後, 你的網域名稱可能有一至二天突然失蹤了!

第 7 課 : 網域名稱伺服器資源記錄 (DNS Zone File NS Record)

網域名稱伺服器 (NS) 資源記錄記錄了這個網域名稱所用的網域名稱伺服器的地址, 例如:

; Name Server (NS) Records
YourDomain.com. IN NS ns1.NameServer.com.
YourDomain.com. IN NS ns2.NameServer.com.

在這個例子, YourDomain.com 使用了二個網域名稱伺服器存放它的資料 :

  • 第 一 個 (Primary) 是 ns1.NameServer.com
  • 第 二 個 (Secondary) 是 ns2.NameServer.com

第 8 課 : 網域名稱伺服器的 IP 地址資源記錄 (DNS Zone File A Record)

IP 地址資源記錄 (A Record) 是資源記錄中非常重要的記錄, 這記錄提供了互聯網上每一台電腦 (host) 的相對 IP 地址, 你的個人電腦就是拿了這個 host 的 IP 地址才可以和它連接和溝通。

; A Record 			
www.YourDomain.com. 	IN 	A 	123.120.110.1
YourDomain.com. 	IN 	A 	123.120.110.1
mail1.YourDomain.com. 	IN 	A 	123.120.110.2
mail2.YourDomain.com. 	IN 	A 	123.120.110.3
ns1.NameServer.com. 	IN 	A 	123.120.110.10
ns2.NameServer.com. 	IN 	A 	123.120.110.11

我們將續一解釋以上的 DNS A Record 例子。

第 一 行 : www.YourDomain.com IN A 123.120.110.1

這一行說明, 存放 YourDomain.com 網站的伺服器的 IP 地址是 123.120.110.1

當你的電腦向以上的網域名稱伺服器查詢 YourDomain.com 網站的伺服器的IP地址時, 網域名稱伺服器便會回覆 123.120.110.1 給你的電腦, 你的電腦有了 YourDomain.com 的 IP 地址 (123.120.110.1), 便可以和存放 YourDomain.com 網站的伺服器 (123.120.110.1) 連接和溝通了。

第 二 行 : YourDomain.com IN A 123.120.110.1

這一行和上一行的意思是一樣的. 加了這一行, 你可以用 http://YourDomain.com 或 http://www.YourDomain.com 來瀏覽 YourDomain.com 網站。

互聯網上有很多網站都沒有這一行, 所以, 這些網站只可以用 http://www.xxxxxxx.com 來瀏覽。

第 三 行 及 第 四 行 :

mail1.YourDomain.com IN A 123.120.110.2
mail2.YourDomain.com IN A 123.120.110.3

這二行說明 :

YourDomain.com 使用了二個電郵伺服器來處理它們的電郵 :

  • mail1.YourDomain.com 伺服器 (電郵伺服器) 的 IP 地址是 123.120.110.2
  • mail2.YourDomain.com 伺服器 (電郵伺服器) 的 IP 地址是 123.120.110.3

不過, 單這二行是不能收到 @YourDomain.com 電郵的, 必須配合下一課介紹的 MX Record。

第 五 行 :

ns1.NameServer.com. IN A 123.120.110.10

這是存放 YourDomain.com 網域檔案的主網域名稱伺服器的 IP 地址。

第 六 行 :

ns2.NameServer.com. IN A 123.120.110.11

這是存放 YourDomain.com 網域檔案的副網域名稱伺服器的 IP 地址。

第 9 課 : 電郵交流資源記錄 (DNS Zone File MX Record)

電郵交流資源記錄包含了電郵交流系統 (Mail Exchange System) 的地址。

如果你沒有電郵伺服器或不需要使用電郵服務, 這一個 MX 資源記錄是可以省略的。

以下是一個典型的 MX 資源記錄, 它使用了二個電郵伺服器 (mail.YourDomain.com 和mail2.YourDomain.com) 來處理電郵服務。

; MX Record 			
YourDomain.com. 	IN 	MX 0 	mail1.YourDomain.com
YourDomain.com. 	IN 	MX 10 	mail2.YourDomain.com

MX Records 可以有很多行, 條件是:

  • 如果你只有一個電郵伺服器, 那麼, 你的 MX Records 只需要一行。
  • 如果你有二個電郵伺服器, 那麼, 你的 MX Records 需要二行。
  • 如果你有五個電郵伺服器, 那麼, 你的 MX Records 便需要五行了。

請留意 MX Records 之後有一個數字, 這數字稱為優先次序 (Preference). 你可以使用任何整數的數字 (例如 : 0, 5, 10, 20, 100 …等等), 但在同一個網域名稱檔案的 MX Records 不可以使用相同的數字, 最少的數字為最優先。

假設你要寄電郵給 xxxx@YourDomain.com, 以下是簡化了的程序:

  1. 你 ISP 的 SMTP 電郵伺服器首先要查詢 YourDomain.com 的 MX Records。
  2. 有了 YourDomain.com 的電郵伺服器的地址, 你 ISP 的 SMTP 電郵伺服器便會嘗試用 SMTP 和最優先次序的電郵伺服器 (以上例子是 mail.YourDomain.com) 連繫。
  3. 如果不能和第一個電郵伺服器, 便會和第二優先次序的電郵伺服器 (以上例子是 mail2.YourDomain.com) 連繫。

第 10 課 : DNS 網域檔案例子 (DNS Zone File Example)

我們最後使用一個簡單, 但非常實用的 DNS 網域檔案例子作為這網域名稱伺服器課程的總結。

我們以 YourDomain.com 網域名稱作為這 DNS 網域檔案例子的主角:

網域名稱伺服器是如何工作(完)。