@
vpnyihao 经过联合排查,部分地区无法解析 360 域名的原因已经定位,之后会进行修复。具体原因如下:
1.
www.so.com 的解析记录是这样的
www.so.com CNAME
so.qh-lb.comso.qh-lb.com A 140.207.202.254
2.
www.so.com 的授权 NS 地址是 ns3/4/5/7/
8.360safe.com ,该授权 NS 支持 google ecs 协议,可以对我们后端递归发出的带有 ecs 的查询包正常响应。
3.
so.qh-lb.com 的授权 NS 地址是 ns2/3/5/
6.qh-lb.com ,该授权 NS 不支持 google ecs 协议,对我们后端递归发出的带有 ecs 的查询包返回格式错误(符合 RFC 协议)
4. 我们自研的后端递归对 2,3 单独出现时都可以兼容,可以正常解析。但是当 2 和 3 同时混合出现时,我们的后端递归逻辑有点问题,再收到 format error 后再次重试还是带着用户的 IP 去向 360 的第二级授权请求,结果总是返回 format error ,最终解析超时。
5. 江西联通的递归节点失败后,路由回退到联通默认递归节点 /全网默认递归节点,我们所有的默认节点都是支持 ecs 的递归,同样有该 ecs 的问题,最终还是超时。
6. 部分地区可以解析的原因是我们的后端递归节点并非全部部署的支持 ecs 的自研递归,有部分与其他业务复用的节点使用的是不支持 ecs 的递归程序,可以正常解析。不支持 ecs 的递归只会处理该省份运营商的解析请求,没有递归节点的省份运营商的解析都是调度到邻近省份相同运营商且支持 ecs 的自研递归进行解析的。这里我们在江西联通,联通默认,全网默认的递归节点部署的都是支持 ecs 的递归,最终造成该问题。
7. 其他类似这样的域名也会遇到该问题。
解决方案:
1. 先在三大运营商默认线路各增加两台不支持 ecs 的递归节点,先解决部分地区部分域名无法解析的问题。
2. 我们已经对递归代码中自动探测授权 DNS 是否支持 ecs 的逻辑着手修改,修改验证完成后会灰度上线。