Dig возвращает «status: REFUSED» для внешних запросов?


14

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

# dig ungl.org

; <<>> DiG 9.5.1-P2.1 <<>> ungl.org
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24585
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; QUESTION SECTION:
;ungl.org.                      IN      A

;; ANSWER SECTION:
ungl.org.               38400   IN      A       188.165.34.72

;; AUTHORITY SECTION:
ungl.org.               38400   IN      NS      ns.kimsufi.com.
ungl.org.               38400   IN      NS      r29901.ovh.net.

;; ADDITIONAL SECTION:
ns.kimsufi.com.         85529   IN      A       213.186.33.199

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Mar 13 01:04:06 2010
;; MSG SIZE  rcvd: 114

но когда я запускаю его с другого сервера в том же центре обработки данных, я получаю:

# dig @87.98.167.208 ungl.org

; <<>> DiG 9.5.1-P2.1 <<>> @87.98.167.208 ungl.org
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 18787
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;ungl.org.                      IN      A

;; Query time: 1 msec
;; SERVER: 87.98.167.208#53(87.98.167.208)
;; WHEN: Sat Mar 13 01:01:35 2010
;; MSG SIZE  rcvd: 26

мой файл зоны для этого домена

$ttl 38400
ungl.org.       IN  SOA r29901.ovh.net. mikey.aol.com. (
                201003121
                10800
                3600
                604800
                38400 )
ungl.org.       IN  NS  r29901.ovh.net.
ungl.org.       IN  NS  ns.kimsufi.com.
ungl.org.       IN  A   188.165.34.72
localhost.      IN  A   127.0.0.1
www             IN  A   188.165.34.72

и named.conf.options используется по умолчанию:

options {
    directory "/var/cache/bind";

    // If there is a firewall between you and nameservers you want
    // to talk to, you may need to fix the firewall to allow multiple
    // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

    // If your ISP provided one or more IP addresses for stable 
    // nameservers, you probably want to use them as forwarders.  
    // Uncomment the following block, and insert the addresses replacing 
    // the all-0's placeholder.

    // forwarders {
    //  0.0.0.0;
    // };

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { ::1; };
    listen-on { 127.0.0.1; };
    allow-recursion { 127.0.0.1; };
};

named.conf.local:

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
// include "/etc/bind/zones.rfc1918";

zone "eugl.eu" {
         type master;
         file "/etc/bind/eugl.eu";
         notify no;
};


zone "ungl.org" {
         type master;
         file "/etc/bind/ungl.org";
         notify no;
};

Сервер работает под управлением Ubuntu 9.10 и Bind 9, если кто-нибудь может пролить свет на это для меня, это сделало бы меня очень счастливым!

Благодарность


Как выглядит ваш раздел "options" в конфигурации bind на сервере, который не работает? По умолчанию в Ubuntu я считаю, что все это в /etc/bind/named.conf.options
Кори J

Я обновил вопрос, я еще ничего не изменил в настройках

1
Как насчет определения зоны в named.conf.local?
ktower

Добавлено в основной пост

Ответы:


18

хотя я могу копать старую ветку, я делаю это потому, что это один из самых важных результатов при поиске в Google по запросу «статус запроса отклонен».

В моем конкретном случае я обнаружил, что должен был включить allow-query { any; };в каждое определение зоны в named.conf.


Ты мой спасительный ангел! Большое спасибо
codezombie

5

На первый взгляд, мне кажется, что он не настроен слушать из-за всего остального мира listen-on { 127.0.0.1; };. Вам нужно будет добавить соответствующий IP-адрес там.


Я изменил это на IP-адрес сервера в Интернете (188.165.34.72) и перезагрузил привязку, но я все еще получаю то же сообщение об отказе

1
Есть ли на этой машине локальный брандмауэр? Возможно, вам придется открыть порты (53 TCP и UDP).
Джон Гарденерс

Кажется, что URL работает сейчас, но все равно показывает тот же статус отказа от моего другого сервера

4

Я делаю то же самое, но я добавляю опцию allow-query в named.conf.options


1

NOERROR, когда он не сопровождается записью ресурса (RR), означает, что такой записи нет, поэтому, когда вы получаете ответ NOERROR и нет «записи» при установке «version» на «none», тогда она работает, как ожидалось.

Также есть оператор allow-queryконфигурации с BIND9, однако я думаю, что по умолчанию разрешены запросы из любого места.


1

У меня была точно такая же проблема (локальное копирование статуса NOERROR, извлечение статуса ОТКАЗАНО извне), и решением было изменение match-клиентов с «localhost» (который используется по умолчанию для установки bind) на «any» (позже я могу выяснить, какой точный IP-адрес у моего провайдера доменных имен, и ограничить его конкретным IP-адресом из соображений безопасности). Кроме того, я изменил имя представления с local_something на default. Имя действительно не имеет значения.

view default {
        match-clients      { any; };
        match-destinations { any; };
        include "/etc/named.rfc1912.zones";
};

Это было действительно проблемой с этим бизнесом "отказался от статуса копания". Сразу после того, как я изменил параметр match-clients, мои запросы dig @ 12.34.56.78 mydomain.com начали разрешаться со статусом NOERROR, и поставщик доменных имен (godaddy) немедленно кэшировал запись сервера имен. Поскольку мои файлы зоны уже были правильно настроены, доменное имя сразу стало видно в Интернете.

Я довольно долго бился головой о стену, чтобы решить эту проблему.


1
Не могли бы вы уточнить, какой файл на каком компьютере вы модифицировали?
Алексей

1

Мне пришлось ввести явную ссылку на сеть, которую я хотел разрешить рекурсии. Указание «любой» не помогло. По умолчанию (Umbutu Server 15) в /etc/bind/named.conf.optionsфайле не было записи для этого .

recursion yes;  << needed to add this but did not resolve greater prob
allow-recursion { any; }; << this did not work
allow-recursion { 10.1.0.0/16; }; << this did the trick

0

Вы уверены, что отправляете запросы в нужное место?

Ваш сервер в 188.165.34.72 ( r29901.ovh.net) работает с BIND 9.5.1-P2.1 - он отвечает на запрос, dig @ip version.bind ch txtкак и ожидалось, с этой строкой ответа.

Однако приведенный выше IP-адрес возвращает NOTIMPLошибку, даже если в указанном вами файле конфигурации нет ничего о *.bindпсевдозаписях, и BIND требует явной настройки, чтобы отключить их.


NOTIMPL не реализован? Почему у него есть функции, которые не включены по умолчанию?

Если это BIND, есть опция под названием «версия», которая говорит ему отправлять указанное пользователем значение в этот запрос, или «нет», чтобы отключить эту функцию. Если опция не указана, она возвращает фактический номер версии. Вы не указали такой опции, что заставляет меня подозревать, что вы не разговариваете с нужным сервером. См. Isc.org/software/bind/documentation/arm95
Alnitak,

Я проверил дальше - на моем MacOSX box с bind 9.6.0 установка «version» в «none» возвращает, NOERRORа не NOTIMPLошибку, которую я вижу с этого IP.
Альнитак

0

Потому что вы разрешаете рекурсию только с вашего локального компьютера.

Если вы хотите разрешить, добавьте соответствующий IP-адрес и вам нужно изменить значение прослушивания для любого адаптера с вашей локальной машины или указать IP-адрес интерфейса локальной машины:

listen-on { any;} or x.x.x.x;
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.