前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DNS转发导致CDN调度异常

DNS转发导致CDN调度异常

原创
作者头像
mengmye
修改2021-07-06 16:11:47
6.7K1
修改2021-07-06 16:11:47
举报

背景:

当我们需要访问www.baidu.com这个站点时,我们就会在浏览器地址栏中输入http://www.baidu.com这样一个url。实际上我们想要浏览的网页内容都存放在互联网的某台服务器上,而 DNS 的任务就是找到我们想要访问的这台服务器的 IP 地址,然后向它请求内容。 DNS 地址解析是在 HTTP 连接建立之前的一个过程。 本地 DNS 服务器得到浏览器的域名解析请求后,会采用递归查询方式或者迭代查询方式向 DNS 系统中的其他远程域名服务器提出查询要求。

问题描述:

客户反馈广东电信IDC访问至腾讯云CDN节点,出现丢包现象。

原因分析:

问题相关信息梳理:

1、查看广东电信的调度,发现客户通过PING返回的IP并不在调度节点ip列表里;

2、按理PING返回的IP应该为广东电信,但实际是腾讯网络,与预期不符;

3、三大运营商访问腾讯云网络的CAP节点会限速,出现丢包是正常现象。

此时需要确认,为何电信用户访问到腾讯云CAP节点。分析思路如下:

该域名的调度策略是DNS解析,和客户确认测试环境配置的DNS为119.29.29.29(智能dns),支持根据客户端IP归属进行解析。客户反馈的客户端IP归属广东电信运营商。同时也引导客户配合在测试环境CURL测试,通过CDN侧查询日志发现记录的客户端来源信息与反馈的吻合。结合获取的信息,以及智能DNS解析的原理,请求应该调度至广东电信节点,但实际并不是。那么,是否客户提供的DNSIP信息不对呢?带着这个疑问,我们联合客户进行了测试验证。

客户测试环境运行dig @119.29.29.29 xxx,返回的为广东电信的CDN节点IP。再运行如下2个命令,发现返回的DNSIP归属为腾讯云网络。此时客户反馈他们配置的是内网LDNS,且在该DNS上做了特殊的转发策略,预期的是转发到119.29.29.29。但通过腾讯云dns同事协助确认,转发的配置存在问题,实际是将域名递归转发到了腾讯递归网络出口,导致最终解析到腾讯云的CAP节点。

cat /etc/resolv.conf

for i in {1..30};do dig +short $i.ip.dnspod.net ;done |sort -u

解决方案:

修改用户Local DNS配置,保证发起域名解析的环境与客户端ip的环境相同,即走电信出口。

ps:智能dns解析原理

例如8.8.8.8、119.29.29.29等采用了bgp anycast+edns的技术。

其中anycast是多个主机使用相同ip地址的技术,该地址即为这一组主机的共享单播地址。当发送方发送报文给这个共享单播地址时,报文会根据路由协议路由到这一组主机中距离发送方最近的一台。比如谷歌在全球部署了多套DNS服务器,只是对外ip均为8.8.8.8,运营商会根据路由将用户导到距离最近的dns服务器。

8.8.8.8虽然可以做到全球任播来尽量将自己的出口IP靠近真实访客,但是一个个地区部署节点成本还是非常惊人,而且调度效果并不好。因此谷歌设计了一个协议 EDNS0(edns-client-subnet),允许递归服务器在查询包中加上访客的实际IP地址供权威服务器精准调度。即可以实现根据客户端IP归属进行解析。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Anycast 公网加速
Anycast 公网加速(Anycast Internet Acceleration,AIA)是一个覆盖多地的动态加速网络,可以大幅提升您业务的公网访问体验。不同于其他应用层加速服务,AIA 能实现 IP 传输的质量优化和多入口就近接入,减少网络传输的抖动、丢包,最终提升云上应用的服务质量,扩大服务范围,精简后端部署。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档