當你的電腦接上互聯網的時候, 你的電腦會派給一個唯一網路地址 (例如: 192.168.110.31), 而互聯網上的電腦便是利用這網路地址這組古怪數字來溝通的。 但是, 人類卻喜愛用名稱來代替數字(例如:MyGreatName.com), 因為比較親切和容易記憶, 所以, 我們都會用某某名稱來代表互聯網上的某某電腦。

網域名稱系統 (Domain Name System 或簡稱 DNS) 便是將古怪的網路地址數字轉換成容易記憶的名稱, 令到我們今天可以很方便的使用互聯網。

希望以下的網域名稱系統課程可以讓大家更加了解互聯網的運作。

第 1 課 : 互聯網電腦互相溝通基本概念

從我們的另一個互聯網課程 – 網路地址 (IP Address) 的結構, 我們知道, 在連接上互聯網的每一部電腦 (node) 都有一個唯一的網路地址, 這個網路地址一般簡稱為 IP 地址 (Internet Address)。

當你的電腦接上互聯網的時候, 你的電腦也會派給一個網路地址。

首先要明白, 互聯網上的電腦都是用網路地址來溝通的, 如下圖:

但是, 人類都喜愛用名稱來代替數字, 因為比較親切和容易記憶。 所以, 我們都會用某某名稱來代表互聯網上的某某電腦, 如下圖:

第 2 課 : 互聯網電腦互相溝通早期的解決方案

從第1課知道, 我們必須要解決以下的問題:

  • 人類要用名稱來稱呼互聯網上的電腦
  • 電腦要用網路地址 (IP Address) 才可以互相溝通

在互聯網的最初期, 因為只有大約 100部電腦連接互聯網, 以上的問題非常容易解決。

解決辦法是 : 當時由 Standard Research Institue Network Information Center (簡稱 SRI – NIC) 負責維護及更新一個文字檔案 (HOSTS.txt), HOSTS 檔案的內容大概如下:

YourDomain.com192.110.6.11
MyDomain.com150.20.15.10
ABC.com212.69.204.1
MyGreatName.com212.69.204.148
……………………..……………………..
……………………..……………………..
……………………..……………………..

互聯網上每一台電腦都有一份 HOST.txt 的副本。

如你需要聯絡某一台電腦 (例如 : MyGreatName.com), 你便可以查閱 HOST.txt, 看看 MyGreatName.com 的網路地址是什麼 (212.69.204.148)。有了 MyGreatName.com 的網路地址, 你的電腦便可以和 MyGreatName.com 電腦溝通了。

所有更改電腦資料或新加入網絡的電腦的資料都會通知 SRI – NIC, 而 SRI – NIC 會每星期更新 HOST.txt 的資料數次, 以確保 HOST.txt 的資料的準確性。

而網絡的每一台電腦的管理員每星期都會用 FTP 連接 SRI – NIC 的電腦下傳最新的 HOST.txt, 並更新自己的 HOST.txt。

第 3 課 : 網域名稱管理系統 (DNS) 基本概念

當互聯網上的電腦主機不斷增加, 而 HOST.txt 檔案不斷增大, 早期的解決方案已經不實用。

所以在 1984 年, Paul Mockapertris 替互聯網設計了網域名稱管理系統 (Domain Name System, 簡稱 DNS)。

DNS 的工作原理其實很簡單, 如下圖 :

DNS 的工作程序如下 :

  1. 互聯網上的電腦主機的資料 (主要是電腦網域名稱和電腦的對應網路地址) 是儲存在一些分布在互聯網的網域名稱伺服器 (Domain Name Server) 內。
  2. 當你需要連接互聯網上的某台電腦 (例如: MyGreatName.com), 你只需輸入該台電腦網域名稱 (MyGreatName.com), 你的電腦便會跑去預先設定的網域名稱伺服器, 查詢該台電腦的網路地址。
  3. 網域名稱伺服器將該台電腦的網路地址傳回給你的電腦。
  4. 有了該台電腦的網路地址, 你的電腦便可以和該台電腦互相溝通了。

從以上的 DNS 來看, 你可能發覺有很多缺點, 如下:

  • 所有網域名稱伺服器豈不是要儲存互聯網上所有主機的資料。
  • 如果某一個網域名稱伺服器的資料忘記更新, 很多新的網域名稱都豈不是人間蒸發!
  • 要所有網域名稱伺服器的資料都更新了, 新的網域名稱才可確保在互聯網上活躍, 這樣可能需時 2 – 3 個月!
  • 如何確保所有網域名稱伺服器的資料都按時更新?

