Mar*_*tin 21 domain-name-system
假设我们有一个名为 www.foo.com 的子域,它有一个指向 foo.bar.cc 的 CNAME 记录。Foo.bar.cc 反过来有一个 A 记录指向 IP 地址 1.2.3.4。
现在,如果我对 www.foo.com 进行 DNS 查找,我会得到如下所示的答案:
www.foo.com. IN CNAME foo.bar.cc.
foo.bar.cc. IN A 1.2.3.4
Run Code Online (Sandbox Code Playgroud)
我的问题是,foo.bar.cc 是在什么阶段解决的?在将响应发送回客户端之前,它是否由递归 DNS 服务器完成?还是客户端向 DNS 服务器发出第二个请求,这次是针对 foo.bar.cc?还是取决于 DNS 服务器是否已经缓存了 foo.bar.cc 条目?
我问是因为一个特定的递归 DNS 服务器只返回第一行,即它不解析 CNAME。但是,大约 20 秒后,对同一主机的后续请求将包括这两行。
Mik*_*ike 17
这 2 条记录在同一个请求中一起返回。您可以通过以下命令找到它
dig +trace www.foo.com
Run Code Online (Sandbox Code Playgroud)
例如,我的域 photoblog.com 有一个 www 的 cname,所以从 photoblog 的名称服务器向我发出的最后 2 个请求看起来像
photoblog.com. 172800 IN NS ns1.photoblog.com.
photoblog.com. 172800 IN NS ns2.photoblog.com.
;; Received 103 bytes from 192.43.172.30#53(i.gtld-servers.net) in 196 ms
www.photoblog.com. 600 IN CNAME photoblog.com.
photoblog.com. 600 IN A 74.52.128.18
photoblog.com. 60 IN NS ns2.photoblog.com.
photoblog.com. 60 IN NS ns1.photoblog.com.
;; Received 133 bytes from 74.52.128.18#53(ns2.photoblog.com) in 59 ms
Run Code Online (Sandbox Code Playgroud)
如您所见,请求询问 ns1/ns2 www.photoblog.com 的 ip 是什么,它返回很好,它是 photoblog.com 的 cname,这是该 A 记录的 ip。
| 归档时间: |
|
| 查看次数: |
13097 次 |
| 最近记录: |