搜索域和子域的所有 DNS TXT 记录

Posted

技术标签:

【中文标题】搜索域和子域的所有 DNS TXT 记录【英文标题】:search for ALL DNS TXT records of a domain and subdomains 【发布时间】:2015-02-24 06:31:59 【问题描述】:

有一种方法可以检索有关域(和子域)的 DNS 记录的所有 (TXT) 条目?

我的目标是验证我的域的配置:www.rosposhop.com 我为某些子域正确设置了多个 SPF 和 DKIM 记录

rosposhop.com
md.rosposhop.com (SPF+DKIM)
mg.rosposhop.com (SPF+DKIM)

(所以我总共有 5 个 TXT 项)

现在,如果我用 dighost -a 询问,我只得到了第一个 TXT 项目,而我应该得到 TXT 项目的完整列表。

我哪里错了?

$ dig  rosposhop.com TXT


; <<>> DiG 9.9.5-3ubuntu0.1-Ubuntu <<>> rosposhop.com TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14774
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;rosposhop.com.                 IN      TXT

;; ANSWER SECTION:
rosposhop.com.          2362    IN      TXT     "google-site-verification=udcP944OqB1PldDn1ML"

;; Query time: 65 msec
;; SERVER: ***********
;; WHEN: Sat Dec 27 09:10:43 CET 2014
;; MSG SIZE  rcvd: 123

顺便说一句,如果我要求一个子域,现在我又只得到了第一个条目:

$ dig  md.rosposhop.com TXT

返回:

;; ANSWER SECTION:
md.rosposhop.com.       2223    IN      TXT     "v=spf1 include:spf.man*******"

再次,我没有得到 DKIM 信息。 这是一个安全/权限主题? 对不起,我对 DNS 的无知。

谢谢 乔治

【问题讨论】:

【参考方案1】:

进行一次 DNS 查询以一举获取所有信息的方法是错误的。它假定单个区域的数据是 a) 静态的并且 b) 由单个名称服务器管理。 DNS 对区域数据没有这样的限制。

SPF 和 DKIM(以及 DMARC,如果您想将其混在一起)都在特定域上使用 TXT 记录。无需获取域及其子域的所有 TXT 记录即可查看相关配置。

如果您想获取 SPF 和 DKIM 信息,只需查询相应的域即可。假设您在 md.rosposhop.commg.rosposhop.com 上进行 Return-Path 域和 DKIM 签名,那么您应该对 TXT 记录感兴趣

    md.rosposhop.com - SPF mg.rosposhop.com - SPF (selector)._domainkey.md.rosposhop.com - DKIM (selector)._domainkey.mg.rosposhop.com - DKIM

其中(选择器)是您用于该 DKIM 记录的选择器。对于md.rosposhop.commg.rosposhop.com 域中的每一个,您可能有多个选择器。其他域的 TXT 记录无关。

【讨论】:

谢谢彼得。我验证了,你是完全正确的。我选择了你的答案。【参考方案2】:

要获取域的所有记录,您可以使用AXFR 请求来执行区域传输。这必须发送到域的权威服务器之一:

dig rosposhop.com axfr @ns52.domaincontrol.com

但是,出于安全原因,大多数 DNS 服务器都会限制区域传输。通常,只有主服务器允许区域传输,并且只允许到已知的从服务器。 domaincontrol.com 服务器不允许区域传输,所以如果你尝试这个,你会得到一个错误。

【讨论】:

我得到的 AXFR 事实:;; communications error to 208.109.255.26#53: end of file 我知道。我说过他们不允许区域转移。【参考方案3】:

在某些情况下,您有多个具有相同 DNS 条目的 TXT 条目。例如,letsencrypt 通配符和基本 DNS 名称的密钥验证需要两个 _acme_challenge TXT 条目,对于同一域名具有不同的密钥,如下所述:https://community.letsencrypt.org/t/multiple-challenges-when-requesting-wildcard-certificate-for-3-domains/66783。

【讨论】:

以上是关于搜索域和子域的所有 DNS TXT 记录的主要内容,如果未能解决你的问题,请参考以下文章

DevOps之域名

子域名收集

DNS的主从架构子域委派转发器

如何设置DNS,让一个gitlab页面的根域和子域指向同一个地址?

#yyds干货盘点# Next.js通配符子域

DNS主从复制及子域