方案是我有一台机器,我的Web应用程序部署在它上面.应用程序必须连接到远程资源.此资源不在我的控制之下 – 它是由其他公司提供的第三方Web服务,但它在我的客户的域名下.客户端的DNS服务器不时失败,因此我的应用程序无法解析域名,但此第三方WS仍然可用(客户端的DNS失败与其无关),因此我可以通过IP到达并完成我的工作.
所以我正在寻找工具(DNS缓存?),只要DNS服务器启动,它将通过DNS解析域名,并在DNS服务器关闭时返回最后获得的值.
减少DNS请求数不是我对这种情况感兴趣的,所以“经典”DNS缓存不是这里的解决方案(我认为).
编辑:
具有本地DNS缓存的方案对我不起作用:
1.远程DNS运行良好
2.本地DNS缓存正在缓存来自远程DNS的响应
3.在响应的TTL到期之前,远程DNS崩溃
4.直到响应的TTL到期,缓存提供缓存响应;到现在为止还挺好
5.响应的TTL到期,缓存刷新条目并且无法获得新的响应,因为远程DNS仍然关闭;这个不好
解决方法
>默认情况下,这些解决方案未配置为无限期地记住名称(如您所知),并且将使与各个DNS记录关联的TTL的缓存条目失效.许多记录在五分钟左右都有短TTL.
>该软件可能不允许您实施阻止数据过期的“最小TTL”策略.
>即使该软件允许您强制执行最小TTL,这也会引入其自身的问题.由于某种原因,一些记录的TTL很短.忽略这些短TTL可能会导致意外问题.
最终,您要求的是名称服务器记住最后一次已知的非错误响应,这不是DNS空间中当前存在的功能. There is currently a draft standard in the works to address this由于针对具有DDoS攻击的权威DNS系统的日益普及.一旦超过草案状态,我们可能会在不久的将来看到这种情况的实施.