所以,我不确定如何准确地表述这个问题,但这就是我正在尝试做的......
(我正在尝试使用 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 地址来解析名称。
祝你好运。