LINUX.ORG.RU

Делегирование домена от регистратора на свои сервера

 , ,


0

1

Добрый день.

Подскажите, пожалуйста, как правильно делегировать управление доменом с серверов регистратора на свои DNS сервера.
Бьюсь уже несколько дней, вроде работать должно, но не работает.

У регистратора в web интерфейсе конфигурация следующая:

@	3600	IN	SOA	ns1.mydomain.ru. domains.mydomain.ru 201410048 86400 7200 3600000 86400
@	3600	IN	NS	ns1.mydomain.ru.
@	3600	IN	NS	ns2.mydomain.ru.
ns1.mydomain.ru.	3600	IN	A	1.2.3.61
ns2.mydomain.ru.	3600	IN	CNAME	ns1.mydomain.ru.

На моем DNS:

$TTL 3D
mydomain.ru.               IN      SOA     ns1.mydomain.ru. root.mydomain.ru. (
                                        2014100450      ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        2W              ; expire
                                        1D)             ; minimum

mydomain.ru.               IN      NS      ns1.mydomain.ru.
mydomain.ru.               IN      NS      ns2.mydomain.ru.
mydomain.ru.               IN      A       1.2.3.59
mydomain.ru.               IN      MX      5 mail.mydomain.ru.
ns1.mydomain.ru.           IN      A       1.2.3.61
ns2.mydomain.ru.           IN      A       1.2.3.61
mail.mydomain.ru.          IN      A       1.2.3.61

named.conf
        zone "mydomain.ru" in {
          type master;
          file "mydomain.ru.zone.external";
          notify yes;
       };

При тесте на мой DNS все проходит успешно
dig @1.2.3.61 mydomain.ru mx

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @1.2.3.61 mydomain.ru mx
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34835
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;mydomain.ru.                   IN      MX

;; ANSWER SECTION:
mydomain.ru.            259200  IN      MX      5 mail.mydomain.ru.

;; AUTHORITY SECTION:
mydomain.ru.            259200  IN      NS      ns1.mydomain.ru.
mydomain.ru.            259200  IN      NS      ns2.mydomain.ru.

;; ADDITIONAL SECTION:
mail.mydomain.ru.       259200  IN      A       1.2.3.61
ns1.mydomain.ru.        259200  IN      A       1.2.3.61
ns2.mydomain.ru.        259200  IN      A       1.2.3.61

;; Query time: 50 msec
;; SERVER: 1.2.3.61#53(1.2.3.61)
;; WHEN: Mon Oct  6 06:05:02 2014
;; MSG SIZE  rcvd: 134

При тесте на сервер регистратора не успешно
dig @ns1.logol.ru ns2.mydomain.ru mx

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @ns1.logol.ru ns2.mydomain.ru mx
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40694
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;ns2.mydomain.ru.               IN      MX

;; ANSWER SECTION:
ns2.mydomain.ru.        3600    IN      CNAME   ns1.mydomain.ru.

;; AUTHORITY SECTION:
mydomain.ru.            3600    IN      NS      ns1.mydomain.ru.
mydomain.ru.            3600    IN      NS      ns2.mydomain.ru.

;; ADDITIONAL SECTION:
ns1.mydomain.ru.        3600    IN      A       1.2.3.61

;; Query time: 2 msec
;; SERVER: 188.93.212.212#53(188.93.212.212)
;; WHEN: Mon Oct  6 06:31:44 2014
;; MSG SIZE  rcvd: 95

В момент этого запроса tcpdump -i eth0 port 53 пакеты не ловит.

Но NS сервера видны
dig @ns1.logol.ru mydomain.ru ns

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @ns1.logol.ru mydomain.ru ns
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32853
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;mydomain.ru.                   IN      NS

;; ANSWER SECTION:
mydomain.ru.            3600    IN      NS      ns1.mydomain.ru.
mydomain.ru.            3600    IN      NS      ns2.mydomain.ru.

;; ADDITIONAL SECTION:
ns1.mydomain.ru.        3600    IN      A       1.2.3.61

