如何将一些 A 记录“添加”到“第三方”DNS 区域(使用 BIND)?

如何将一些 A 记录“添加”到“第三方”DNS 区域(使用 BIND)?

所以,我不确定如何准确地表述这个问题,但这就是我正在尝试做的......

(我正在尝试使用 BIND 来做到这一点。)

我的公司有自己的内部名称服务器。假设它们对“ company.local”具有权威性。我想在本地托管自己的 DNS 服务器(并将我的计算机指向这个新的名称服务器),以便向该区域 ( company.local) 添加一些记录。(这样,当我的计算机尝试解析这些新记录时,它们就会显示出来。)

因此,我想补充一点:

mycomputer1.company.local. IN A 192.168.0.11
mycomputer2.company.local. IN A 192.168.0.12

但是,当然,我也希望公司的记录仍然能够正确解决。

(不,我没有权限进行任何类型的区域传输或类似操作。)

我怎样才能做到这一点?

答案1

bind 的最新版本有一个称为“响应策略区域”的功能,您可以使用它来覆盖特定记录。

一个非常常见的用法是覆盖 www.google.com、www.youtube.com 以强制安全搜索。

一些链接

答案2

虽然有点麻烦,但您可以简单地为这些名称创建区域,并且只在顶点设置 RR。例如:

zone "mycomputer1.company.local" IN {
  type master;
  file "mycomputer1.company.local.zone";
}

mycomputer1.company.local.zone 将包含:

$TTL 86400
@ IN SOA mynameserver.company.local. me.company.local. (
  2019122301  ; serial
  10800       ; refresh
  3600        ; retry
  604800      ; expire
  86400       ; minimum ttl
)
  IN NS   mynameserver.company.local.
  IN A    192.168.1.1

类似这样的操作可用于 IN-ADDR.ARPA 委派单个地址。请参阅https://tools.ietf.org/id/draft-fanf-dnsop-rfc2317bis-01.html#rfc.section.5

答案3

.local 域名不在任何注册商处出售,仅供内部使用。也就是说,您可以设置另一台 DNS 服务器,将其配置为同时托管区域company.local并将其他请求转发到另一台 DNS 服务器,例如 Google 的 8.8.8.8 和 8.8.4.4。

当然,如果你至少能得到一份实际 DNS 区域文件的副本,那么你就不用重新写入所有 A 记录了,这样就能省去很多工作。如果你做不到,你可以编写一个 bash 脚本来:

a) 如果您的网络中的名称以某种方式结构化(即:admin-01,admin-02),您可以使用该dig实用程序遍历您的网络,解析名称或;

b) 如果实际的名称服务器配置了反向区域,您也可以使用它dig通过其 IP 地址来解析名称。

祝你好运。

相关内容