多个MX记录,不同的TTL?

时间:2016-03-14 10:47:50

标签: dns ttl

我想知道以下是否是预期的行为。

默认TTL为14400的区域有两条MX记录,如下所示:

domain.topleveldomain MX 10 host.otherdomain.topleveldomain(未指定TTL)

domain.topleveldomain 86400 MX 50 host.domain.topleveldomain

当针对domain.topleveldoman的权威名称服务器运行挖掘mx记录时,将返回以下内容

domain.topleveldomain。 14400 IN MX 50 host.domain.topleveldomain。

domain.topleveldomain。 14400 IN MX 10 host.otherdomain.topleveldomain。

正如您所看到的,当TTL为86400时,MX记录domain.topleveldomain的TTL返回为14400.

拥有DNS知识的其他人可以比我自己解释一下吗?

亲切的问候

2 个答案:

答案 0 :(得分:1)

RFC 2181中不推荐为同一标签,类和类型的不同记录设置不同的TTL。 从第5.2节开始:

  

资源记录[(RR)带有标签,类别,类型和数据]也有生存时间(TTL)。有可能   RRSet中的RR [ =相同的标签,类和类型;不同的数据]有不同的TTL。没有用途   被发现无法通过其他方式更好地完成。这个   但是,可以从a引起部分回复(未标记"截断")   缓存服务器,其中一些但不是所有RR中的TTL   RRSet已过期。

     

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

答案 1 :(得分:0)

这可能是一个简单的优化。 TTL是记录可以缓存的最大时间,因此将整个RRset的TTL(即具有相同名称,类和类型的区域中的所有RR)设置为最低TTL单个记录是完全正常的,可能会使内部的事情变得不那么复杂。所以你看到的行为有点令人惊讶,但绝不是错误的。

尝试将一个RR的TTL设置为 lower 而不是默认值,可能会很有趣,看看会发生什么。如果所有RR仍然以较低的TTL发送出去,则服务器软件知道它正在做什么。如果所有的RR都使用默认的TTL发送出去,那么软件就会出错: - )