
# 默认线路下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解析配置   
![](https://support.huaweicloud.com/dns_faq/zh-cn_image_0000002153324438.png "点击放大")
#### 解析调度不准原因分析
表2请求非默认线路下不同类型解析记录的情况 
| 请求的解析记录类型 | 对应线路下包含的解析记录类型                                                                                                                                                                                  | 返回结果                                                                                                                                                                                      |
|:---|:---|:---|
| A         | - 不存在：A  - 存在：AAAA                 | 返回默认线路下CNAME类型的解析记录，并缓存在LocalDNS中。 由于CNAME类型的解析记录具有最高优先级，在TTL到期时间内，即使发起了A或AAAA查询请求（非默认线路下配置了A或AAAA类型的解析记录），域名查询请求均仍然会被缓存命中，返回默认线路下的CNAME解析记录，从而造成调度不准的情况。 |
| A         | - 不存在：A和AAAA  - 存在：TXT、MX等   | 返回默认线路下CNAME类型的解析记录，并缓存在LocalDNS中。 由于CNAME类型的解析记录具有最高优先级，在TTL到期时间内，即使发起了A或AAAA查询请求（非默认线路下配置了A或AAAA类型的解析记录），域名查询请求均仍然会被缓存命中，返回默认线路下的CNAME解析记录，从而造成调度不准的情况。 |
| AAAA      | - 不存在：AAAA  - 存在：A                | 返回默认线路下CNAME类型的解析记录，并缓存在LocalDNS中。 由于CNAME类型的解析记录具有最高优先级，在TTL到期时间内，即使发起了A或AAAA查询请求（非默认线路下配置了A或AAAA类型的解析记录），域名查询请求均仍然会被缓存命中，返回默认线路下的CNAME解析记录，从而造成调度不准的情况。 |
| AAAA      | - 不存在：A和AAAA  - 存在：TXT、MX等      | 返回默认线路下CNAME类型的解析记录，并缓存在LocalDNS中。 由于CNAME类型的解析记录具有最高优先级，在TTL到期时间内，即使发起了A或AAAA查询请求（非默认线路下配置了A或AAAA类型的解析记录），域名查询请求均仍然会被缓存命中，返回默认线路下的CNAME解析记录，从而造成调度不准的情况。 |
| MX        | 不存在：MX                                                                                                                                                                                          | 返回默认线路下CNAME类型的解析记录，并缓存在LocalDNS中。 由于CNAME类型的解析记录具有最高优先级，在TTL到期时间内，即使发起了A或AAAA查询请求（非默认线路下配置了A或AAAA类型的解析记录），域名查询请求均仍然会被缓存命中，返回默认线路下的CNAME解析记录，从而造成调度不准的情况。 |
| TXT       | 不存在：TXT                                                                                                                                                                                         | 返回默认线路下CNAME类型的解析记录，并缓存在LocalDNS中。 由于CNAME类型的解析记录具有最高优先级，在TTL到期时间内，即使发起了A或AAAA查询请求（非默认线路下配置了A或AAAA类型的解析记录），域名查询请求均仍然会被缓存命中，返回默认线路下的CNAME解析记录，从而造成调度不准的情况。 |
   
#### 解决方案
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。
![](https://support.huaweicloud.com/dns_faq/public_sys-resources/caution_3.0-zh-cn.png)
- 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解析配置   
![](https://support.huaweicloud.com/dns_faq/zh-cn_image_0000002185212909.png "点击放大")
![](https://support.huaweicloud.com/dns_faq/public_sys-resources/note_3.0-zh-cn.png)
"全网默认"线路和非"全网默认"线路下均存在CNAME记录类型，且优先级相同。当请求非"全网默认"线路下MX、TXT等类型解析记录且对应线路下并没有配置对应类型的解析记录时，则返回的解析记录为空，不会出现缓存污染导致解析调度不准。
