答案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 与前向条目匹配