在我的办公室,我们经常安装和拆卸虚拟机(测试等)。目前我们别无选择,只能向 IT 部门投诉,要求为虚拟机添加 DNS 条目(例如 testapp.myoffice.com)或记住新虚拟机的 IP。我希望允许我们开发人员获取一个可以重定向到他们选择的虚拟机的网址。
我读了一些资料,发现 Bind9 似乎是一个很好的起点:我可以添加自己的 dns 条目并回退到另一个 dns 条目,但我有一些疑问:
bind9(或其他服务)可以在运行时添加条目吗?还是需要手动关闭、更新和重新启动?目标是拥有一个 Web 应用程序,用户可以输入 VM IP 并从中获取 bitly 样式的链接。
如何让其他用户访问这些 DNS 条目而无需指定 DNS 主机?我的目标是让网络中的任何人都能够输入生成的 URL 并将其重定向到服务器,而不仅仅是 http 重定向。
我仍在学习有关 DNS 的知识,甚至不确定我是否以正确的方式进行学习;任何帮助我都感激不尽。谢谢。
答案1
首先回答您关于 bind9 的问题(我已经很多年没有按照您所说的方式使用它了,所以我可能记错了,或者事情可能发生了变化):
Bind9 可以重新加载所有内容(假设您修改了配置),而无需停机。您可以根据内存设置主/从系统,其中区域无需停机即可馈送到从属系统。我认为将这些东西与 BIND 连接起来并不容易。
尽管如此,我相信有很多更好(更简单)的方法可以做到这一点。我可能会这样做 -
设置新域名或子域名,并将 NS 记录指向将管理该域名的新服务器/虚拟服务器(当然,开发系统名称将位于该域下)
设置一个与 Postgres 或 MySQL 交互的权威名称服务器,只需在 SQL 中进行更新 - 更改将自动生效 - 您可能希望运行相对较低(60 秒?)的 TTL,因为旧信息很快就会超时。您应该查看的几个简单 DNS 服务器是我的DNS和强力DNS
还有一些替代方法。如果您使用(或可以更改为)DNSMasq,则可以配置DNSMasq以将HOSTS文件中的条目提供给DNS,然后您只需要在DNSMasq服务器上使用适当的IP地址维护hosts文件即可。
您可能需要查看某种动态 DNS 服务。这将允许您在不运行名称服务器的情况下更新机器的 DNS 参考,我假设您需要面向公众的 IP,当然,这会将内部信息泄露到更广泛的互联网上,可能并不合适。
一种完全不同的方法可能是忘记在 DNS 中执行此操作,并设置一个在相应机器上转发的“反向代理”——这样,每当您进行更改时,您都可以配置反向代理,但只要反向代理保持不变,您就可以随时更新它。您要么需要破解代码来执行此操作,要么手动修改 IP 地址。我知道至少有 2 种方法,但可能还有很多方法可以做到这一点。一种是使用 Apache + mod_proxy,另一种是配置 Squid。这里谷歌的关键词是“反向代理”