我正在从由 BIND9 DNS 服务器提供服务的工作组迁移到基于 Windows Server 2008 R2 的 AD 域,并且我想继续使用 BIND 服务器,直到 AD 基础设施准备就绪。
在通过 dcpromo 设置 AD 期间,我收到一条警告,提示我应确保我们当前的 DNS 服务器将 AD 域名委托给 AD 服务器。
假设我的 AD 域是 mydomain.lan,而我的常规 BIND 域是 example.com。我将我的 BIND 服务器设置为 lan. 的权威服务器,但想将 mydomain.lan. 委托给 AD 服务器的 IP。
我的命名的.conf.本地包含:
zone "lan" {
type master;
file "zone.lan";
};
和区域局域网包含:
$ORIGIN lan.
$TTL 1H ; 1 hour
@ IN SOA dns.example.com. hostmaster.example.com. (
201008137 ; serial
28800 ; refresh (8 hours)
14400 ; retry (4 hours)
2419200 ; expire (4 weeks)
86400 ; minimum (1 day)
)
IN NS dns.example.com.
$ORIGIN mydomain.lan.
@ IN NS dc1.mydomain.lan.
dc1 IN A 10.10.0.200 ; 'glue' record
当我在 dns.example.com 上查询“lan”时,我得到了预期的答案,但当我查询“mydomain.lan”或“dc1.mydomain.lan”时,我得到了 NXDOMAIN 响应。到目前为止,我的所有尝试都失败了。
如何正确创建和委派子区域?
更新:更多信息
$ dig mydomain.lan @dns.example.com NS +norecurse
; <<>> DiG 9.7.0-P1 <<>> @dns.example.com mydomain.lan NS +norecurse
; (3 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23380
;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;mydomain.lan. IN NS
;; AUTHORITY SECTION:
mydomain.lan. 3600 IN NS dc1.mydomain.lan.
;; ADDITIONAL SECTION:
dc1.mydomain.lan. 3600 IN A 10.10.0.200
;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Sun Aug 15 00:41:05 2010
;; MSG SIZE rcvd: 64
$ dig @dc1.mydomain.lan dc1.mydomain.lan
dig: couldn't get address for 'dc1.mydomain.lan': not found
$ dig @10.10.0.200 dc1.mydomain.lan
; <<>> DiG 9.7.0-P1 <<>> @10.10.0.200 dc1.mydomain.lan
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21348
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;dc1.mydomain.lan. IN A
;; ANSWER SECTION:
dc1.mydomain.lan. 1200 IN A 10.10.0.200
;; Query time: 6 msec
;; SERVER: 10.10.0.200#53(10.10.0.200)
;; WHEN: Sun Aug 15 00:55:11 2010
;; MSG SIZE rcvd: 50
$ dig @10.10.0.200 mydomain.lan
; <<>> DiG 9.7.0-P1 <<>> @10.10.0.200 mydomain.lan
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24664
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;mydomain.lan. IN A
;; ANSWER SECTION:
mydomain.lan. 600 IN A 10.10.0.200
;; Query time: 0 msec
;; SERVER: 10.10.0.200#53(10.10.0.200)
;; WHEN: Sun Aug 15 01:04:39 2010
;; MSG SIZE rcvd: 46
答案1
问题出在您的named.conf中。我猜您在named.conf中的某个地方定义了转发器。对于您的服务器具有权威性的任何区域,您需要关闭转发。使用上面的示例,您应该将其更改为如下所示:
zone "lan" {
type master;
file "zone.lan";
forwarders { };
};
一旦你这样做它就会起作用。
答案2
区域文件存在问题。
$ORIGIN lan.
$TTL 1H ; 1 hour
@ IN SOA dns.example.com. hostmaster.example.com. (
201008137 ; serial
28800 ; refresh (8 hours)
14400 ; retry (4 hours)
2419200 ; expire (4 weeks)
86400 ; minimum (1 day)
)
IN NS dns.example.com.
$ORIGIN mydomain.lan.
@ IN NS dc1.mydomain.lan.
dc1 IN A 10.10.0.200 ; 'glue' record
@ 指的是 named.conf 中定义的区域名称
zone "lan" {
type master;
file "zone.lan";
};
这只是 'lan'。您创建的记录是
lan. IN NS dc1.nydomain.lan.
我倾向于不对重要记录使用 BIND 快捷方式,因为很容易忘记或误解其行为,从而导致意外结果。
(我意识到帮助这个人可能已经太晚了,但如果其他人看到这个,请尝试删除 BIND 快捷方式,看看是否能解决你的问题。)
答案3
看起来您在 AD 管理区域中缺少“dc1”作为主机;粘合仅用于查找权威服务器,而不是在到达这些服务器后作为实际内容。
当不使用时,您可能想要探索dig +trace
查看查询的服务器,@server.name
以查看被追踪的委托链。