文档首页/ 云解析服务 DNS/ 常见问题/ 公网域名解析/ 默认线路下CNAME记录缓存导致解析调度不准如何解决?
更新时间:2025-02-10 GMT+08:00
分享

默认线路下CNAME记录缓存导致解析调度不准如何解决?

DNS解析配置场景

  1. 配置“全网默认”线路类型的CNAME类型解析记录。
  2. 配置非“全网默认”线路类型的其他类型(不含CNAME)的解析记录,例如A、AAAA、TXT、MX等类型。
以域名hwtest-example.com为例,优化前的DNS解析配置如下:
表1 优化前的DNS解析配置

域名

线路类型

记录类型

记录值

hwtest-example.com

电信默认

AAAA

ff03:x:x:x:x:x:x:x

hwtest-example.com

电信默认

A

1.x.x.x

hwtest-example.com

全网默认

CNAME

www.huaweicloud.com

图1 优化前的DNS解析配置

解析调度不准原因分析

表2 请求非默认线路下不同类型解析记录的情况

请求的解析记录类型

对应线路下包含的解析记录类型

返回结果

A

  • 不存在:A
  • 存在:AAAA

返回默认线路下CNAME类型的解析记录,并缓存在LocalDNS中。

由于CNAME类型的解析记录具有最高优先级,在TTL到期时间内,即使发起了A或AAAA查询请求(非默认线路下配置了A或AAAA类型的解析记录),域名查询请求均仍然会被缓存命中,返回默认线路下的CNAME解析记录,从而造成调度不准的情况。

  • 不存在:A和AAAA
  • 存在:TXT、MX等

AAAA

  • 不存在:AAAA
  • 存在:A
  • 不存在:A和AAAA
  • 存在:TXT、MX等

MX

不存在:MX

TXT

不存在:TXT

解决方案

  1. 配置非“全网默认”线路类型下子域名的A、AAAA类型的解析记录。
  2. 配置非“全网默认”线路类型(与1中的线路类型保持一致)下主域名的CNAME记录类型的解析记录,将其解析到A、AAAA类型解析记录对应的子域名。

以域名hwtest-example.com为例:

先为域名www.hwtest-example.com配置“电信”线路下的A和AAAA类型的解析记录,分别解析到IPv4和IPv6的地址;

再为域名hwtest-example.com配置“电信”线路下CNAME类型解析记录,将其解析到www.hwtest-example.com。

  • www.hwtest-example.com仅作为示例,实际配置时根据您的业务需求选择其他未配置解析记录的二级域名。
  • 务必先添加A和AAAA解析记录,再添加CNAME解析记录,否则可能会导致解析中断。
  • 初始配置的主域名下的CNAME解析记录保持不变。
优化后的DNS解析配置如表3图2所示:
表3 优化后的DNS解析配置

域名

线路类型

记录类型

记录值

hwtest-example.com

电信默认

CNAME

www.hwtest-example.com

www.hwtest-example.com

电信默认

AAAA

ff03:x:x:x:x:x:x:x

www.hwtest-example.com

电信默认

A

1.x.x.x

hwtest-example.com

全网默认

CNAME

www.huaweicloud.com

图2 优化后的DNS解析配置

“全网默认”线路和非“全网默认”线路下均存在CNAME记录类型,且优先级相同。当请求非“全网默认”线路下MX、TXT等类型解析记录且对应线路下并没有配置对应类型的解析记录时,则返回的解析记录为空,不会出现缓存污染导致解析调度不准。

相关文档