我們會在最後一課討論整個 DNS 的實際工作系統。

第 4 課 : DNS 的實際工作程序

其實, DNS 的實際工作系統比我們先前的介紹稍為複雜一些, 不過原理是完全一樣的, 也可以解決我們在第 3 課提出的問題。

DNS 的實際工作系統如下圖:

DNS 的 工 作 程 序 如 下 :

  1. 當你需要連接互聯網上的某台電腦 (例如: MyGreatName.com), 你只需在你的電腦輸入該台電腦的網域名稱 (MyGreatName.com), 你的電腦便會跑去預先設定的網域名稱伺服器 (一般是你 ISP 的網域名稱伺服器), 查詢該台電腦的網路地址。
  2. 如果你 ISP 的網域名稱伺服器有 MyGreatName.com 的網路地址, 它會立即傳回 MyGreatName.com 的網路地址給你的電腦。
  3. 我們假設你 ISP 的網域名稱伺服器沒有 MyGreatName.com 的網路地址. 這時, ISP 網域名稱伺服器會立即向 DNS 系統中的根網域名稱伺服器 (Root Name Servers) 查詢存放 MyGreatName.com 的網域名稱伺服器的網路地址. 你可能會問 : “ISP 網域名稱伺服器如何知道向那些根網域名稱伺服器查詢 ?” 原來所有網域名稱伺服器都會從 interNIC 的 FTP 伺服器下傳並安裝一個名叫 “named.cache” 或 “named.root” 的檔案, 這個檔案有互聯網上所有根網域名稱伺服器的網路地址. 以下是 2001 年 5 月 檔案 named.cache 的全部內容:
; This file holds the information on root name servers
; needed to initialize cache of Internet domain name
; servers (e.g. reference this file in the
; "cache . " configuration file of BIND domain
: name servers).
;
; This file is made available by InterNIC registration
; services under anonymous FTP as
; file /domain/named.root
; on server FTP.RS.INTERNIC.NET
; -OR- under Gopher at RS.INTERNIC.NET
; under menu InterNIC Registration Services (NSI)
; submenu InterNIC Registration Archives
; file named.root
;
; last update: Aug 22, 1997
; related version of root zone: 1997082200
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
;
; housed in LINX, operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; temporarily housed at ISI (IANA)
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; housed in Japan, operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File

從 named.cache 檔案可以知道, 互聯網上有13個根網域名稱伺服器 (A.ROOT-SERVERS.NET., B.ROOT-SERVERS.NET., …., M.ROOT-SERVERS.NET.) 分佈各地。

根網域名稱伺服器知道所有辦理高層網域名稱 (top-level domains, 例如 : .com, .org, .net, .com.hk, 等 等 ..) 的網域名稱伺服器的網路地址。

所以, 當 ISP 網域名稱伺服器沒有 MyGreatName.com 的網路地址的資料時, 它會跟據 named.cache 檔案根網域名稱伺服器的網路地址查詢, 如果第一個根網域名稱伺服器壞了或沒有回應, 它會向第二個根網域名稱伺服器查詢。

4. 根網域名稱伺服器告訴 ISP 網域名稱伺服器, 辦理 MyGreatName.com 的網域名稱伺服器的網路地址是 212.69.192.10 (Primary Name Server) 及 212.69.192.11 (Secondary Name Server)。

從這裡可以知道, 為什麼你在註冊新網域名稱需要呈交二個網域名稱伺服器的資料。

5. ISP 網域名稱伺服器有了辦理 MyGreatName.com 的網域名稱伺服器的網路地址, 便可以聯絡辦理 MyGreatName.com 的網域名稱伺服器, 辦理 MyGreatName.com 的網域名稱伺服器於是查看資料, 確實了 MyGreatName.com 的資料無誤, 便將MyGreatName.com 的網路地址 (212.69.204.148) 告訴 ISP 網域名稱伺服器。

6. ISP 網域名稱伺服器有了 MyGreatName.com 的網路地址, 便告訴你的電腦 MyGreatName.com 的網路地址.。

7. 你的電腦現在有了 MyGreatName.com 的網路地址, 便可以連絡上 MyGreatName.com 了。

從整體 DNS 來看, 你可能發覺 :

  • 根網域名稱伺服器在整體DNS佔有非常重要的地位。
  • 互聯網上分佈很多根網域名稱伺服器在各地!
  • 每個網域名稱伺服器都有所有根網域名稱伺服器的資料. 如果第一個沒有回應, 便連絡第二個…….

網域名稱管理系統是如何工作 (完)

2002年3月 網域名稱知識