;; Query time: 2 msec
;; SERVER: 188.93.212.212#53(188.93.212.212)
;; WHEN: Mon Oct  6 06:14:49 2014
;; MSG SIZE  rcvd: 81

dig @ns1.logol.ru ns1.mydomain.ru a

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @ns1.logol.ru ns1.mydomain.ru a
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3348
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;ns1.mydomain.ru.               IN      A

;; ANSWER SECTION:
ns1.mydomain.ru.        3600    IN      A       1.2.3.61

;; AUTHORITY SECTION:
mydomain.ru.            3600    IN      NS      ns1.mydomain.ru.
mydomain.ru.            3600    IN      NS      ns2.mydomain.ru.

;; Query time: 2 msec
;; SERVER: 188.93.212.212#53(188.93.212.212)
;; WHEN: Mon Oct  6 06:15:14 2014
;; MSG SIZE  rcvd: 81

dig @ns1.logol.ru ns2.mydomain.ru a

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @ns1.logol.ru ns2.mydomain.ru a
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36814
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;ns2.mydomain.ru.               IN      A

;; ANSWER SECTION:
ns2.mydomain.ru.        3600    IN      CNAME   ns1.mydomain.ru.

;; AUTHORITY SECTION:
mydomain.ru.            3600    IN      NS      ns1.mydomain.ru.
mydomain.ru.            3600    IN      NS      ns2.mydomain.ru.

;; ADDITIONAL SECTION:
ns1.mydomain.ru.        3600    IN      A       1.2.3.61

;; Query time: 2 msec
;; SERVER: 188.93.212.212#53(188.93.212.212)
;; WHEN: Mon Oct  6 06:15:30 2014
;; MSG SIZE  rcvd: 95


Подскажите что я делаю не так, почему не происходит делегирование???

Заранее благодарен за помощь.

Ответ на: комментарий от alchemist

Разве из-за этого DNS регистратора может не делегировать??? Вроде изменения нормально применились когда NS указывал. Ругался только что две записи NS должно быть.

StereoRu ()

Как из приведённых логов следует, что делегировние не происходит?

;; WARNING: recursion requested but not available

Говорит о том, что nameserver регистратора вполне разумно не занимается рекурсивными запросами, а выдаёт только адреса ns-серверов зоны, как бы намекая, что дальше нужно спрашивать у них.

Это вроде бы и есть делегирование, не?

unterwulf ()
Ответ на: комментарий от unterwulf

К сожалению нет, если бы делегирование работало, то с удаленной машины можно было бы пинговать по доменному имени, но это не работает. ping: unknown host mail.mydomain.ru

Вот запрос к серверам гугла, они умеют делать рекурсивные запросы, и все равно не могут разрезолвить, хотя NS выдаются.

Если вопрос во времени «выдержки», то в такой конфигурации зона стояла все выходные и все равно не делегируется.

Может у вас еще идеи будут?

dig @8.8.8.8 mydomain.ru a

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @8.8.8.8 mydomain.ru a
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3174
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;mydomain.ru.                   IN      A

;; AUTHORITY SECTION:
mydomain.ru.            1799    IN      SOA     ns1.mydomain.ru. domains.mydomain.ru. 1412655315 86400 7200 3600000 86400

;; Query time: 43 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Oct  7 04:31:18 2014
;; MSG SIZE  rcvd: 77

dig @8.8.8.8 mydomain.ru ns

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @8.8.8.8 mydomain.ru ns
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6811
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mydomain.ru.                   IN      NS

;; ANSWER SECTION:
mydomain.ru.            3599    IN      NS      ns1.mydomain.ru.
mydomain.ru.            3599    IN      NS      ns2.mydomain.ru.

;; Query time: 39 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Oct  7 04:31:22 2014
;; MSG SIZE  rcvd: 65

dig @8.8.8.8 ns1.mydomain.ru a

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @8.8.8.8 ns1.mydomain.ru a
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13631
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ns1.mydomain.ru.               IN      A

