Dig는 외부 쿼리에 대해 "상태 : REFUSED"를 반환합니까?


14

이름 서버에서 dig를 실행하면 DNS가 제대로 작동하지 않는 이유를 알 수없는 것 같습니다.

# 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를 실행 중입니다. 누구든지 나를 위해 약간의 빛을 비출 수 있다면 그것은 나를 매우 행복하게 만듭니다!

감사


바인드 구성의 "옵션"섹션은 작동하지 않는 서버에서 어떤 모양입니까? 우분투에서 기본적으로 모든 것이 /etc/bind/named.conf.options에 있다고 생각합니다
Cory J

질문을 업데이트했는데 옵션에서 아무것도 변경하지 않았습니다.

1
named.conf.local의 영역 정의는 어떻습니까?
ktower

메인 포스트에 추가

답변:


18

오래된 스레드를 파고 들었을 수도 있지만 Google은 "쿼리 상태 거부"에 대한 Google 검색을 수행하는 동안 가장 관련성이 높은 결과 중 하나이기 때문에 그렇게하고 있습니다.

필자의 경우에는 allow-query { any; };named.conf의 각 영역 정의에 포함시켜야한다는 것을 알았습니다 .


당신은 나의 구원의 천사입니다! 정말 감사합니다
codezombie

5

한 눈에으로 인해 다른 지역의 소리를들을 수 있도록 구성되지 않은 것 같습니다 listen-on { 127.0.0.1; };. 거기에 적절한 IP 주소를 추가해야합니다.


이것을 서버의 인터넷 IP 주소 (188.165.34.72)로 변경하고 바인드를 다시로드했지만 여전히 동일한 거부 메시지가 나타납니다.

1
해당 머신에 로컬 방화벽이 있습니까? 포트를 열어야 할 수도 있습니다 (53 TCP 및 UDP).
John Gardeniers

URL은 현재 작동하는 것 같지만 여전히 다른 서버에서 거부 된 동일한 상태를 보여줍니다

4

나는 똑같은 일을하지만 named-conf.options에 쿼리 허용 옵션을 넣습니다.


1

RR (리소스 레코드)이없는 NOERROR는 해당 레코드가 없음을 의미하므로 NOversion 응답을 받고 "version"을 "none"으로 설정할 때 'record'가 없으면 예상대로 작동합니다.

allow-queryBIND9을 사용 하는 구성 문도 있지만 기본값은 어디서나 쿼리를 허용하는 것입니다.


1

정확히 같은 문제 (로컬 상태 NOERROR 로컬, dig status REFUSED from outside)와 솔루션이 일치 클라이언트를 "localhost"(바인드 설치의 기본값)에서 "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
어떤 컴퓨터에서 어떤 파일을 수정했는지 명확히 할 수 있습니까?
Alexey

1

재귀를 허용하려는 네트워크에 대한 명시 적 참조를 입력해야했습니다. "any"를 지정해도 도움이되지 않았습니다. 기본적으로 (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입니다. 해당 응답 문자열로 예상 한대로 쿼리에 응답합니다.

그러나 NOTIMPL인용 된 구성 파일에 *.bind의사 레코드 에 대한 내용이 없으며 BIND가 비활성화하기 위해 명시적인 구성이 필요 하더라도 위에서 인용 한 IP 주소는 오류를 반환 합니다.


NOTIMPL이 구현되지 않았습니까? 기본적으로 구현되지 않은 기능이있는 이유는 무엇입니까?

BIND 인 경우 "버전"이라는 옵션이 있는데이 옵션은 해당 쿼리에 사용자 지정 값을 보내거나 기능을 비활성화하려면 "없음"입니다. 옵션을 지정하지 않으면 실제 버전 번호가 반환됩니다. 당신은 그러한 옵션을 인용하지 않았으므로 올바른 서버와 대화하고 있지 않다고 생각합니다.
Alnitak

바인드 9.6.0이있는 MacOSX 상자에서 "version"을 "none"으로 설정 하고 해당 IP에서보고 NOERROR있는 NOTIMPL오류가 아니라 추가로 확인했습니다 .
Alnitak

0

로컬 컴퓨터에서만 재귀를 허용하기 때문입니다.

적절한 IP 주소를 추가하고 로컬 시스템의 어댑터에 대한 청취 값을 변경하거나 로컬 시스템 인터페이스의 IP 주소를 입력해야하는 경우 :

listen-on { any;} or x.x.x.x;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.