The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

關於網域在網域註冊商設定 NS 時應該輸入 IP 或是 Domain

今天幫一個客戶解決了一個 DNS 設定的問題,客戶端為了安全考量,所有主機/網路的設定都十分嚴格,以致於設定錯誤,導致在國外的客戶無法透過 DNS 正確解析網址,經過一番對話後也順利查出問題,調整設定後問題立即解決。不過客戶這次對 DNS 的認知錯誤,我猜想大部分住在台灣的技術人員可能都是這樣認知的,原因讓我娓娓道來。

客戶提供的資訊是:

  • 原本的 Domain 已經設定好,且已經運作一段時間,在台灣沒有任何用戶反應有問題。
  • 當新的 Domain 設定完成後,台灣的用戶都沒問題,但香港地區的客戶卻怎樣都無法解析該網域。

資訊十分有限,而且這也是一般人發問的方式:「我原本 XXXXX 都可以,為什麼 YYYYYY 就不行了。」

我當下的直覺是:「設定錯誤

我向客戶取得 DNS 設定資料後,再利用 nslookup 做幾次 DNS 檢測就立即查出問題所在,原來是他們的 NS 紀錄所指定的 Domain Name 僅設定在 “內網”,所以在 “外網” 是查不到該 Domain Name 的,以致於國外的 DNS 伺服器無法查詢到該 Domain 的 NS 紀錄,所以無法查詢到所有該網域的任何 DNS 設定。

C:\>nslookup www.example.com.hk ns1.example.com.tw
DNS request timed out.
timeout was 2 seconds.
Server: UnKnown
Address: 123.123.123.123

DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.

客戶原本的 Domain Name 設定:

  • Domain 1:   example.com.tw
    • NS:  ns1.example.com.tw
    • A:    ns1.example.com.tw   ( 在外部網路查不到 IP 位址,僅有內網查詢的到 )
  • Domain 2:   example.com.hk
    • NS:  ns1.example.com.tw

因為上述設定已經運作一段時間,沒人反應有任何錯誤,讓他們覺得 DNS 設定應該沒有異常,但為何突然設定新網域後卻是「香港地區」的人無法查詢該網域呢?

我們先來看看 HiNet 網域註冊 提供的 DNS 設定畫面 ( 以下是正確的設定範例 ):

HiNet 網域註冊 :: DNS 設定畫面

你可能很難想像,有多少人在 DNS Server Name 這個欄位亂設定一通的,我至少曾經幫數十位客戶設定過上百個 Domain Name 過,有些很久以前就設定好的 DNS 資料根本就是錯的,不然就是該 NS 的 Domain Name 根本沒有定義,所以幾乎是「完全依賴」 IP Address 這個欄位的設定,久而久之反而讓許多人誤認為「只要設定對 IP Address 就好了,DNS Server Name 設錯沒關係 」的錯誤觀念。

大部分的客戶都是這樣設定的 ( 以下是錯誤示範 ):

HiNet 網域註冊 :: DNS 設定畫面

也許因為 HiNet 老大哥的關係,所以台灣其他網域註冊商也都跟進,設定錯也沒關係,照樣讓你的 DNS 順利運作 ( 是好是壞很難斷定 )。

以我個人註冊國外網址的經驗,大部分網域註冊商在設定網域的 NS 記錄時,只能讓你 Domain Name,根本不讓你輸入 IP Address ( 但有些還是有讓你輸入 ),所以當網域註冊商收到你設定的 NS Domain Name 時就會先做第一次檢核,如果該網域不存在就直接拒絕,讓你重新設定。雖然這樣會增加 DNS 設定成功的困難度,但設定好的 Domain Name 也比較沒問題。

如果你的網域真的是如我所說的這樣設定,那就儘速修改吧,否則真的會有部分人無法看到你的網站!

相關網址