Mar*_*tin 2 domain-name-system bind
假设我在我的 DNS 服务器中为 192.0.2.0/24 网络创建了一个反向区域文件,我的 DNS 服务器将成为反向区域 2.0.192.in-addr.arpa 的权威。在这个反向区域文件中,我使用以下参数创建了授权开始记录:
$ dig @localhost -t SOA 2.0.192.in-addr.arpa. +noall +answer
2.0.192.in-addr.arpa. 604800 IN SOA primary-DNS-server secondary-DNS-server 2015010600 28800 7200 1209600 86400
$
Run Code Online (Sandbox Code Playgroud)
我对这个反向区域的 DNS TTL 是 86400 秒是否正确?这意味着如果递归(缓存)名称服务器从该区域询问 PTR 记录,那么该递归名称服务器会将结果缓存 86400 秒?
早在 1997 年,这将是对多个 SOA 记录的一种正确解释。:) 那时的事情有点模棱两可。
RFC 2308将 SOA 记录的最后一个字段重新分类为负缓存间隔,也称为NCACHE字段。RFC2308 §4 在这里最适用。它不仅将其重新定义为NCACHE字段,而且还解释了为什么将默认 TTL 编码到 SOA 记录中会被误导。(后者的重点是粗体)
4 - SOA 最小字段
SOA 最小值字段过去被重载为三种不同的含义,区域内所有 RR 的最小 TTL 值,不包含 TTL 值的 RR 的默认 TTL 和否定响应的 TTL。
尽管是最初定义的含义,但其中的第一个,即区域中所有 RR 的最小 TTL 值,从未在实践中使用过,因此不推荐使用。
第二,RR 的默认 TTL 在主区域文件中不包含显式 TTL,仅与主服务器相关。区域传输后,所有 RR 都具有显式 TTL,并且无法确定记录的 TTL 是显式设置还是从区域传输后的默认值派生而来。 如果服务器不要求 RR 明确包含 TTL 值,它应该提供一种机制,而不是 SOA 记录的 MINIMUM 字段的值,从中获取丢失的 TTL 值。这是如何完成的取决于实现。
主文件格式 [RFC 1035 第 5 节] 扩展为包括以下指令:
Run Code Online (Sandbox Code Playgroud)$TTL <TTL> [comment]出现在指令之后的所有资源记录,并且没有明确包含 TTL 值,它们的 TTL 设置为 $TTL 指令中给定的 TTL。没有显式 TTL 的 SIG 记录从 SIG 记录的“原始 TTL”中获取它们的 TTL [RFC 2065 第 4.5 节]。
剩余的当前含义,即用于否定响应的 TTL,是 SOA 最小字段的新定义含义。
打破这个:
NCACHE)的最后一个字段指定如果查询结果为 NXDOMAIN,远程名称服务器应缓存否定响应的时间。$TTL基于文本的区域文件的指令等效的内容定义。$TTL和 family 不是记录,因此您无法查询它们,并且它们不会在区域转移中幸存下来。(相反,所有丢失的 TTL 将在区域传输时替换为该值)正如安迪所说,如果单个记录指定自己的 TTL,则默认 TTL 没有实际意义。
| 归档时间: |
|
| 查看次数: |
5523 次 |
| 最近记录: |