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

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

Кажется, я не могу понять, почему мой 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, и если кто-нибудь сможет пролить свет на это для меня, я буду очень счастлив!

Спасибо

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

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

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

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

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

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

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

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

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

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

Мне пришлось ввести явную ссылку на сеть, которую я хотел разрешить рекурсией. Указание «любой» не помогло. По умолчанию (Ubuntu 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

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

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

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

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

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

listen-on { any;} or x.x.x.x;