Dig zwraca „status: REFUSED” dla zapytań zewnętrznych?

14

Nie mogę się zorientować, dlaczego mój DNS nie działa poprawnie, jeśli uruchomię dig z serwera nazw, to działa poprawnie:

# 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

ale po uruchomieniu z innego serwera w tym samym centrum danych otrzymuję:

# 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

mój plik strefy dla tej domeny to

$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

a opcje named.conf.options są domyślne:

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;
};

Na serwerze działają Ubuntu 9.10 i Bind 9, jeśli ktokolwiek może rzucić na to trochę światła, bardzo mnie to ucieszy!

dzięki


źródło
Jak wygląda sekcja „Opcje” konfiguracji powiązań na serwerze, który się nie zachowuje? Domyślnie w Ubuntu uważam, że wszystko jest w /etc/bind/named.conf.options
Cory J
Zaktualizowałem pytanie, nie zmieniłem jeszcze niczego w opcjach
1
Co powiesz na definicję strefy w named.conf.local?
ktower
Dodano do głównego postu

Odpowiedzi:

18

chociaż mogę wykopać stary wątek, robię to, ponieważ jest to jeden z najbardziej odpowiednich wyników podczas wyszukiwania w Google hasła „odmowa statusu zapytania”.

W moim szczególnym przypadku stwierdziłem, że musiałem dołączyć allow-query { any; };do każdej definicji strefy w named.conf.

w00t
źródło
Jesteś moim zbawczym aniołem! Dziękuję bardzo
codezombie
5

Na pierwszy rzut oka wydaje mi się, że nie jest skonfigurowany do słuchania reszty świata listen-on { 127.0.0.1; };. Musisz tam dodać odpowiedni adres IP.

John Gardeniers
źródło
Zmieniłem to na internetowy adres IP serwera (188.165.34.72) i przeładowałem bind, ale wciąż otrzymuję tę samą odrzuconą wiadomość
1
Czy na tym komputerze jest zapora lokalna? Może być konieczne otwarcie portów (53 TCP i UDP).
John Gardeniers,
Wygląda na to, że URL działa teraz, ale nadal pokazuje ten sam status odmowy z mojego innego serwera
4

Wykonuję próbkowanie, ale wstawiam opcję allow-query w named.conf.options


źródło
1

NOERROR, gdy nie towarzyszy mu rekord zasobu (RR), oznacza, że ​​nie ma takiego rekordu, więc gdy otrzymasz odpowiedź NOERROR i brak „rekordu” po ustawieniu „wersji” na „none”, to działa zgodnie z oczekiwaniami.

Istnieje również allow-queryinstrukcja konfiguracji z BIND9, jednak myślę, że domyślnie zezwala się na zapytania z dowolnego miejsca.

ZaphodB
źródło
1

Miałem dokładnie ten sam problem (wykopuj status NOERROR lokalnie, wykopuj status ODMUSZONY z zewnątrz), a rozwiązaniem było zmienianie klientów dopasowania z „localhost” (który jest domyślny dla instalacji binda) na „dowolny” (później mogę dowiedz się, jaki jest dokładny adres IP mojego dostawcy nazwy domeny i ze względów bezpieczeństwa ogranicz go do tego konkretnego adresu IP). Zmieniłem też nazwę widoku z local_something na default. Nazwa naprawdę nie ma znaczenia.

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

To był naprawdę problem z działalnością „odmowy statusu wykopania”. Zaraz po zmianie parametru dopasowania-klientów moje zapytania @ 12.34.56.78 mydomain.com zaczęły się rozpoznawać ze statusem NOERROR, a dostawca nazwy domeny (chrzestny) natychmiast buforował rekord serwera nazw. Ponieważ moje pliki strefy zostały już poprawnie skonfigurowane, nazwa domeny natychmiast stała się widoczna w Internecie.

Jednak przez dłuższy czas waliłem głową w ścianę, aby rozwiązać ten problem.

skrzydlaty koń
źródło
1
Czy możesz wyjaśnić, który plik na którym komputerze zmodyfikowałeś?
Alexey,
1

Musiałem wprowadzić wyraźne odniesienie do sieci, w której chciałem zezwolić na rekursję. Określenie „dowolny” nie pomogło. Domyślnie (Umbutu Server 15) nie było na to wpisu w /etc/bind/named.conf.optionspliku.

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
Iradw
źródło
0

Czy na pewno wysyłasz zapytania we właściwe miejsce?

Twój serwer na 188.165.34.72 ( r29901.ovh.net) ma BIND 9.5.1-P2.1 - odpowiada na zapytanie dig @ip version.bind ch txtzgodnie z oczekiwaniami z tym ciągiem odpowiedzi.

Jednak podany powyżej adres IP zwraca NOTIMPLbłąd, mimo że w cytowanym pliku konfiguracyjnym nic nie ma na temat *.bindpseudo-rekordów, a BIND wymaga jawnej konfiguracji, aby je wyłączyć.

Alnitak
źródło
NOTIMPL nie jest zaimplementowany? Dlaczego miałby domyślnie włączać funkcje, które nie są zaimplementowane?
Jeśli jest BIND, istnieje opcja o nazwie „wersja”, która nakazuje mu przesłanie wartości określonej przez użytkownika do tego zapytania lub „brak”, aby wyłączyć tę funkcję. Jeśli opcja nie jest określona, ​​zwraca rzeczywisty numer wersji. Nie podałeś żadnej takiej opcji, co sprawia, że ​​podejrzewam, że nie rozmawiasz z właściwym serwerem. Zobacz isc.org/software/bind/documentation/arm95
Alnitak
Sprawdziłem dalej - na moim komputerze MacOSX z powiązaniem 9.6.0 ustawienie „wersja” na „brak” zwraca, NOERRORa nie NOTIMPLbłąd, który widzę z tego adresu IP.
Alnitak
0

Ponieważ zezwalasz na rekursję tylko z lokalnego komputera.

Jeśli chcesz zezwolić na dodanie odpowiedniego adresu IP i musisz zmienić wartość nasłuchiwania na dowolny adapter z komputera lokalnego lub podaj adres IP interfejsu komputera lokalnego:

listen-on { any;} or x.x.x.x;
tamirat
źródło