Domain-Name-System

在 A 記錄之上正確實施萬用字元 DNS

  • March 29, 2015

我需要為已經有 A 記錄的子域設置萬用字元 DNS 記錄。我不確定我是否必須為此使用新的 A 記錄,或者只能使用指向 A 記錄的 CNAME。

我的腳本具有以下域結構

http(s)://{random_code}.{location_subdomain}.{domain.com}/{path}
  • {random_code} - 我們使用隨機程式碼作為針對瀏覽器實現的 HTTP 套接字限制的解決方案。(僅用於將動態元素載入到頁面上 - 因此只能通過查看網頁源來查看,而使用者瀏覽器中的 URL 僅顯示位置子域)
  • {location_subdomain} - 我們從離使用者最近的伺服器載入內容,因此每個位置都有一個指向不同伺服器的 A 記錄(我們所有位置伺服器的內容是 1:1)。
  • {domain.com} - 指向託管我們的索引頁面的前端伺服器
  • {path} - 自我探索

目前 DNS 區域文件

domain.org. 86400   IN  NS  dns1.domain.org.
domain.org. 86400   IN  NS  dns2.domain.org.
domain.org. 86400   IN  NS  dns3.domain.org.
domain.org. 86400   IN  NS  dns4.domain.org.
domain.org. 14400   IN  A   1.1.1.1
localhost   14400   IN  A   127.0.0.1
www     14400   IN  CNAME   domain.org.
ftp     14400   IN  A   1.1.1.1
france  3600    IN  A   2.2.2.2
phoenix 3600    IN  A   3.3.3.3
nl      3600    IN  A   4.4.4.4
*       14400   IN  A   1.1.1.1

但是我需要為每個位置 A 記錄添加一個萬用字元,該記錄指向相同的地址。因此,例如 {randome_code}.phoenix.{domain.com} 將指向 3.3.3.3,同時仍確保 phoenix.{domain.com} 仍然指向相同的 IP。

我是否只需要為每個位置創建新的 A 記錄,同時保留非萬用字元記錄?

*.france    3600    IN  A   2.2.2.2
*.phoenix   3600    IN  A   3.3.3.3
*.nl        3600    IN  A   4.4.4.4

我假設這將是一個額外的查找,所以我認為我可以使用 CNAME,但我不確定添加萬用字元 CNAME 記錄的正確格式,該記錄指向已創建的 A 記錄,同時仍保留原始萬用字元工作,以便任何不使用位置子域的查找仍將使用我們的前端 Web 伺服器地址得到答复。

還是我完全錯了,我可以在根域和 A 記錄上都沒有萬用字元嗎?

你有什麼:

*.france    3600    IN  A   2.2.2.2

將完全按照您的預期工作;查詢abc.france.example.com將從萬用字元A記錄中獲得答案,同時france.example.com仍將從france 3600 IN A 2.2.2.2.

不需要額外的查找,因為您沒有進行額外的委派。

如果您更容易管理,您還可以使用CNAME

*.france    3600    IN  CNAME   france

ACNAME通常會導致額外的查找,但在這種情況下不會;被引用的記錄在同一區域中,因此您的 DNS 伺服器將響應 的“答案” CNAME,並包括 的相關A記錄france.example.com

引用自:https://serverfault.com/questions/679135