![为什么我的 DNS MX 查询返回 SOA 记录?](https://linux22.com/image/731682/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%20DNS%20MX%20%E6%9F%A5%E8%AF%A2%E8%BF%94%E5%9B%9E%20SOA%20%E8%AE%B0%E5%BD%95%EF%BC%9F.png)
我正在使用 PowerShell 获取 MX 记录数组。我想知道为什么以下命令会返回 SOA 记录,因为我已为类型参数指定了 MX。
Resolve-DnsName $SomeDomainName -type MX -Server 8.8.8.8 -DnsOnly -ErrorAction Stop
答案1
您所看到的几乎肯定只是负面回应。
“未找到”响应有两种类型,即NXDOMAIN
和NODATA
。
NXDOMAIN
意味着姓名查询中请求的记录根本不存在。
此类响应在部分中有状态NXDOMAIN
和相关记录(部分中没有任何内容)。SOA
AUTHORITY
ANSWER
NODATA
意味着姓名查询中请求的确实存在,但没有请求的记录类型针对该名称。此类响应具有状态NOERROR
(它没有自己的状态)并SOA
在AUTHORITY
部分中有相关记录(部分中没有任何内容ANSWER
)。
我快速浏览了一下Resolve-DnsName
,我的印象是,其不一致的行为无助于您理解正在发生的事情。
在响应的情况下,NXDOMAIN
它会抛出错误,但在响应的情况下,NODATA
它会返回响应,就好像它是成功的一样。这看起来很奇怪,这两种类型的响应是类似的故障模式,但无论出于什么原因,它们被 完全不同地处理Resolve-DnsName
。
为了更容易地理解正在发生的事情,我建议花一点时间dig
,以便您可以看到这两种情况的完整答复。