Я нахожусь в процессе миграции из рабочей группы, обслуживаемой DNS-сервером BIND9, в домен AD на базе Windows Server 2008 R2, и я хотел бы продолжать использовать сервер BIND до тех пор, пока не будет готова инфраструктура AD.
Во время настройки AD через dcpromo я получаю предупреждение о том, что я должен убедиться, что наш текущий DNS-сервер делегирует доменное имя AD серверу AD.
Предположим, мой домен AD - mydomain.lan, а мой обычный домен BIND - example.com. Я устанавливаю свой сервер BIND как авторизованный для LAN, но хочу делегировать mydomain.lan. на IP-адрес сервера AD.
Мой named.conf.local содержит:
zone "lan" {
type master;
file "zone.lan";
};
И 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
Проблема в вашем named.conf. Я предполагаю, что у вас есть форвардеры, определенные где-то в вашем named.conf. Для любой зоны, для которой ваш сервер является полномочным, вам необходимо отключить пересылку. Используя приведенный выше образец, вы должны изменить его следующим образом:
zone "lan" {
type master;
file "zone.lan";
forwarders { };
};
Как только вы это сделаете, он должен работать.
Проблема с файлом зоны.
$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. IN NS dc1.nydomain.lan.
Я не использую ярлыки BIND для важных записей, потому что это легко забыть или неправильно понять поведение, что приводит к неожиданным результатам.
(Я понимаю, что, вероятно, уже слишком поздно помогать этому человеку, но если кто-то еще посмотрит на это, попробуйте удалить ярлыки BIND, чтобы увидеть, решит ли это ваши проблемы.)
Похоже, вам не хватает «dc1» в качестве хоста в зоне, управляемой AD; клей используется только для поиска авторитетных серверов, а не как фактический контент после того, как эти серверы были достигнуты.
Возможно, вы захотите изучить dig +trace
чтобы увидеть запрошенные серверы, когда они не используются @server.name
, чтобы увидеть отслеживаемую цепочку делегирования.