嵌入萬用字元的 CNAME
我正在嘗試設置 CNAME DNS 條目:
start.*.example.com
匹配以下域名:
start.a.b.c.example.com start.a.example.com
這可能嗎?我目前的測試在networksolutions.com 上失敗了。
它以前用作 A 記錄萬用字元 (*.exmaple.com) - 但我希望它用作 CNAME。
start.*.example.com
DNS 萬用字元不是這樣工作的,所以你不能這樣做(作為萬用字元),因此“嵌入式萬用字元”在 DNS 世界中不是一個東西。
這不是記錄類型(
CNAME
與A
其他任何東西相比)或使用的 DNS 提供商的問題,而是萬用字元必須是第一個標籤,*
然後是其他標籤。萬用字元也是如此
*.example.com
(因此將在 DNS 交換期間觸發特定行為,匹配多個名稱)但start.*.example.com
不是萬用字元:您當然可以CNAME
使用此名稱創建記錄,但它只會匹配自身,包括星號,並且絕對沒有別的(沒有任何其他名稱匹配)參見 RFC 1034:
4.3.3. 萬用字元
在之前的算法中,對所有者名稱以標籤“*”開頭的 RR 進行了特殊處理。這樣的 RR 被稱為萬用字元。
然後:
萬用字元 RR 的內容遵循 RR 的常用規則和格式。區域中的萬用字元有一個所有者名稱,用於控制它們將匹配的查詢名稱。萬用字元 RR 的所有者名稱的格式為“*.”,其中是任何域名。
如果您需要匹配單個事物,您可以創建
*.example.com
and both的萬用字元start.a.example.com
,start.a.b.c.example.com
並將匹配萬用字元記錄,但與任何其他名稱一樣,其中start
和/或a
和/或b
和/或被其他名稱c
替換。https://en.wikipedia.org/wiki/Wildcard_DNS_record上的維基百科條目與上面的內容完全相同:
假設有一個具有以下資源記錄的 DNS 區域:
$$ … $$
*.example. 3600 TXT "this is a wildcard" *.example. 3600 MX 10 host1.example. sub.*.example. 3600 TXT "this is not a wildcard"
$$ … $$ 以下響應將從區域中的萬用字元之一合成:
$$ … $$ foo.bar.example。TXT 答案將是“foo.bar.example。IN TXT …”,因為 bar.example。不存在,但萬用字元存在。
$$ … $$ 以下響應不會從區域中的任何萬用字元合成:
$$ … $$ 子..範例。MX 沒有萬用字元會匹配,因為 sub..example。存在。域 sub.*.example。永遠不會充當萬用字元,即使它有一個星號。