我想控制www.example.com
(但不是example.com
)使用 DNS 的目标 IP 地址,并尽可能地控制这个子域 TTL,因为我没有直接控制父域本身。我知道我可以使用两种机制:
www.example.com
我可以在我的名称服务器中设置一个区域,并让名称服务器example.com
为www.example.com
.www.example.com
我可以使用 CNAME 指向example.mydomain.com
然后控制example.mydomain.com
. 对于远程方来说,这可能更容易设置,因为在我经常使用的圈子中,使用 NS 记录进行委派并不常见。
我有点模糊的是 ttl 机制的微妙之处——尤其是在缓存方面。如果我使用 CNAME,实际 TTL 是否由www.example.com
记录上的 TTL 和上的 TTL 控制example.mydomain.com
,或者(如果 CNAME 记录不更改),这是否仅与example.mydomain.com
.
同样,如果我使用 NS 条目,是否公平地说(如果名称服务器没有更改),更改分辨率www.example.com
的 TTL 由www.example.com
A 记录的 TTL 控制,我不需要担心关于 NS 记录的 TTL?
记录的 TTL 仅适用于该记录和该记录,并在它进入任何给定名称服务器/缓存解析器的缓存后开始过期。
请注意,许多(大多数?)缓存名称服务器(即最终客户端使用的缓存解析器)将对所有以任何较低值获取的记录设置至少 300 秒的 TTL。另请注意,客户端和权威名称服务器之间可以有多个缓存名称服务器。
您可能希望任何 CNAME(或 NS、MX 等)记录上的 TTL 相对较长,并且可能希望任何 A 记录上的 TTL 更短(例如短至 300 秒)。
让某人委托主机名(例如
www.example.com
)以允许您控制最终 A 记录的最简单方法当然是使用 CNAME,但当然请记住,这样的主机名必须是子域名,即它不能位于zone cut 因为当然 CNAME 可能不存在与同一节点上的任何其他记录。例如在父域名服务器中:
然后在您的名称服务器中: