Domain-Name-System
TXT 記錄與其他記錄結合的問題
我目前有以下 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.notexisting
該notexisting
分支存在,即萬用字元不再適用於那裡。您想要的是添加相關記錄,
notexisting
而不是依賴該萬用字元。(也許萬用字元一開始就不是正確的解決方案?)如果這裡的案例涉及動態添加新的子域,BIND 和 PowerDNS 都支持動態更新 (RFC2136),或者 PowerDNS 也有一個 REST API。因此,兩者都應該可以隨時以程式方式添加記錄。