设置是两个 Active Directory 服务器,DNS 复制跨两个站点。出于“遗留”目的,我需要将之前单独的文件服务器的查询重定向到每个站点的相应副本。例如,站点 A 的“BIGBOX”-> 192.168.100.2;站点 B 的“BIGBOX”-> 192.168.200.2。设置 CNAME 记录有效,但仅在 DNS 复制启动之前有效...
两个 AD DC 都使用站点特定的 bind9 安装作为转发器(Windows Server 2008r2 @ 站点 A)或 bind_dlz 组件(Samba4 @ 站点 B)。
我认为应该可以在任意一台 BIND9 机器上设置一个指向相应文件服务器副本的“BIGBOX.subnet.domain.com”区域。这有点像“水平分割”场景,但没有视图,而且只针对一个地址。
如果这有意义,那么这样的区域文件会是什么样子(NS,A记录)?
任何指点[原文如此]都非常感谢!
答案1
我不确定我是否理解了您的设置。如果我理解正确的话,您的主 DNS 位于 AD 中,并且只想根据子网以不同方式提供一条记录 (bigbox)。
您可以按如下方法解决此问题。在活动目录中创建一个委派(即 NS 条目),指向 bigbox.domain.com 的绑定服务器。
在绑定服务器上,您必须创建基于视图的设置。请参阅https://kb.isc.org/article/AA-00851/0/Understanding-views-in-BIND-9-by-example.html了解详情。我想这个稍微修改过的例子应该能让你明白:
# named.example02.conf
acl subnetA { 192.168.7.0/24; localhost; };
acl subnetB { 192.168.8.0/24; };
view subnetA {
match-clients { subnetA; };
allow-recursion { any; };
zone "bigbox.example.com" {
type master;
file "subnetA/db.bigbox.example.com";
};
};
view subnetB {
match-clients { subnetB; };
allow-recursion { any; };
zone "bigbox.example.com" {
type master;
file "subnetB/db.bigbox.example.com";
};
};
然后只需创建两个仅由 SOA、NS 和一个 A 记录组成的区域。它们之间的唯一区别应该是 A 记录!存储为 subnetA/db.bigbox.example.com 和 subnetB/db.bigbox.example.com。
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA bind.example.com. root.bigbox.example.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS bind.example.com.
;change this IP depending on view
bigbox IN A 192.168.1.21
答案2
好的。我花了一些时间在生产环境中尝试这个,这是可行的:在任一子网上为“BIGBOX.ad-Domain.domain.com”设置权威 bind9 区域文件,并为相应的文件服务器地址设置一个空的 A 记录。
服务器 NS1 位于 192.168.100.0/24,这将指向文件服务器 FS1 @ 192.168.100.2;服务器 NS2 位于 192.168.200.0/24 指向 FS2 @ 192.168.200.2。基本上,除了我实际文件服务器中已有的记录外,还为虚拟服务器添加了一条额外的 A 记录。
我的一个 DC 是 Windows Server 机箱,它将 BIGBOX 的权限委托给 NS1(Debian 上的 bind9);另一个 DC 运行 Debian 9,bind9_dlz 后端处理 DNS。同样,Windows Server/bind9 环境需要 Windows DNS 中的委托,但这似乎不会在我的 DC 之间复制,所以一切都很好。