У меня небольшие проблемы с делегированным поддоменом с использованием powerdns. Моя установка довольно проста.
Example.com
2 сервера powerdns. 1 мастер, 1 раб.
Zone Config
example.com SOA ns1.example.com
example.com NS ns1.example.com
example.com NS ns2.example.com
ns1.example.com A 192.168.0.1
ns2.example.com A 192.168.0.2
sub.example.com NS ns1.sub.example.com
sub.example.com NS ns2.sub.example.com
ns1.sub.example.com A 192.168.10.1
ns2.sub.example.com A 192.168.10.2
Тогда мой поддомен выглядит так:
Еще 2 сервера powerdns. 1 мастер, 1 раб.
sub.example.com SOA ns1.sub.example.com
sub.example.com NS ns1.sub.example.com
sub.example.com NS ns2.sub.example.com
ns1.sub.example.com A 192.168.10.1
ns1.sub.example.com A 192.168.10.2
ubuntutest.sub.example.com A 192.168.10.10
Когда я нахожусь на хосте на этом ubuntutest хосте в субдомене, я могу разрешить штраф NS, и, поскольку у меня настроена рекурсия в субдомене, я могу разрешить адреса на example.com
Когда я нахожусь на хост в домене example.com, я могу разрешить проблемы на example.com нормально. Однако я не могу разрешить устройства в субдомене.
Когда я копаю субдомен, я получаю следующий результат: показывает авторитет, но нет ответов.
olly@master:~$ dig sub.example.com. ns
; <<>> DiG 9.9.5-11ubuntu1.3-Ubuntu <<>> sub.example.com. ns
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60134
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 3, ADDITIONAL: 4
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 2800
;; QUESTION SECTION:
;sub.example.com. IN NS
;; AUTHORITY SECTION:
sub.example.com. 86400 IN NS ns1.sub.example.com.
sub.example.com. 86400 IN NS ns2.sub.example.com.
;; ADDITIONAL SECTION:
ns1.sub.example.com. 86400 IN A 192.168.10.1
ns2.sub.example.com. 86400 IN A 192.168.10.2
;; Query time: 3 msec
;; SERVER: 10.3.16.4#53(10.3.16.4)
;; WHEN: Mon Mar 21 16:20:16 GMT 2016
;; MSG SIZE rcvd: 147
Кто-нибудь видел это раньше? Если да, то чего мне не хватает?
Большое спасибо :)
Ваша команда:
$ dig sub.example.com. ns
Запрашивает только записи сервера имен (NS), так что это все, что вы получаете обратно.
Ответ, который вы получаете, является рефералом, и ноль ответов для него является нормальным.
Реферал, предоставленный официальным сервером, должен соответствовать следующим критериям:
aa
(авторитетный ответ) бит Авторитетная версия записей NS находится на сервере, которому вы делегируете полномочия. Было бы неправильно давать ответ в этом контексте. RFC 2181 очень четко разъясняет этот вопрос:
... NS-записи, указывающие на разрезание зоны, являются собственностью дочерняя зона создана, как и любые другие записи о происхождении этой дочерняя зона или любые ее поддомены. Сервер для зоны должен не возвращать достоверные ответы на запросы, связанные с именами в другая зона, которая включает NS и, возможно, A, записи в вырезать зону, если только он не является сервером для другой зоны.
Что касается , почему вы получаете реферал, вы не предоставили достаточно информации, чтобы определить это. Предположительно, это означает, что 10.3.16.4
содержит официальную копию example.com
. Ссылка бесполезна для преобразователей заглушек (т.е. библиотек преобразователей ОС), указывающих на 10.3.16.4
; только рекурсивный сервер будет преследовать отсылку.
Я подозреваю, что вы реализовали отсылку там, где требуется пересылка. Как реализовать это в 10.3.16.4
(для которого не была предоставлена никакая ОС или программное обеспечение), выходит за рамки этого вопроса.
Большое спасибо, Эндрю Б. (Сделал пост в качестве гостя, поэтому не могу комментировать)
У меня есть 2 сервера powerdns, работающих на example.com (главный, подчиненный) с репликацией серверной части MySQL. Работает на ubuntu 14.04.
pdn.conf для мастера (192.168.0.1)
allow-recursion=0.0.0.0/0
recursor=8.8.8.8
allow-axfr-ips=192.168.0.2/32
config-dir=/etc/powerdns
daemon=yes
disable-axfr=no
guardian=yes
local-address=0.0.0.0
local-port=53
log-dns-details=on
log-failed-updates=on
loglevel=3
module-dir=/usr/lib/powerdns
master=yes
slave=no
setgid=pdns
setuid=pdns
socket-dir=/var/run
version-string=powerdns
include-dir=/etc/powerdns/pdns.d
Для sub.example.com я запускаю этот домен в частном облаке. У него также есть 2 сервера имен powerdns с серверной частью mysql. Запуск на debian jessie.
pdns.conf for Master (192.168.10.1)
# General Config
allow-recursion=0.0.0.0/0
recursor=192.168.0.1
setgid=pdns
setuid=pdns
config-dir=/etc/powerdns
socket-dir=/var/run
guardian=yes
daemon=yes
disable-axfr=no
local-address=0.0.0.0
local-port=53
master=no
slave=yes
cache-ttl=0
query-cache-ttl=0
negquery-cache-ttl=0
out-of-zone-additional-processing=no
do-ipv6-additional-processing=no
Я думал, что пользователь частного облака, использующий рекурсоры, может выйти через домен example.com. А пользователи домена example.com могут получить доступ к службам, работающим в частном облаке, с помощью sub.example.com.