客户端访问CDN网络异常排查流程

在处理客户CDN问题的过程中,很大一部分问题主要集中在部分客户端访问异常。如果要排查客户端访问异常,就不得不先讲解一下客户访问CDN域名经过的路径。

客户端访问CDN流程

客户端访问CDN域名示意图

具体的流程可以简述为如下: 1.用户访问CDN域名 www.test.com 下的某图片资源,如 demo.jpg 发起请求,先要向 Local DNS 发起域名解析请求;

2.当 Local DNS 无对应解析纪录时,会递归查询,此时由于业务已经接入了 CDN,则解析请求会发送至 Tencent DNS,Tencent DNS 为腾讯云自主研发的调度体系,会为请求分配最佳节点IP;

3.Local DNS 获取Tencent DNS返回的解析 IP;

4.用户测获取解析 IP;

5.用户向获取的 IP 发起对资源 demo.jpg 的访问请求;

6.若该 IP 对应的节点缓存有 demo.jpg,则会将数据直接返回给用户(10),此时请求结束。若该节点未缓存 demo.jpg,则节点会向业务源站发起对 demo.jpg 的请求(6、7、8),获取资源后,结合用户自定义配置的缓存策略,将资源缓存(9),并返回给用户(10),此时请求结束。

客户端访问CDN排查

1.确定客户端配置是否正常

该步骤目的是查看用户的出口IP,以及用户的Local DNS信息,以及腾讯DNS给客户调度的IP信息。收集到上述的信息可以初步判断用户的LDNS配置是否正确。一般出口IP和LDNS隶属于同一个地域同一家运营商,如果出现跨地域和跨网就会有异常,此时腾讯DNS给客户调度的IP就不是最优的CDN边缘节点,会导致用户访问CDN资源出现卡,慢,无法访问等情况。

不论客户端是电脑还是手机,都可以访问华佗进行诊断,在域名一栏输入CDN的域名信息后点击开始拨测。

华佗域名诊断工具

开始拨测后,会统计客户端的出口IP以及LDNS信息。以及域名推荐的CDN解析IP和实际LDNS解析的CDN域名信息。可以点击“复制结果URL分享”来对该检测结果进行分享。

华佗实际拨测信息

从华佗的拨测信息,我们就可以很容易的判断出客户的IP和默认的LDNS是否属于同地域同运营商。一般如果用户DNS配置为公共DNS解析(例如8.8.8.8,114.114.114.114),就很容易出现客户出口IP和LDNS不一致的问题。

通过LDNS解析IP一项,复制解析的IP信息,在腾讯云控制台上CDN节点IP归属查询,对解析的IP进行查询。就可以判断是否就近分配CDN边缘节点,以及域名是否存在劫持。

CDN节点IP归属查询

注:有时华佗出现无法拨测出出口IP,LDNS以及解析出CDN域名的情况。可以使用http://debug.ping.dnsv1.com/ping.x 网站查看出口IP和LDNS,至于CDN解析的IP地址,可以直接使用ping CDN域名看到具体的IP地址。

如果客户出口IP,LDNS配置都没有问题,且LDNS解析的IP也正常。此时需要继续排查网络的问题

注意:海外的CDN拨测华佗不支持,建议使用 http://debug.ping.dnsv1.com/ping.x 链接来测试出口IP和LDNS信息,至于域名解析的信息,可以直接ping一下域名就可以拿到。

2.客户端到CDN边缘节点网络异常

客户端到CDN边缘节点网络异常相对来说比较好排查,腾讯云对外的所有边缘节点的IP都是可以ping通的,可以在客户端ping边缘节点的IP,看是否有丢包。如果有丢包,就需要提供客户端到边缘节点的MTR信息。

如果是Windows客户端,可以下载WinMTR工具进行测试,具体链接https://github.com/oott123/WinMTR/releases

如果是Apple设备,可以在App store搜索Best NetTools下载安装,可以进行ping,DNS解析,以及MTR

如果是安卓设备,可以访问https://huatuo.qq.com/下载诊断App,输入对应的边缘节点对网络进行诊断。

如果使用MTR看到有丢包,将MTR截图给到腾讯云售后支持。腾讯云售后会把相关的问题反馈给运营商进行处理。

如果上述步骤都排查后都正常,就需要从访问日志以及客户端返回状态码进行分析。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券