为什么不建议 DNS 中有多个 PTR 记录?

为什么不建议 DNS 中有多个 PTR 记录?

经常 不建议在 DNS 配置中使用多个 PTR 记录。

然而,原因往往不明确或不太明显,例如:

  • “这可能会引起问题”,
  • “会在期望单一答案的程序中触发错误”:那么这是软件的问题,不是吗?!
  • “可能导致 DNS 应答包过大”:这个问题不是已经修复了吗?增强型DNS

这些是好的理由吗?您知道其他(好)的理由吗?在我看来,这一切有点像“遗留恐惧”……

答案1

PTR反向名称的记录(例如)7.2.0.192.in-addr.arpa有望识别规范名称与该 IP 地址关联的。

网络节点处的网关指针和完整地址节点处的普通主机指针都使用 PTR RR 指回相应主机的主域名。

从:https://www.rfc-editor.org/rfc/rfc1035#section-3.5

这种期望反映在执行反向查找的软件中;通常,此类软件会明确期望返回单个名称,并期望能够使用该名称作为该主机的规范名称。如果返回多个名称,通常会随机取一个,因为它们完全无法知道您在这种特定情况下会选择哪一个。

由于一般预期是有一个与 IP 地址相关联的规范名称,并且该名称应该PTR指向,因此添加多个名称通常没有任何好处(没有人期望任何随机A/AAAA记录具有匹配),但它有一个潜在的缺点,因为它可能会导致奇怪的结果,因为如果您添加了多个记录,PTR您无法控制将使用哪些记录。PTR

本质上,如果您有多个PTR记录,您实际上并不会让您的主机看起来更合法,相反,您会面临某些验证失败或破坏某些东西的风险。

举一个可能有些极端的比喻,在机场递交五本带有照片但名字不同的护照,可能不会像只递交一本那样受到欢迎。

答案2

这一切都归结为不可预测的行为,因为 RFC 没有施加限制或处理这些 PTR 记录的方法。大多数实现将选择循环,您将无法获得所需的结果(多个名称与单个 IP 完美匹配)。

您可以在以下位置阅读更多相关信息为什么不应该在单个 IP 上使用多个 PTR 记录

另外,检查getnameinfo 在多个 PTR 记录上的奇怪行为在 的错误跟踪器中glibc。您如何保证这种情况不会发生在互联网上无数不同的系统中(其中一些系统非常老旧且未打补丁)?

再次强调,作为一条经验法则,避免未指定和不可预测的行为总是好的。不幸的是,单个 IP 的多个 PTR 记录属于此类(就 RFC 而言)。

答案3

如果有多个 PTR,如何保证某个 PTR 与特定的前向记录匹配?

这在邮件服务器交互中尤其重要,大多数入站接收 SMTP 服务器将检查转发是否与反向匹配

相当困难的是,你有多个 PTR,并且没有办法保证选择哪个 PTR,并且它与你在连接时给出的转发相匹配

保证完美匹​​配的最简单方法是让一个 PTR 与前向条目匹配

相关内容