在我们的环境中,我们有一个非常独特的要求。让我先向您解释一下我们的环境。
我们有 DEV、TEST、PRE-PROD 和 PROD 环境,每个环境都有自己的 DNS 服务器(主服务器和从服务器)来解析主机名。
我们现在想要的是创建一个管理服务器,它将能够解析除生产环境之外的所有环境服务器(DEV,TEST,PRE_PROD)。
因此,我认为将所有环境 DNS 服务器的 IP 地址放入此管理服务器 resolv.conf 中将解决该问题。但是,它只是解析其条目在第一个 DNS 服务器类型中注册的服务器主机名。例如,我提到了 DEV 环境 DNS 服务器,因此它只解析了 DEV 服务器。当我尝试解析其他环境服务器(如 PRE-PROD 或 TEST)时,它们没有解析。
我阅读了多个博客和帖子,普遍的共识是解析器只检查第一个条目,如果出现超时或 SERVFAIL,则只会从 resolv.conf 转到第二个名称服务器。
我想听取您的意见/建议,关于如何实现这一要求。
注意:- 我们使用的是 RHEL 6 同等版本。
谢谢
答案1
内部域的呈现由您的递归 DNS 服务器处理,而不是由单个设备上的解析器处理。将设备配置为依赖具有不同配置的多个递归服务器在最好的情况下会带来不一致的用户体验,而在最坏的情况下则极难诊断和排除故障。
此时您需要做什么取决于每个环境是否都有自己独特的域后缀。
每个环境都有唯一的域后缀
- 为您的管理服务器建立一组新的递归 DNS 服务器。或者,这可以是在管理服务器本身上运行的名称服务器进程。这取决于您是否预计网络上的其他设备将来需要相同级别的功能。
- 为与您的各种环境相关的每个唯一域后缀配置一个转发器区域。每个转发器区域都会将流量转发到对给定域具有权威性的 DNS 服务器。
- 将管理服务器指向您刚刚配置的 DNS 软件。如果名称服务器进程位于同一台机器上,请使用 127.0.0.1。(localhost)
每个环境都有自己独特的同一区域版本
- 哭泣。
- 下次不要再这样做了。
答案2
将所有环境放在同一个 DNS 中。命名方案有很多种,但要让服务名称显而易见:db.dev.example.com 是 dev,db.test.example.com 是 test,等等。
使用部署工具和变更控制强制执行每个环境的配置。
拒绝不符合防火墙和分段设计的连接。
连接到错误环境后,请进行根本原因调查。