我想知道以下是否是预期的行为。
默认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知识的其他人可以比我自己解释一下吗?
亲切的问候
答案 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发送出去,那么软件就会出错: - )