;; ANSWER SECTION:
ns1.mydomain.ru.        3599    IN      A       1.2.3.61

;; Query time: 40 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Oct  7 04:31:31 2014
;; MSG SIZE  rcvd: 49

dig @8.8.8.8 ns2.mydomain.ru a

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @8.8.8.8 ns2.mydomain.ru a
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60146
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ns2.mydomain.ru.               IN      A

;; ANSWER SECTION:
ns2.mydomain.ru.        3599    IN      CNAME   ns1.mydomain.ru.
ns1.mydomain.ru.        3599    IN      A       1.2.3.61

;; Query time: 70 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Oct  7 04:31:35 2014
;; MSG SIZE  rcvd: 67

StereoRu ()
Ответ на: комментарий от StereoRu

Думаю, реальная цепочка разрешения имени mydomain.ru такова:

Запрос корневым серверам: Кто тут знает про ru?
Ответ: например a.dns.ripn.net должен знать.

Запрос a.dns.ripn.net: Кто тут знает про mydomain.ru?
Ответ: например ns1.logol.ru должен знать.

Запрос к ns1.logol.ru: Какая A-запись для mydomain.ru?
Ответ: Не знаю. (Следует из врезки "У регистратора в web интерфейсе конфигурация следующая" и первого поста.)

(У ns1.logol.ru никто не спрашивает NS-сервера для дальнейшего разрешения, т.к. считают, что он сам держит зону mydomain.ru.)

Т.е. делегирование происходит на уровне серверов зоны ru, что в общем-то и должно настраиваться в панели *регистратора*, но коль скоро упомянут ns1.logol.ru, думаю, что то, к тему есть доступ через web-интерфейс, это не управление доменом, а настройка ДНС-сервера, куда домен уже делегирован.

Чтобы убедиться в этом достаточно спросить:

dig @a.dns.ripn.net mydomain.ru NS

Если он ответит ns1.logol.ru, то всё так и есть и хостер уже предоставляет свой NS. Если хочется использовать сторонний NS, нужно либо регистрировать домен самому (будет доступ к упавлению зоной), либо просить хостера, чтобы он поменял настройки делегирования у регистратора.

unterwulf ()
Ответ на: комментарий от unterwulf

Добрый день.

Огромное спасибо за развернутый ответ.

Поясните пожалуйста «физику» этого действа. Каким образом a.dns.ripn.net понимает что ns1.logol.ru это конечная точка для mydomain.ru? ns1.logol.ru является мастером для этой зоны?

StereoRu ()
Ответ на: комментарий от StereoRu

Хороший вопрос. Немного погуглив, понял, что сам не до конца понимал, как оно работает. А, похоже, работатет так:

Запрос корневым серверам: Какая A-запись для mydomain.ru?
Ответ: не знаю, но, могу сказать, что, например, a.dns.ripn.net должен знать про зону ru.

Запрос a.dns.ripn.net: Какая A-запись для mydomain.ru?
Ответ: не знаю, но знаю, что, например, ns1.logol.ru должен знать про зону mydomain.ru.

Запрос к ns1.logol.ru: Какая A-запись для mydomain.ru?
Ответ: Не знаю, и раз не знаю я, то и никто не знает.

ns1.logol.ru считает себя authoritative для mydomain.ru (насколько я понимаю через файл зоны на это не повлиять, это определяется в named.conf директивой type (для authoritative нужно значение master или slave)), поэтому дальше не перенаправляет.

Каким образом a.dns.ripn.net понимает что ns1.logol.ru это конечная точка для mydomain.ru?

Он и не понимает. Он просто ссылается на ns1.logol.ru. Он не выполняет рекурсивных запросов.

ns1.logol.ru является мастером для этой зоны?

Мастер не самое удачное слово (т.к. перекликается со значением type в named.conf, но при этом и master и slave являются authoritative), лучше authoritative. От этого осознания себя таковым он не перенаправляет искателя имени дальше.

unterwulf ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.