DNS 區域和記錄的概觀 (機器翻譯)
本文說明網域、DNS 區域、DNS 記錄和記錄集的重要概念, 您將瞭解 Azure DNS 如何提供支援。
網域名稱
網域名稱系統是網域階層。 階層從 root
網域開始,名稱只有「.」。 下面接著頂層網域,例如 com
、net
、org
、uk
或 jp
。 頂層網域下面是次層網域,例如 org.uk
或 co.jp
。 DNS 階層中的網域散佈在全球,裝載在世界各地的 DNS 名稱伺服器上。
網域名稱註冊機構是可供您購買網域名稱的組織,例如 contoso.com
。 購買網域名稱可授予您該名稱下 DNS 階層的控制權限,例如將名稱 www.contoso.com
導向貴公司網站。 登錄器可以代表您,將網域裝載在其自有的名稱伺服器上,或允許您指定替代的名稱伺服器。
Azure DNS 提供散佈全球且可用性高的名稱伺服器基礎結構,可用於代管您的網域。 只要將您的網域裝載於 Azure DNS 中,就可以像管理其他 Azure 服務一樣,使用相同的認證、API、工具、計費方式和支援來管理 DNS 記錄。
Azure DNS 目前不支援購買網域名稱。 如果支付年費,則可以使用 App Service 網域或第三方網域名稱註冊機構來購買網域名稱。 然後,便可以在 Azure DNS 中裝載您的網域以管理記錄。 如需詳細資訊,請參閱將網域委派給 Azure DNS。
DNS 區域
DNS 區域用於裝載特定網域的 DNS 記錄。 若要開始將網域裝載到 Azure DNS 中,您必須建立該網域名稱的 DNS 區域。 接著在此 DNS 區域內,建立網域的每筆 DNS 記錄。
例如,網域 'contoso.com' 可能包含數筆 DNS 記錄,例如 'mail.contoso.com' (用於郵件伺服器) 和 'www.contoso.com' (用於網站)。
在 Azure DNS 中建立 DNS 區域時︰
- 區域的名稱在資源群組內必須是唯一的,且區域必須尚未存在。 否則作業會失敗。
- 不同的資源群組或不同的 Azure 訂用帳戶中,可重複使用相同的區域名稱。
- 多個區域共用相同的名稱時,系統就會將不同的名稱伺服器位址,指派給每個執行個體。 只可以向網域名稱註冊機構登記一組位址。
注意
您不必擁有網域名稱,也能在 Azure DNS 中以該網域名稱建立 DNS 區域。 不過,的確需要擁有網域,才能將 Azure DNS 名稱伺服器,設定為網域名稱的正確名稱伺服器,供網域名稱註冊機構使用。
如需詳細資訊,請參閱將網域委派給 Azure DNS。
DNS 記錄
記錄名稱
在 Azure DNS 中,記錄是使用相對名稱來指定。 完整功能變數名稱 (FQDN) 包含區域名稱,而相對名稱則不包含。 例如,區域 contoso.com
中的相對記錄名稱 www
產生完整記錄名稱 www.contoso.com
。
「頂點」記錄是 DNS 區域根目錄 (或「頂點」) 的 DNS 記錄。 例如在 DNS 區域 contoso.com
中,頂點記錄也具有完整名稱 contoso.com
(有時稱為「裸」網域)。 依照慣例,相對名稱 \'\@\' 用來代表頂點記錄。
記錄類型
每一筆 DNS 記錄都有名稱和類型。 記錄根據所包含的資料而組織成各種類型。 最常見的類型為 'A' 記錄,可將名稱對應到 IPv4 位址。 另一個一般類型為 'MX' 記錄,可將名稱對應到郵件伺服器。
Azure DNS 支援所有常見的 DNS 記錄類型:A、AAAA、CAA、CNAME、MX、NS、PTR、SOA、SRV 和 TXT。 請注意,SPF 記錄是使用 TXT 記錄表示。
如果區域是以 DNS 安全性延伸模組 (DNSSEC) 簽署,例如委派簽署者 (DS) 和傳輸層安全性驗證 (TLSA) 資源記錄,則支援其他記錄類型。
使用 DNSSEC 簽署區域時,會自動新增 DNSSEC 資源記錄類型,例如 DNSKEY、RRSIG 和 NSEC3 記錄。 區域簽署之後,就無法建立或修改這些類型的 DNSSEC 資源記錄。
記錄集
有時候,您需要以指定的名稱和類型建立多筆 DNS 記錄。 例如,假設 'www.contoso.com' 網站裝載於兩個不同的 IP 位址。 網站需要兩筆不同的 A 記錄,每個 IP 位址各一筆。 以下是記錄集的範例:
www.contoso.com. 3600 IN A 134.170.185.46
www.contoso.com. 3600 IN A 134.170.188.221
Azure DNS 使用「記錄集」來管理所有 DNS 記錄。 記錄集 (也稱為「資源」記錄集) 是指一個區域中,具有相同名稱和相同類型的 DNS 記錄集合。 大部分的記錄集只包含單一記錄。 不過,如上述範例,其中記錄集包含一筆以上的記錄,並不罕見。
例如,假設您已經在區域 'contoso.com' 中建立了 A 記錄 'www',指向 IP 位址 '134.170.185.46' (上述第一項記錄)。 若要建立第二筆記錄,您會將該記錄新增至現有的記錄集,而非建立額外的記錄集。
SOA 和 CNAME 記錄類型是例外狀況。 對於這些類型,DNS 標準不允許具有相同名稱的多筆記錄,因此這些記錄集只能包含單一記錄。
存留時間
存留時間(或 TTL)指定用戶端將每筆記錄快取多久後,才能接受查詢。 在上述範例中,TTL 是 3600 秒 (1 小時)。
在 Azure DNS 中,系統會針對記錄集指定 TTL,而非針對每筆記錄指定,因此該記錄集內的所有記錄皆使用相同值。 您可以指定介於 1 到 2,147,483,647 秒之間的任何 TTL 值。
萬用字元記錄
Azure DNS 支援 萬用字元記錄。 除非在非萬用字元記錄集中有更相符的名稱,否則若回應包含符合名稱的查詢,便會傳回萬用字元記錄。 Azure DNS 支援 NS 和 SOA 以外的所有記錄類型的萬用字元記錄集。
若要建立萬用字元記錄集,請使用記錄集名稱 '*'。 您也可使用 '*' 作為名稱最左邊的標籤,例如 '*.foo'。
CAA 記錄
CAA 記錄可讓網域擁有者指定哪些憑證授權單位 (CA) 有權為其網域發行憑證。 此外,此記錄也讓 CA 可避免在某些情況下誤發憑證。 CAA 記錄都有三個屬性:
- 旗標:您可以在這個欄位輸入介於 0 到 255 之間的整數,用於表示 RFC6844 所列具特殊意義的重要旗標
- 標記:ASCII 字串,可以是下列其中一項:
- issue:用於指定有權發行憑證 (所有類型憑證) 的 CA
- issuewild:用於指定有權發行憑證 (僅限萬用字元憑證) 的 CA
- iodef:指定當發生未授權的憑證發行要求時,CA 可通知的電子郵件地址或主機名稱
- 值:所選特定標記的值
CNAME 記錄
CNAME 記錄集無法與具有相同名稱的其他記錄集並存。 舉例而言,您不能同時建立相對名稱是 www
的 CNAME 記錄集和相對名稱是 www
的 A 記錄。
由於在建立區域期間,區域頂點 (名稱 = '@') 一律會包含 NS 和 SOA 記錄集,因此無法在區域頂點建立 CNAME 記錄集。
這些條件約束源自於 DNS 標準,並不是 Azure DNS 的限制。
NS 記錄
區域頂點(名稱「@」)的 NS 記錄集,會隨各 DNS 區域自動建立,並在區域刪除時自動隨之刪除。 無法個別刪除。
此記錄集包含指派給區域的 Azure DNS 名稱伺服器的名稱。 您可新增更多名稱伺服器至此 NS 記錄集,為共同代管的網域提供多個 DNS 提供者。 您也可以修改此記錄集的 TTL 和中繼資料。 但不得移除或修改預先填入的 Azure DNS 名稱伺服器。
此限制僅適用於位於區域頂點的 NS 記錄集。 區域中的其他 NS 記錄集 (如用於委派子區域) 可以建立、修改和刪除,沒有條件約束。
SOA 記錄
各區域頂點 (名稱 = '@') 會自動建立 SOA 記錄集,且會於該區域刪除時自動刪除。 無法個別建立或刪除 SOA 記錄。
您可以修改 SOA 記錄的所有屬性,但 host
屬性除外。 此屬性預先設定為參考 Azure DNS 所提供的主要名稱伺服器名稱。
變更區域中的記錄時,SOA 記錄中的區域序號不會自動更新。 您可視需要編輯 SOA 記錄,手動進行更新。
注意
Azure DNS 目前不支援在 SOA 主機信箱項目的「@」之前使用點(.)。 舉例而言:不可以 john.smith@contoso.xyz
(轉換成 john.smith.contoso.xyz)和 john\.smith@contoso.xyz
。
SPF 記錄
寄件者原則架構 (SPF) 記錄用來指定可以代表網域名稱傳送電子郵件的電子郵件伺服器。 請務必正確設定 SPF 記錄,以防止收件者將您的電子郵件標示為垃圾郵件。
DNS RFC 原本推出了新 SPF 記錄類型,以支援這種情況。 為了支援較舊的名稱伺服器,RFC 也允許使用 TXT 記錄類型來指定 SPF 記錄。 這種模稜兩可曾經造成混淆,但已透過 RFC 7208 解決。 其指出必須使用 TXT 記錄類型建立 SPF 記錄。 此外,也指出 SPF 記錄類型已被取代。
Azure DNS 支援 SPF 記錄,因此必須使用 TXT 記錄型別建立。 不支援過時的 SPF 記錄類型。 當您匯入 DNS 區域檔案時,任何使用 SPF 記錄類型的 SPF 記錄,都會轉換成 TXT 記錄類型。
SRV 記錄
各種服務都會使用 SRV 記錄來指定伺服器位置。 在 Azure DNS 中指定 SRV 記錄時︰
- 必須在記錄集名稱中包括服務和通訊協定,並在其前方加上底線,例如 '_sip._tcp.name'。 若是位於區域頂點的記錄,則無須在記錄名稱中指定 '@',只要使用服務和通訊協定即可,例如 '_sip._tcp'。
- 系統已將 [優先順序]、[權數]、[連接埠] 和 [目標],指定為記錄集內每筆記錄的參數。
TXT 記錄
TXT 記錄是用來將網域名稱對應到任意文字字串。 其可用於多個應用程式,特別是與電子郵件設定相關者,例如 寄件者原則架構 (SPF) 和 網域金鑰識別郵件 (DKIM)。
DNS 標準允許單一 TXT 記錄包含多個字串,每個長度最多可達 255 個字元。 使用多個字串時,用戶端會串連這些字串並視為單一字串。
在呼叫 Azure DNS REST API 時,您必須分別指定每個 TXT 字串。 使用 Azure 入口網站、PowerShell 或 CLI 介面時,應為每個記錄指定單一字串。 如有必要,此字串會自動分成 255 個字元的區段。
DNS 記錄中的多個字串不應與 TXT 記錄集中的多個 TXT 記錄混淆。 TXT 記錄集可以包含多個記錄,「每一個」記錄可以包含多個字串。 Azure DNS 支援每個 TXT 記錄集內字串總長度上限為 4096 個字元 (所有記錄的總和)。
DS 記錄
委派簽署者 (DS) 記錄是 用來保護委派的 DNSSEC 資源記錄類型。 若要在區域中建立 DS 記錄,必須先使用 DNSSEC 簽署區域。
TLSA 記錄
TLSA(傳輸層安全性驗證)記錄可用來將 TLS 伺服器證書或公鑰與找到記錄的域名產生關聯。 TLSA 記錄會將公鑰(TLS 伺服器證書)連結至功能變數名稱,為 TLS 連線提供額外的安全性層。
若要有效地使用 TLSA 記錄, 必須在網域上啟用 DNSSEC 。 這可確保TLSA記錄可以信任並正確驗證
標記和中繼資料
標籤
標記是名稱-值組的清單,由 Azure Resource Manager 用來標示資源。 Azure Resource Manager 使用標籤來篩選您 Azure 帳單的檢視畫面,也可用於設定特定標籤的原則。 如需標記的詳細資訊,請參閱 使用標記來組織您的 Azure 資源。
Azure DNS 支援在 DNS 區域資源上,使用 Azure Resource Manager 標記。 其不支援在 DNS 記錄集上加註標記,但支援在 DNS 記錄集上使用中繼資料作為替代 (如下所述)。
中繼資料
Azure DNS 支援使用中繼資料來替代記錄集標記,用以標註記錄集。 類似於標記,中繼資料可讓您建立名稱-值組與每個記錄集之間的關聯。 此功能十分有用,例如用於記錄每個記錄集的用途。 與標記不同的是,中繼資料無法用來提供 Azure 帳單篩選過的檢視,也無法在 Azure Resource Manager 原則中指定。
Etag
假設有兩個人或兩個處理序同時嘗試修改 DNS 記錄。 何者獲勝? 獲勝者知道他已覆寫另一人所做的變更嗎?
Azure DNS 使用 Etag 以安全地處理相同資源的並行變更。 Etag 和 Azure Resource Manager「標籤」分開。 每個 DNS 資源 (區域或記錄集) 都有一個相關聯的 Etag。 每當擷取資源時,也會擷取其 Etag。 您可在更新資源時選擇傳回 Etag,如此 Azure DNS 便可驗證伺服器上的 Etag 是否相符。 因為每次更新資源都會重新產生 Etag,Etag 不符就表示發生並行變更。 Etag 也可用於建立新資源時,以確認該資源是否仍未存在。
根據預設,Azure DNS PowerShell 會使用 Etag 來禁止對區域和記錄集進行並行變更。 選擇性的 -Overwrite 參數可以用來停用 Etag 檢查,在此情況下,會覆寫任何已發生的並行變更。
在 Azure DNS REST API 層級上是使用 HTTP 標頭指定 Etag。 下表提供它們的行為:
頁首 | 行為 |
---|---|
無 | PUT 一定成功 (沒有 Etag 檢查) |
If-match <etag> | 唯有當資源存在且 Etag 符合時,PUT 才會成功 |
If-match * | 唯有當資源存在時,PUT 才會成功 |
If-none-match * | 只有當資源不存在時,PUT 才會成功 |
限制
使用 Azure DNS 時,會適用下列的預設限制︰
公用 DNS 區域
資源 | 限制 |
---|---|
每一訂閱的公用 DNS 區域 | 250 1 |
每一公用 DNS 區域的記錄集 | 10,000 1 |
公用 DNS 區域中每個記錄集的記錄 | 20 |
單一 Azure 資源的別名記錄數目 | 20 |
1 如果需要增加這些限制,請連絡 Azure 支援。
下一步
- 若要開始使用 Azure DNS,請學習如何建立 DNS 區域和建立 DNS 記錄。
- 若要移轉現有的 DNS 區域,請學習如何匯入和匯出 DNS 區域檔案。