小白不懂就问:为什么从同一台机器指向不同的权威 DNS,解析到的 A 记录不一样呢

2018-08-18 21:49:34 +08:00
 zclHIT

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> cbg-test.it-ba.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59922 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION: ;cbg-test.it-ba.com. IN A

;; ANSWER SECTION: cbg-test.it-ba.com. 600 IN CNAME cbg-test.it-ba.com.c.cdnhwc1.com. cbg-test.it-ba.com.c.cdnhwc1.com. 60 IN CNAME cbg-test.it-ba.com.rrs.cdnhwc2.com. cbg-test.it-ba.com.rrs.cdnhwc2.com. 20 IN A 114.115.189.20 cbg-test.it-ba.com.rrs.cdnhwc2.com. 20 IN A 114.115.189.31

;; Query time: 97 msec ;; SERVER: 100.100.2.138#53(100.100.2.138) ;; WHEN: Sat Aug 18 21:43:56 2018 ;; MSG SIZE rcvd: 156

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> cbg-test.it-ba.com @114.114.114.114 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40648 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION: ;cbg-test.it-ba.com. IN A

;; ANSWER SECTION: cbg-test.it-ba.com. 600 IN CNAME cbg-test.it-ba.com.c.cdnhwc1.com. cbg-test.it-ba.com.c.cdnhwc1.com. 60 IN CNAME www.ucdn.test.com.c.cdnhwc1.com. www.ucdn.test.com.c.cdnhwc1.com. 60 IN A 58.217.195.90 www.ucdn.test.com.c.cdnhwc1.com. 60 IN A 58.217.195.89

;; Query time: 83 msec ;; SERVER: 114.114.114.114#53(114.114.114.114) ;; WHEN: Sat Aug 18 21:44:05 2018 ;; MSG SIZE rcvd: 139

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> cbg-test.it-ba.com @180.76.76.76 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43350 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION: ;cbg-test.it-ba.com. IN A

;; ANSWER SECTION: cbg-test.it-ba.com. 610 IN CNAME cbg-test.it-ba.com.c.cdnhwc1.com. cbg-test.it-ba.com.c.cdnhwc1.com. 70 IN CNAME www.ucdn.test.com.c.cdnhwc1.com. www.ucdn.test.com.c.cdnhwc1.com. 70 IN A 183.136.165.168 www.ucdn.test.com.c.cdnhwc1.com. 70 IN A 183.136.165.167

;; Query time: 366 msec ;; SERVER: 180.76.76.76#53(180.76.76.76) ;; WHEN: Sat Aug 18 21:45:58 2018 ;; MSG SIZE rcvd: 139

1672 次点击
所在节点    问与答
9 条回复
wdlth
2018-08-18 22:31:27 +08:00
华为也开始搞 CDN 了?
Tianao
2018-08-18 23:45:13 +08:00
😳楼主这指向的不是权威 DNS 吧,解析结果不同应该只是单纯的智能解析,因为从不同的节点递归到了权威 DNS。
msg7086
2018-08-19 02:52:30 +08:00
首先,你贴的内容里也没有权威 DNS 的解析结果啊?
zclHIT
2018-08-19 12:12:12 +08:00
@msg7086 0.0 哦。。。不好意思我以为只要去到 NS 做解析就能拿到。。
zclHIT
2018-08-19 12:12:31 +08:00
@Tianao Soga,学到啦,谢谢回复:)
zclHIT
2018-08-19 12:12:55 +08:00
@wdlth 在用他们的 CDN 来着
zclHIT
2018-08-19 12:32:24 +08:00
@Tianao
@msg7086
感谢两位大神的回复,昨天恶补了一下的确这三个解析都不是权威的。今天在 43.254.0.68 得到了权威的解析结果。
小弟又想了一下应该是比如在 114.114.114.114 得不到权威解析记录的话,会从 114.114.114.114 去进行迭代查询对吧?所以会得到和本地 local dns 不一样的迭代查询结果?
Tianao
2018-08-19 16:11:13 +08:00
@zclHIT 你本地的 DNS 客户端只要没有经过特殊配制,在查询时永远是递归的,也就是说 114.114.114.114 要么返回最终解析结果,要么返回错误 /超时,所以如果这个 IP 不返回解析记录,客户端在这个 IP 就查询不到结果。至于返回的是不是权威解析记录,客户端并不关心也不需要关心。

对于 114DNS,它本身是由多个前后端节点构成的 DNS 系统,并通过 BGP Global AnyCast 技术对外广播统一 IPv4 地址。这个系统内部对客户端是透明的,也就是说客户端没必要也没能力关心 114DNS 内部的查询过程。客户端向具体哪一个 114DNS 前端节点进行递归查询是由路由技术决定的、向最优节点查询是由路由技术实现并保证的。至于收到请求的前端节点没有记录怎么办,这是 114DNS 系统内部的事情。

而 114DNS 返回的结果和本地 DNS 的不一样,是因为其内部在向权威 DNS 查询时使用了在权威 DNS 看来和本地 DNS 来自不同逻辑片区的前端节点。至于为什么会来自不同的逻辑片区,这既涉及到路由问题又涉及到逻辑片区的划分逻辑问题——比如 114DNS 在你本地运营商没有前端节点或者路由表将你错误地路由到了不在你本地运营商的前端节点。
zclHIT
2018-08-19 22:40:45 +08:00
@Tianao 谢谢,这下我基本上就全都懂了^_^

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/481051

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX