![为主机和代理配置 DNS 规则?](https://linux22.com/image/1379812/%E4%B8%BA%E4%B8%BB%E6%9C%BA%E5%92%8C%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AE%20DNS%20%E8%A7%84%E5%88%99%EF%BC%9F.png)
我不确定我是否正确地解决了这个问题,所以请在这里纠正我。
假设某个组织运行自己的 DNS 服务。该组织需要满足以下要求:
- 所有主机对 external.com 的 DNS 查询都应返回指向 proxy.organization.com 的记录
- proxy.organization.com 的 DNS 查询应返回 external.com 的真实记录
在这种情况下,代理服务器不应该有缓存 DNS 服务器,也不应该解析客户端查询,因为组织有自己的 DNS 服务器来执行此任务。此外,额外的缓存服务是链中可能出现故障的另一个环节。
这是 BIND 和其他 DNS 服务器下可行的配置(可配置?)吗?我在搜索过程中找不到正确的页面。我开始认为这是错误的方法。
如果不是,组织通常如何处理这个问题?
提前致谢。
答案1
我认为这里有几种方法。
在我看来,最简单的方法是使用 proxy.organization.com 上的“hosts”文件返回 external.com 的真实记录,这应该会“覆盖”DNS 查找。它也比通过 DNS 执行“更可靠”。
如果您确实想在 Bind 服务器上运行它,您可能需要执行“拆分 DNS”,这实际上会使 1 个 DNS 服务器根据某些条件(例如接口、IP 地址)做出不同的回答。在我看来,这比在缓存上运行第二个 DNS 服务器更容易引起问题 - 因为您需要 2 个配置,但调试拆分 DNS 更难,因为您需要注意查询哪个接口。
您还没有告知您使用的是哪种代理服务器,因此我假设了一个非常通用的解决方案(squid?)。我工作的一家组织正在使用 Apache 和“Mod Proxy”进行这种“反向缓存”。使用 Mod Proxy,您可以指定要将传入请求转发到的 IP 地址,因此不需要 DNS。(我怀疑大多数代理服务器都会有这种功能 - 。一些可能有帮助的关键字包括“负载平衡器、反向代理、Linux 虚拟服务器 LVS、httpd 加速器”。那是很久以前的事了,但我很确定我使用反向代理模式下的 Squid 来“转发”请求,其方式类似于您为另一个客户端执行的操作。