我想使用我们的内部 DNS 服务器来链接名称,从配置到最终使用。所以我想这样。
服务器进入我们的网络并获取 DHCP 或静态地址,然后具有带有其硬件名称的 DNS 条目,例如 HP 服务器的 ilocz1234xyz。稍后,服务器被配置并在该过程中获得名称和功能。我想合并这些名称。我们目前通过在配置期间为服务器命名来实现这一点,例如在 DNS 中为 pegasus 创建名称:
- ilocz1234xyz.example.com
- ilo.pegasus.example.com
- pegasus.example.com
之后,OP 团队会以特定角色安装服务器并赋予其一个工作名称,例如“webserver”,同时调整 DNS 条目:
- ilocz1234xyz.example.com
- ilo.pegasus.example.com
- pegasus.example.com
- webserver.example.com
我现在的问题是如何获取要引用的名称,以便我可以看到这些名称属于一起。我最初的想法是这样的:
- ilocz1234xyz.example.com A 记录 -> 10.0.0.100
- ilo.pegasus.example.com C-NAME -> ilocz1234xyz.example.com
- pegasus.example.com A 记录 -> 10.0.0.200
- webserver.example.com C-NAME -> pegasus.example.com
我现在的目标是查询 pegasus.example.com,然后获取 ilo.pegasus.example.com 和 webserver.example.com 的条目,但这样做不行,因为 CNAME 只是一个别名,我无法递归搜索 DNS。当然,您也可以编写一个脚本来查询 DNS 并收集所有数据,但我的问题是是否有更简单的方法可以解决这个问题,甚至可以使用板载工具。
答案1
DNS 中没有通用的方法来做到这一点。它不是为那种枚举反向引用想想通用的 Linux 文件系统:除了扫描整个目录树之外,没有其他方法可以收集指向某个对象的所有符号链接。
但是,您可以在 DNS 之上构建自己的解决方案。例如,当您添加或删除 CNAME(即“前向引用”)时,同时编辑 TXT 记录以控制“后向引用”:
name.example.com. A 192.0.2.1
name.example.com. TXT "CNAME:some-alias.example.com CNAME:another-alias.example.org"
some-alias.example.com. CNAME name.example.com.
another-alias.example.org. CNAME name.example.com.
或者该唱片可以命名为_back-reference.name.example.com.
或类似名称。您选择。
我对已经实现此功能的工具一无所知,但这并不难。