Назад | Перейти на главную страницу

не может разрешить собственное доменное имя DNS-сервера

У меня есть DNS-сервер (mega.dude - 123.123.123.123), на котором запущен bind 9.4. Когда я:

dig mega.dude

Я не получаю раздела ответов.

у меня есть

nameserver 123.123.123.123

в /etc/resolv.conf

Вот мой файл зоны:

$TTL 1W
@                       IN SOA          mega.dude. names.mega.dude. (
                                        2009081502      ; serial
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        NS        ns1
                        NS        ns2
                        MX 10     mail.mega.dude.

                        A 123.123.123.123
@                       A 123.123.123.123
ns1                     A 123.123.123.123
ns2                     A 123.123.123.123
www                     CNAME @
mail                    A 123.123.123.123

Раньше это не выглядело так. Я читал, что иметь запись mx, указывающую на CNAME, - это зло. Я изменил это. Тогда я подумал, что, может быть, это также относится к NS. Так что я тоже изменил их. По-прежнему ничего хорошего. Порты открыты. Я не могу этого понять. Да кстати, все остальные зоны возвращаются нормально. Но не серверы владеют доменом. Так что я знаю, что делаю что-то глупое.

РЕДАКТИРОВАТЬ

Вот раздел моего named.conf:

zone "mega.dude" {
     type master;
     file "pri/mega.dude";
};

zone "123.123.123.in-addr.arpa" {
        type master;
        notify no;
        file "pri/123.123.123";
};

Вот ответ, который я получаю от самого сервера:

$ dig mega.dude

; <<>> DiG 9.4.3-P1 <<>> mega.dude
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 25170
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mega.dude.                    IN      A

;; Query time: 134 msec
;; SERVER: 123.123.123.123#53(123.123.123.123)
;; WHEN: Thu Apr  1 08:02:54 2010
;; MSG SIZE  rcvd: 28

И вот ответ моего ноутбука:

dig @mega.dude mega.dude

; <<>> DiG 9.4.2-P2.1 <<>> @mega.dude mega.dude
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 21361
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;mega.dude.                    IN      A

;; Query time: 51 msec
;; SERVER: 123.123.123.123#53(123.123.123.123)
;; WHEN: Thu Apr  1 08:20:19 2010
;; MSG SIZE  rcvd: 28

В query.log есть:

01-Apr-2010 08:02:54.192 client 123.123.123.123#33160: query: mega.dude IN A +

Где еще я должен проверить?

РЕДАКТИРОВАТЬ

Я внес изменения, предложенные Альнитаком - по крайней мере, я думаю, что понял:

$TTL 1W
@                       IN SOA          mega.dude. names.mega.dude. (
                                        2009081502      ; serial
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        IN NS        ns1
                        IN NS        ns2
                        IN MX 10     mail

                        A 123.123.123.123
ns1                     A 123.123.123.123
ns2                     A 123.123.123.123
www                     A 123.123.123.123
mail                    A 123.123.123.123

Теперь у меня есть авторитетный раздел, но нет раздела ответов:

dig mega.dude

; <<>> DiG 9.4.3-P1 <<>> mega.dude
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30264
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;mega.dude.                    IN      A

;; AUTHORITY SECTION:
mega.dude.             86400   IN      SOA     mega.dude. names.mega.dude. 2009081502 10800 900 604800 86400

;; Query time: 0 msec
;; SERVER: 123.123.123.123#53(123.123.123.123)
;; WHEN: Thu Apr  1 08:33:50 2010
;; MSG SIZE  rcvd: 70

Оказывается, проблема была в дополнительной записи.

Это работает:

@                       A 210.48.255.42

Это не так:

                        A 210.48.255.42

Теперь я получаю полный ответ:

$ dig @mega.dude mega.dude

; <<>> DiG 9.4.3-P1 <<>> @mega.dude mega.dude
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1029
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;mega.dude.                    IN      A

;; ANSWER SECTION:
mega.dude.             604800  IN      A       123.123.123.123

;; AUTHORITY SECTION:
mega.dude.             604800  IN      NS      ns1.mega.dude.
mega.dude.             604800  IN      NS      ns2.mega.dude.

;; ADDITIONAL SECTION:
ns1.mega.dude.         604800  IN      A       123.123.123.123
ns2.mega.dude.         604800  IN      A       123.123.123.123

;; Query time: 0 msec
;; SERVER: 123.123.123.123#53(123.123.123.123)
;; WHEN: Thu Apr  1 15:15:58 2010
;; MSG SIZE  rcvd: 112

Замечательно! Всего несколько странностей ...

Я провожу тест из http://www.checkdns.net/quickcheckdomainf.aspx

Я вижу две проблемы:

  1. Главный DNS, определенный SOA (mega.dude), не найден среди записей NS.

  2. Домен mega.dude не имеет MX-записей, но имеет A-запись для домена. Эта конфигурация не мега.

и дальше: http://www.mxtoolbox.com/

Я получил:

Записей не найдено. Об этом сообщает ns1.mega.dude в четверг, 1 апреля 2010 г., в 1:09:05 (GMT-5)

Прошло более 12 часов с тех пор, как я внес изменения. Я бы подумал, что я указал запись MX в моем файле зоны. А как насчет SOA? Я очень рад, что с этим в основном разобрались, но, похоже, у меня все еще есть проблемы. Вероятно, очевидно, что mega.dude - это не настоящее доменное имя. Я пока не чувствую, что меня взламывают.

Извините, что так долго задавал этот вопрос. Думаю, мне стоит отредактировать это. Или следует закрыть это и задать еще один вопрос?

Спасибо всем!

Вместо того, чтобы сообщать нам, что вы не получили раздел ответов, мы могли бы лучше диагностировать, если бы вы сказали нам, что вы сделал получить, а также код ответа.

Это может сказать нам, например, правильно ли ваш сервер обслуживает SOA, или если вы получаете конкретное сообщение об ошибке.

FWIW, предупреждения об использовании псевдонима (т.е. CNAME) как цель MX или NS записи верны - вы не должны этого делать.

Я не вижу здесь реальной ошибки конфигурации, но есть пара оптимизаций, которые вы можете сделать, чтобы вам не требовалось настоящее доменное имя. везде в файле конфигурации:

@       IN SOA    ns1 names ( ... )        
        IN MX 10  mail

Так же www запись также должна быть A а не CNAME - это не очень хорошая идея www псевдоним для $ORIGIN, потому что чем запрос для www IN MX? или www IN NS? будет возвращать те же записи, что и сам домен, когда все, что вам действительно нужно, это IP-адрес.

У вас также есть два фактически идентичные записи для основных A запись в списке. Это ничего не должно сломать, а может это просто ошибка копирования и вставки?

РЕДАКТИРОВАТЬ Любопытно, что проблема была в дублировании записи A - возможно, в отсутствии IN квалификатор вызвал сбой синтаксического анализа - об этом сообщат журналы запуска BIND.

Что касается дополнительных вопросов - их лучше задать в новом вопросе и, в идеале, указать фактическое доменное имя. Мы просто не можем эффективно диагностировать проблемы с живым DNS, если вы используете фиктивные данные.

РЕДАКТИРОВАТЬ2 Я исправил SOA проблема - первая запись в SOA должно быть именем первичного сервера имен. См. Исправленный пример выше.

Я просто хочу прояснить это, если кому-то интересно. Основная проблема была в пробел. Однако благодаря всему, что помогло разобраться в некоторых других моих ошибках. Ура!

Что произойдет, если вы запросите конкретный тип записи?

dig @mega.dude mega.dude. a
dig @mega.dude mega.dude. ns
dig @mega.dude mega.dude. mx

Ты пробовала копать землюс +trace вариант? Он покажет весь путь делегирования, что может помочь вам выяснить, где ломается запрос.

dig mega.dude. +trace