为什么不建议在 DNS 中使用多个 PTR 记录?

Tot*_*tor 38 domain-name-system query ptr-record fcrdns

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

然而,原因通常是含糊的,或者不那么明显,命名为:

  • “它可能会导致问题”,
  • “可以触发程序中的错误,期望得到一个答案”:那么这是软件的问题,不是吗?!
  • “可以使 DNS 应答数据包太大”:这不是用EDNS修复的吗?

这些是很好的理由吗?你知道任何其他(好的)原因吗?所有这些看起来都像是“遗留恐惧”......

Håk*_*ist 23

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

网络节点的网关指针和全地址节点的普通主机指针都使用 PTR RR 来指向相应主机的主域名。

来自:http : //tools.ietf.org/html/rfc1035#section-3.5

这种期望反映在进行反向查找的软件中;通常,此类软件特别希望返回单个名称,并且希望能够将该名称用作该主机的规范名称。如果返回了多个名字,通常只是随机取一个,因为他们完全不知道在这个特殊场合你更喜欢哪一个。

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

从本质上讲,如果您有多个PTR记录,您实际上并没有让您的主机看起来更合法,而是相反,您可能会面临某些验证失败或以其他方式破坏某些内容的风险。

作为一个可能有点极端的比喻,在机场交出五本带有照片但名字不同的护照可能不会像你只交出一本那样收到。


Gio*_*oni 17

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

您可以在此处阅读更多相关信息:https : //supernoc.rogerstelecom.net/pdfs/multiple-ptrs.pdf

另外,从 Glibc 的 getnameinfo 函数(https://sourceware.org/bugzilla/show_bug.cgi?id=5790)检查这个错误。你怎么能保证这不会发生在互联网上无数不同的系统中(其中一些非常旧且未打补丁)?

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

  • 您如何保证在 Internet 上“无限”数量的不同系统中不会出现*任何问题*?你的回答很好,但这个论点没有价值。此外,恕我直言,客户端错误无关紧要,除非其中“大量”受到影响。 (2认同)

小智 5

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

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

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

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