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


36

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

但是,命名的原因通常是含糊不清或不太明显:

  • “可能会引起问题”,
  • “可以触发程序中的错误并期望得到一个答案”:那是软件的问题,不是吗?
  • “可能会使DNS应答数据包太大”:EDNS不能解决此问题吗?

这些是好的理由吗?您是否知道其他(良好)原因?所有这些看起来都像是“传统恐惧”。


4
为什么要为一个IP地址拥有多个PTR记录?我想不出一个合理的理由。
Per von Zweigbergk 2014年

3
@PervonZweigbergk这不是我要的,但是例如,因为我有多个指向同一IP的名称,并且希望反向匹配所有这些名称。
Totor 2014年

10
@PervonZweigbergk想象一个处理多个域邮件的邮件服务器。您可能想在命令中使用您要为其发送邮件的域中的名称EHLO。某些收件人要求您具有PTREHLO命令中的域匹配的记录,否则它们将不接受来自您的邮件。但是,如果您有多个PTR记录,它们可能只是随机选择其中一个,并且如果该记录与EHLO命令不匹配,它将拒绝邮件。
kasperd 2014年

3
我知道这不是您要问的,这就是为什么我通过评论而不是答案来问。:-)您从未提到您在谈论什么应用程序。您最好做得更明确一点,就是您在谈论外发电子邮件的上下文,这就是@kasperd推测的内容。
Per von Zweigbergk 2014年

2
@kasperd我想有人可能想这样做,但是这样做是不合常规的,不必要地引起了问题所在。邮件服务器仅应在其EHLO命令中使用单个名称,而不管其处理邮件的域是多少。HELO/中的名称应用EHLO来标识邮件服务器本身,与MAIL FROMFrom邮件地址无关。
哈坎·林奎斯特

Answers:


19

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记录,您实际上并没有使主机看起来更合法,反而会使主机看起来更不合法,则可能会导致验证失败或破坏某些内容。

作为一个可能有点极端的隐喻,在机场交给您全部带有照片但名字不同的五本护照可能不会像您只交出一本一样。


详细说明“一个规范名称”:在IP地址可以与多个实体相关联的情况下,最具体的优先。如果Web服务器具有多个基于名称的虚拟主机,则最适合使用Web服务器本身的名称。这是完全遵循信息RFC的建议(PTR始终与A记录保持一致)的情况之一。
Andrew B

“ PTR记录有望识别”:谁?这似乎是事实上的规则,因为软件开发人员开始考虑只有一个PTR是标准。我对吗?
Totor

@Totor添加了报价和来源链接。
哈坎·林奎斯特

作为轶事,最近有人指出,苹果公司有一些PTR记录,它们的答案价值超过9k字节。毫无疑问,它们不是唯一的。这是一个极端的例子,说明当强制性PTR记录策略不考虑此答案的详细信息时,您可能会得到什么。
Andrew B

16

由于RFC并没有施加限制或处理这些PTR记录的方式,所以所有这些都归因于不可预测的行为。大多数实现将选择循环访问,而您将无法实现所需的结果(许多名称与单个IP之间的完美匹配)。

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

另外,请通过Glibc的getnameinfo函数(https://sourceware.org/bugzilla/show_bug.cgi?id=5790)检查此错误。您如何保证在Internet上的无数不同系统(其中某些系统非常陈旧且未打补丁)中不会发生这种情况?

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


2
您如何保证Internet上“无数”不同系统中不会出现任何问题?您的回答很好,但是此参数没有任何价值。此外,客户端错误与IMHO无关,除非会影响到“大量”错误。
Totor

2

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

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

非常困难的是,您有多个PTR,并且无法保证选择了哪个PTR,并且该PTR与您在连接中给出的前向匹配

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.