SOA記錄RNAME:除了點之外的特殊字元還需要反斜線嗎?

SOA記錄RNAME:除了點之外的特殊字元還需要反斜線嗎?

https://www.rfc-editor.org/rfc/rfc1035#section-8

如果<local-part>包含點或其他特殊字符,則其在主文件中的表示將需要使用反斜線引用以確保網域名稱被正確編碼。例如,信箱[電子郵件受保護]將表示為 Action\.domains.ISI.EDU。

然而,在實踐中,除了點需要反斜線之外,我從未見過任何特殊字元。根據 RFC 1035[email protected]應該編碼為,Action\+domains.ISI.EDU但實際上它似乎總是Action+domains.ISI.EDU。加號不被視為「特殊字元」還是點是唯一需要反斜線的特殊字元?

答案1

+不是 DNS 上下文中的特殊字符,無處可去。

DNS 的術語令人困惑:

  • 網域可以是任何字符,絕對沒有限制,只有點有特定意義作為標籤之間的分隔符
  • 主機名稱是遵循「字母數字連字號」或 LDH 約束的網域名稱子集;在該子集中+不能出現,所以它在某種意義上並不特殊,沒有任何東西可以保護它,因為它根本不能出現。

需要特殊處理的幾個字元分散在文件中,但簡而言之:

  • .需要轉義,與\
  • 因此,如果你想要\某個地方的文字,你也需要轉義它
  • 然後,根據您在文件中的位置,可能需要轉義行尾或引號,因為否則可能意味著其他內容。對於這種需要以及任何其他字符,預設定義是使用\DDDDDD轉義的字節的十進制值(以及字串的 US-ASCII)
  • $可能需要轉義,具體取決於您在罰款中的位置以及誰使用它,因為例如綁定,部分可能是其他一些軟體,將$ORIGIN$INCLUDE視為特定指令,而不是區域中的名稱。

相關內容