Linux DNS 缓存的性能和安全性

Linux DNS 缓存的性能和安全性

我正在尝试弄清楚如何正确执行此操作。我的服务器用于search-domain查找 FQDN,因此我的代码可以redis作为主机进行连接等。

我遇到了一个问题,我的域名的 DNS 提供商出现故障,因此“redis.example.com”几秒钟无法工作,这是不可接受的。我不得不在他们修复问题期间手动将记录添加到主机文件中。

所以我的问题是,我可以使用哪种 DNS 转发器:

  1. 将 DNS 请求转发到另一台服务器(例如:8.8.8.8)
  2. 缓存记录
  3. 使用缓存记录,以防 DNS 服务器出现故障,即使这意味着忽略 TTL(我的记录的 TTL 是 60 秒,但自上次从 8.8.8.8 请求以来已经过去了 30 分钟)
  4. 可能始终缓存并排队从 DNS 服务器发出的请求(因此每 60 秒,延迟不会因为必须从 DNS 服务器发出请求而增加一点)

知道我能做什么吗?还是我的愿望太多了?

答案1

我建议使用dnsmasq可以满足您所有需求的:

  • 将 DNS 查询转发到一个或多个 DNS 服务器
  • 在 hosts 中获取条目
  • 缓存查询

它运行良好,配置非常简单,只需使用sudo apt-get install dnsmasq

对于你想要的,你只需添加一行

server=8.8.8.8

并做sudo restart dnsmasqsudo /etc/init.d/dnsmasq restart

当然,您可以有多条server=...线路来使用多个上游 DNS 服务器。

PS 如果您愿意,dnsmasq 还可以作为一个完整的 dhcp 服务器工作,然后将 dhcp 客户端的主机名添加到 dns 系统,这确实非常好。

相关内容