云解析服务 DNS
云解析服务 DNS
- 最新动态
- 功能总览
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- API参考
- SDK参考
- 场景代码示例
-
常见问题
-
产品咨询类
- 云解析服务是否计费?
- 支持创建多少个域名/记录集/反向解析?
- 华为云DNS对用户提供域名服务的DNS服务器地址是什么?
- 华为云云解析服务提供的内网DNS地址是多少?
- 公网解析与内网解析有什么区别?
- 是否同时支持IPv4和IPv6解析?
- 是否支持显性/隐性URL转发功能?
- 是否支持动态域名解析?
- 是否支持泛解析?
- 什么是TTL值?
- 云解析服务最高支持几级域名?
- 域名解析的顺序是什么?
- DNS解析线路的优先级顺序是什么?
- SOA记录中的Email格式为什么变化了?
- 什么是CAA?
- MX优先级有什么意义?
- 云解析服务是否支持端口解析?
- 如何配置NSCD服务实现缓存加速并提高DNS可用性?
- 怎样提高自建DNS的响应时效?
- 如何使用Serving Stale提高自建DNS的解析成功率?
- 如何配置Nginx解析域名?
- 是否支持通过EDNS获取客户端真实IP地址实现精准调度?
- 域名解析不生效
- 网站无法访问
- 公网域名解析
- 内网域名解析
- 反向解析
- 域名转移
- 邮箱解析
-
产品咨询类
- 视频帮助
- 文档下载
- 通用参考
本文导读
链接复制成功!
如何使用Serving Stale提高自建DNS的解析成功率?
什么是Serving Stale
Serving Stale是RFC 8767描述的用于提高DNS解析可靠性的一个标准。当Local DNS上的域名缓存过期,由于权威DNS故障导致Local DNS无法刷新本地缓存时,可以通过Local DNS的Serving Stale的能力使用过期的缓存结果应答请求,避免客户端无法得到响应。
- 上游DNS服务器故障时,使用过期的缓存应答请求,可能导致域名在上游DNS更新后,自建DNS不能及时给客户端响应最新的结果。
- Serving Stale功能是使用在自建DNS缓存已经过期的缓存来应答客户端,未缓存过的域名不适用。
Serving Stale的使用场景
如下图中,容器/ECS使用了自建DNS做域名解析,当自建DNS的上游DNS由于故障而无法应答时:
- 如果自建DNS未开启Serving Stale能力,容器/ECS解析域名会失败。
- 如果自建DNS开启了Serving Stale能力,自建DNS使用过期的缓存来应答容器/ECS,解析不中断。
图1 Serving Stale的使用场景
![](https://support.huaweicloud.com/dns_faq/zh-cn_image_0000002015093362.png)
如何开启Serving Stale
- bind9开启Serving Stale:如果您的自建DNS用的是bind,可以在bind的options配置中增加相关配置项并重载/重启您的DNS服务来生效。
- coreDNS开启Serving Stale:如果您的自建DNS是coreDNS或者您需要优化k8s集群的域名解析时延,可以在cache配置项中开启Serving Stale。
bind9开启Serving Stale
bind9支持版本:9.16.3及以上
- 配置文件:named.conf
- 配置位置:options
- 配置项说明
配置项
默认值
建议值
功能说明
stale-cache-enable
no
yes
启用缓存保持功能。
stale-answer-enable
stale-answer-enable
yes
启用stale-cache来应答。
max-stale-ttl
1day
1day
stale-cache缓存保持多长时间。
stale-refresh-time
30s
30s
bind刷新stale-cache的时间间隔,即多长时间向权威DNS请求一次,并刷新缓存。
stale-answer-ttl
30s
30s
使用stale-cache回复response时,报文中的TTL值。
- 配置样例:
options { stale-cache-enable yes; stale-answer-enable yes; };
coreDNS开启Serving Stale
coreDNS插件中已支持Serving Stale能力,允许coreDNS无法连接上游DNS服务器时使用已过期的本地缓存来应答。
coreDNS支持版本:1.6.6
- 配置格式:serve_stale [DURATION] [REFRESH_MODE]
- 配置项说明:
- DURATION:过期缓存的使用时长,默认值为1h。
- REFRESH_MODE:支持配置为verify、immediate。
- verify:在将过期的缓存发送到客户端之前,先验证上游的DNS是否可用。该方式可能会增加客户端的解析时延。
- immediate:立即将过期的缓存作为响应发送给客户端。
- 配置样例:
cache { serve_stale 1h immediate }
父主题: 产品咨询类