DNS 網域名稱格式 - Amazon Route 53

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

DNS 網域名稱格式

網域名稱 (包括網域、託管區域和記錄的名稱) 是由一系列以點分隔的標籤所組成。每個標籤長度最多可達 63 個位元組。網域名稱的總長度不能超過 255 個位元組 (包括點)。Amazon Route 53 支援任何有效的網域名稱。

命名需求取決於您是註冊網域名稱還是指定託管區域或記錄的名稱。請參閱適用的主題。

為網域名稱註冊設定網域名稱的格式

對於網域名稱註冊,網域名稱只能包含 a-z、0-9 和 – (連字號)。不能在標籤開頭或結尾指定連字號。

如需有關如何註冊國際化網域名稱 (IDN) 的詳細資訊,請參閱設定國際化網域名稱的格式

為託管區域和記錄設定網域名稱的格式

對於託管區域和記錄,網域名稱可以包含下列任何可列印的 ASCII 字元 (不含空格):

  • a-z

  • 0-9

  • - (連字號)

  • ! " # $ % & ' ( ) * + , - / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ .

Amazon Route 53 會將字母字元儲存為小寫字母 (a-z),不論儲存時指定為大寫、小寫字母或逸出碼中的對應字母。

如果您的網域名稱包含下列任何字元,則必須使用 \三位數八進位碼格式的逸出碼來指定字元:

  • 八進位字元 000 到 040 (0 至 32 十進位,0x00 到 0x20 十六進位)

  • 八進位字元 177 到 377 (127 至 255 十進位,0x7F 到 0xFF 十六進位)

  • . (句號),八進位字元 056 (十進位 46、十六進位 0x2E),當在網域名稱中用做字元時。使用 . 做為標籤之間的分隔符號時,則不需要使用逸出碼。

如果網域名稱包含 z、0-9、- (連字號) 或 _ (底線) 以外的任何字元,Route 53 API 動作會將這些字元當做逸出碼傳回。無論您在建立實體時將字元指定為字元或逸出碼,都是如此。Route 53 主控台會將字元顯示為字元,而不顯示為逸出碼。

如需對應八進位碼的 ASCII 字元清單,請在網際網路上搜尋「ascii 表格」。

若要指定國際化網域名稱 (IDN),請將名稱轉換為 Punycode。如需更多詳細資訊,請參閱 設定國際化網域名稱的格式

在託管區域和記錄的名稱中使用星號 (*)

您可以建立名稱中包含 * 的託管區域和記錄。

託管區域

  • 網域名稱最左邊的標籤中不可包含 *。例如,不允許 *. example.com。

  • 如果您在其他位置包含 *,DNS 會將它視為 * 字元 (ASCII 42),而不是萬用字元。

記錄

DNS 會根據 * 字元出現在名稱中的位置,將其視為萬用字元或 * 字元 (ASCII 42)。請注意下列在記錄名稱中使用 * 做為萬用字元的限制:

  • * 必須取代網域名稱最左邊的標籤,例如 *. example.com 或 *.acme.example.com。如果您在任何其他位置包含 * (例如 prod.*.example.com),則 DNS 會將其視為 * 字元 (ASCII 42),而不是萬用字元。

  • * 必須取代整個標籤。例如,您無法指定 *prod.example.com 或 prod*.example.com。

  • 特定網域名稱具有高優先順序。例如,如果您建立 *. example.com 和 acme.example.com 的記錄,Route 53 一律會使用 acme.example.com 記錄中的值,回應 acme.example.com 的 DNS 查詢。

  • * 適用於包含星號之子網域層級的 DNS 查詢,以及該子網域的所有子網域。例如,如果您建立名為 *.example.com 的記錄,Route 53 會使用該記錄中的值,以回應 zenith.example.com、acme.zenith.example.com 和 pinnacle.acme.zenith.example.com 的 DNS 查詢 (如果該託管區域沒有任何類型的記錄)。

    如果您建立名為 *.example.com 的記錄,且 example.com 記錄不存在,Route 53 會以 NXDOMAIN (不存在的網域) 回應 example.com 的 DNS 查詢。

  • 針對同一層級所有子網域和網域名稱,您可以將 Route 53 設定為對 DNS 查詢傳回相同的回應。例如,您可以使用 example.com 記錄,將 Route 53 設定為回應 acme.example.com 和 zenith.example.com 等 DNS 查詢。執行以下步驟:

    1. 建立網域的記錄,例如 example.com。

    2. 建立子網域的別名記錄,例如 *.example.com。指定您在步驟 1 建立的記錄,做為別名記錄的目標。

  • * 不可用做 NS 類型之記錄的萬用字元。

設定國際化網域名稱的格式

當您註冊新的網域名稱或建立託管區域和記錄,您可以指定 a-z 之外的字母 (例如法語中的 ç)、其他字母 (例如斯拉夫字母或阿拉伯字母) 中的字元,以及中文、日文或韓文等語言中的字元。Amazon Route 53 會用 Punycode 儲存這些國際化網域名稱 (IDN) (將 Unicode 字元轉換為 ASCII 字串表示)。

如果您要註冊網域名稱,請注意下列事項:

  • 只有在頂層網域 (TLD) 支援 IDN 並支援您要使用的語言時,才能使用 a-z、0-9 和 - (連字號) 以外的字元。若要判斷 TLD 支援哪些語言,請參閱可向 Amazon Route 53 註冊的域

  • 如果名稱址包含字母 a-z,您可以指定不支援語言的名稱。例如,如果 TLD 不支援法文,但您要使用的名稱只包含 a-z 的字母 (而沒有變音符號),您仍可使用該名稱。在此範例中,可允許包含 "c" 的名稱,不允許包含 "ç" 的名稱。

  • 如果 TLD 不支援 IDN 或不支援您要用於網域名稱的語言,您也無法以 Punycode 指定名稱,即使 Punycode 只包含 a-z、0-9 和 - 亦然。

以下範例顯示國際化網域名稱「中国.asia」的 Punycode 表示:

xn--fiqs8s.asia

當您在現代瀏覽器的網址列中輸入 IDN,瀏覽器會先將它轉換為 Punycode,然後提交 DNS 查詢或提出 HTTP 請求。

如何輸入 IDN 取決於您要建立的內容 (網域名稱、託管區域或記錄),以及建立方式 (API、開發套件或 Route 53 主控台):

  • 如果您使用 Route 53 API 或其中一個 AWS 開發套件,可以透過程式設計方式將 Unicode 值轉換為 Punycode。例如,如果您使用 Java,可以透過使用 java.net.IDN 程式庫的 toASCII 方法,將 Unicode 值轉換為 Punycode。

  • 如果您使用 Route 53 主控台註冊網域名稱,可以將名稱 (包括 Unicode 字元) 貼至名稱欄位,然後主控台會先將值轉換為 Punycode,再進行儲存。

  • 如果您使用 Route 53 主控台來建立託管區域或記錄,需要先將網域名稱轉換為 Punycode,然後在適用的 Name (名稱) 欄位中輸入名稱。如需線上轉換器的詳細資訊,請在網際網路上搜尋「punycode 轉換器」。

如果您要註冊網域名稱,請注意並非所有頂層網域 (TLD) 都支援 IDN。如需 Route 53 支援的 TLD 清單,請參閱 可向 Amazon Route 53 註冊的域。已記錄不支援 IDN 的 TLD。