我正在为一个班级做练习,我必须刷新 DNS 缓存,然后访问www.ietf.org并捕获数据包。我得到了这个:
选定的查询和响应是“主要”的。其他的呢?看起来像是重定向。我猜想第二个和第三个查询也与查找 IPv4 和 IPv6 地址有关。
答案1
由于使用 CNAME 记录,因此存在多个查询,这在使用 CDN 时经常出现的情况。
你可以很容易地看到:
$ dig www.ietf.org +noall +ans
www.ietf.org. 16m2s IN CNAME www.ietf.org.cdn.cloudflare.net.
www.ietf.org.cdn.cloudflare.net. 5m IN A 104.16.45.99
www.ietf.org.cdn.cloudflare.net. 5m IN A 104.16.44.99
但这是因为递归名称服务器确实迭代了以向您提供答复。如果您一步一步地执行此操作,您会发现发生了什么:
$ dig www.ietf.org +norecurse A
[..]
;; ANSWER SECTION:
www.ietf.org. 13m23s IN CNAME www.ietf.org.cdn.cloudflare.net.
进而:
$ dig www.ietf.org.cdn.cloudflare.net. A
[..]
;; ANSWER SECTION:
www.ietf.org.cdn.cloudflare.net. 5m IN A 104.16.44.99
www.ietf.org.cdn.cloudflare.net. 5m IN A 104.16.45.99
$ dig www.ietf.org.cdn.cloudflare.net. AAAA
[..]
;; ANSWER SECTION:
www.ietf.org.cdn.cloudflare.net. 5m IN AAAA 2606:4700::6810:2d63
www.ietf.org.cdn.cloudflare.net. 5m IN AAAA 2606:4700::6810:2c63
如今,智能应用程序预计会同时使用 AAAA 和 A 记录类型来解析名称,并且略微偏向 IPv6。例如,“Happy Eyeballs”算法就解释了这一点。
PS:DNS 中没有“重定向”,因此请不要在这种情况下使用该术语;重定向是 HTTP 级别的问题,远远超出/晚于 DNS 层发生的事情。