网络安全检测|网络安全服务|网络安全扫描-香港墨客投资移动版

主页 > 业界资讯 > 网络安全预防措施

因微信支付API对IPv6支持不完整引起的一次故障(2)

如上图,当一个客户端发起DNS解析请求时,会有一个优先级的,按照本地DNS缓存->/etc/hosts的DNS配置->isp或本地域名解析缓存服务器->根域名服务器->顶级域名服务器->...->目标站点权威服务器的顺序一路解析下来。

结合本次故障来看,问题应该是在权威服务器这里。究竟如何,且看下文解说。

先来看看对比的解析结果:

A.api.mch.weixin.qq.com的IPv4解析结果

dig api.mch.weixin.qq.com A +trace

weixin.qq.com. 86400 IN NS ns-cnc1.qq.com.

weixin.qq.com. 86400 IN NS ns-cnc2.qq.com.

api.mch.weixin.qq.com. 600 IN CNAME forward.qq.com.

forward.qq.com. 120 IN A 123.126.122.46

forward.qq.com. 120 IN A 125.39.133.115

 

B.api2.mch.weixin.qq.com的IPv4解析结果

$ nslookup api2.mch.weixin.qq.com

Non-authoritative answer:: api2.mch.weixin.qq.com

Addresses: 182.254.10.62

182.254.12.36

 

C.api.mch.weixin.qq.com的IPv6解析结果

dig @ns-tel1.qq.com weixin.qq.com AAAA weixin.qq.com.

;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 53871

api.mch.weixin.qq.com. 600 IN CNAME forward.qq.com.

 

D.api2.mch.weixin.qq.com的IPv6解析结果

dig api2.mch.weixin.qq.com AAAA

weixin.qq.com. 30 IN SOA ns-tel1.qq.com. webmaster.qq.com. 1293502040 300 600 86400 300

 

从上面的测试结果可看出,api2.mch.weixin.qq.com IPv6解析正常,api.mch.weixin.qq.com.IPv6解析失败是因为多了一层:

api.mch.weixin.qq.com. 600 IN CNAME forward.qq.com.然后 forward.qq.com AAAA 的解析返回是错误的,这里是权威服务器处理失败了。

为什么客户端解析的是 api.mch.weixin.qq.com AAAA,而缓存回去查询 forward.qq.com AAAA 呢?

这是因为 api.mch.weixin.qq.com. 600 IN CNAME forward.qq.com. 这条记录被缓存了,导致后边后续的查询都会变成查 forward.qq.com 对应的记录。

下面再对比一下解析和api.mch.weixin.qq.com看看在权威服务器层面有何不同。

#+++++++++++++++++++++++++++++++++++++++++++

dig AAAA

; IN AAAA

;; ANSWER SECTION:

600 IN CNAME

216 IN CNAME 163.xdwscache.ourglb0.com.

;; AUTHORITY SECTION:

ourglb0.com. 30 IN SOA DNS1.ourglb0.org. webmaster.ourglb0.com. 1107011041 10800 3600 64800 60

#+++++++++++++++++++++++++++++++++++++++++++

dig api.mch.weixin.qq.com AAAA @ns-cnc1.qq.com.

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9615

;; WARNING: recursion requested but not available

;; AUTHORITY SECTION:

weixin.qq.com. 43200 IN SOA ns-tel1.qq.com. webmaster.qq.com. 1293502040 300 600 86400 300

 

这里api.mch.weixin.qq.com的AAAA 解析返回有问题,是SOA,按协议应该还是返回 CNAME 记录;可以对比 的解析结果发现后者就是返回的SOA。

(责任编辑:admin)