假设我们有一个名为 www.foo.com 的子域,它有一个指向 foo.bar.cc 的 CNAME 记录。Foo.bar.cc 反过来有一个指向 IP 地址 1.2.3.4 的 A 记录。
现在,如果我对 www.foo.com 进行 DNS 查找,我将得到如下所示的答案:
www.foo.com. IN CNAME foo.bar.cc.
foo.bar.cc. IN A 1.2.3.4
我的问题是,foo.bar.cc 在什么阶段解决了?是递归 DNS 服务器在将响应发送回客户端之前完成的吗?或者客户端是否向 DNS 服务器发出第二个请求,这次是针对 foo.bar.cc?还是取决于 DNS 服务器是否已经有 foo.bar.cc 的缓存条目?
我问是因为一个特定的递归 DNS 服务器只返回第一行,即它不解析 CNAME。然而,大约 20 秒后,对同一主机的后续请求将包含这两行。