我正在尝试弄清楚如何正确执行此操作。我的服务器用于search-domain
查找 FQDN,因此我的代码可以redis
作为主机进行连接等。
我遇到了一个问题,我的域名的 DNS 提供商出现故障,因此“redis.example.com”几秒钟无法工作,这是不可接受的。我不得不在他们修复问题期间手动将记录添加到主机文件中。
所以我的问题是,我可以使用哪种 DNS 转发器:
- 将 DNS 请求转发到另一台服务器(例如:8.8.8.8)
- 缓存记录
- 使用缓存记录,以防 DNS 服务器出现故障,即使这意味着忽略 TTL(我的记录的 TTL 是 60 秒,但自上次从 8.8.8.8 请求以来已经过去了 30 分钟)
- 可能始终缓存并排队从 DNS 服务器发出的请求(因此每 60 秒,延迟不会因为必须从 DNS 服务器发出请求而增加一点)
知道我能做什么吗?还是我的愿望太多了?
答案1
我建议使用dnsmasq
可以满足您所有需求的:
- 将 DNS 查询转发到一个或多个 DNS 服务器
- 在 hosts 中获取条目
- 缓存查询
它运行良好,配置非常简单,只需使用sudo apt-get install dnsmasq
对于你想要的,你只需添加一行
server=8.8.8.8
并做sudo restart dnsmasq
或sudo /etc/init.d/dnsmasq restart
当然,您可以有多条server=...
线路来使用多个上游 DNS 服务器。
PS 如果您愿意,dnsmasq 还可以作为一个完整的 dhcp 服务器工作,然后将 dhcp 客户端的主机名添加到 dns 系统,这确实非常好。