当DNS名称中的多个MXlogging具有不同的TTL时会发生什么情况?

我想知道当DNS中的一个名有多个不同的生存时间(TTL)的MXlogging会发生什么?

例如,如果这些是example.com的MXlogging呢?

  • TTL = 3天,优先级= 1,结果= mx1-slow.example.com
  • TTL = 60秒,优先级= 1,结果= mx1-fast.example.com
  • TTL = 1天,优先级= 2,结果= mx2.example.com
  • TTL = 1小时,优先级= 3,结果= mx3-hour.example.com
  • TTL = 60秒,优先级= 3,结果= mx3-fast.example.com
  • TTL = 2天,优先级= 3,结果= mx3-slow.example.com

如果邮件传输代理向这个域发送消息会发生什么情况 – 其中一些MX服务器可能正在工作,有些可能不工作,并将结果caching2分钟? 2小时? 1.5天? 2.5天? 是否需要通过所有MXlogging中最小的TTL(在这种情况下为60秒),并且如果已经过了很多时间,则重新查找所有MXlogging,而忽略其余MXlogging中较长的TTL? 或者caching实际上是否考虑到了所有不同的TTL? 如果所有的TTL都被考虑在内,你能提供一些关于如何工作的例子。

您描述的情况不是有效的logging集。

单个RRset(特定名称,类,types组合的logging集)不允许其个别logging具有不同的TTL。 但是,如果在与权威服务器通信时遇到这样的(无效)logging集,则应该使用最小的TTL,而在其他情况下,logging集应该被完全忽略。

从澄清到DNS规范 (从1997年):

5.2。 RRSet中的RR的TTL
资源logging还有一个生存时间(TTL)。 RRSet中的RR有可能具有不同的TTL。 没有发现这样的用途,在其他方面不能更好地完成。 但是,这可能会导致caching服务器的部分回复(未标记为“截断”),RRSet中某些但不是全部RR的TTL已过期。

因此,在RRSet中使用不同的TTL在此被弃用,RRSet中的所有RR的TTL必须相同。

如果客户端收到来自RRSet的带有不同TTL的RR的响应,则应将其视为错误。 如果所涉及的RRSet是来自这个数据的非权威来源,则客户应该简单地忽略RRSet,如果这些值是必需的,则试图从权威来源获得它们。 configuration为将所有查询发送到一台或多台特定服务器的客户端应将这些服务器视为具有权威性的服务器。 如果权威来源发送这样一个格式不正确的RRSet,客户应该将RR用于所有目的,就好像RRSet中的所有TTL已经被设置为RRSet中最低TTL的值。 在任何情况下,服务器都不能发送与TTL不完全相等的RRSet。