Domain-Name-System

TXT 記錄與其他記錄結合的問題

  • May 10, 2020

我目前有以下 DNS 設置。

域:domain.tld 範例 IPv4:1.2.3.4 範例 IPv6:fe80::1

Host Type Destination 
* A 1.2.3.4
* AAAA fe80::1

此設置按預期完美執行。如果我打開任何軟體並輸入 noteexisting.domain.tld 我會得到 1.2.3.4 的有效解析

現在問題來了:如果我現在簡單地為 Let’s Encrypt DNS Validation 添加一條 TXT 記錄,內容如下:

Host Type Destination
_acme-challenge.notexisting TXT XrcC2WczNeJNvhNfbLFjE0iawzIZTlR6BEmD4OxF-pw

在 TTL 失效並再次查詢該區域後,我得到以下結果:

只為 noteexisting.domain.tld 返回 SOA 和 TXT。我認為這很奇怪,因為如果我向我的區域添加另一個子域,DNS 將在 DNS 驗證期間失敗。我怎樣才能防止這種情況發生?

我用 Bind 和 PowerDNS 軟體進行了測試,得到了相同的結果。

考慮到萬用字元應該如何工作,這聽起來像是預期的行為。

萬用字元僅適用於不存在的樹的分支。添加該分支的記錄後,_acme-challenge.notexistingnotexisting分支存在,即萬用字元不再適用於那裡。

您想要的是添加相關記錄,notexisting而不是依賴該萬用字元。(也許萬用字元一開始就不是正確的解決方案?)

如果這裡的案例涉及動態添加新的子域,BIND 和 PowerDNS 都支持動態更新 (RFC2136),或者 PowerDNS 也有一個 REST API。因此,兩者都應該可以隨時以程式方式添加記錄。

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