일부 AAAA 쿼리에 대해 SERVFAIL을 반환하는 Server 2012R2 DNS 서버


17

(많은 나의 원래 테스트는 새로운 정보에 비추어지지 않기 때문에이 질문의 대부분을 다시 작성하십시오)

Server 2012R2 DNS 서버에 문제가 있습니다. 이러한 문제의 가장 큰 부작용은 Exchange 전자 메일이 통과하지 않는 것입니다. A 레코드를 시도하기 전에 AAAA 레코드를 쿼리합니다. AAAA 레코드에 대한 SERVFAIL이 표시되면 A 레코드도 시도하지 않고 그냥 포기합니다.

일부 도메인의 경우 내 활성 디렉토리 DNS 서버에 대해 쿼리 할 때 결과없이 NOERROR 대신 SERVFAIL이 발생합니다.

DNS를 실행하는 여러 다른 서버 2012R2 도메인 컨트롤러에서이 작업을 시도했습니다. 그중 하나는 다른 방화벽과 인터넷 연결 뒤의 다른 네트워크에있는 완전히 분리 된 도메인입니다.

나는이 문제의 원인을 알고 두 주소입니다 smtpgw1.gov.on.camxmta.owm.bell.net

나는 이것을 dig테스트하기 위해 리눅스 컴퓨터에서 사용하고있다 (192.168.5.5는 내 도메인 컨트롤러이다) :

grant@linuxbox:~$ dig @192.168.5.5 smtpgw1.gov.on.ca -t AAAA

; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> @192.168.5.5 smtpgw1.gov.on.ca -t AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 56328
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;smtpgw1.gov.on.ca.             IN      AAAA

;; Query time: 90 msec
;; SERVER: 192.168.5.5#53(192.168.5.5)
;; WHEN: Wed Oct 21 14:09:10 EDT 2015
;; MSG SIZE  rcvd: 46

그러나 퍼블릭 도메인 컨트롤러에 대한 쿼리는 예상대로 작동합니다.

grant@home-ssh:~$ dig @4.2.2.1 smtpgw1.gov.on.ca -t AAAA

; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> @4.2.2.1 smtpgw1.gov.on.ca -t AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 269
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 8192
;; QUESTION SECTION:
;smtpgw1.gov.on.ca.             IN      AAAA

;; Query time: 136 msec
;; SERVER: 4.2.2.1#53(4.2.2.1)
;; WHEN: Wed Oct 21 14:11:19 EDT 2015
;; MSG SIZE  rcvd: 46

내가 말했듯이, 나는 두 개의 다른 네트워크와 도메인에서 이것을 시도했다. 하나는 완전히 새로운 도메인이며 DNS에 대한 모든 기본 설정이 있습니다. 다른 하나는 Server 2012로 마이그레이션되었으므로 2003/2008의 일부 이전 설정이 이월되었을 수 있습니다. 나는 그들 둘 다에 대해 동일한 결과를 얻습니다.

EDNS를 비활성화하면 문제가 dmscnd /config /enableednsprobes 0해결됩니다. EDNS에 대한 많은 검색 결과가 Server 2003에서 문제가되었지만 Server 2012에서보고있는 것과 일치하지는 않습니다. 두 방화벽 모두 EDNS에 문제가 없습니다. EDNS 비활성화는 일시적인 해결 방법이어야합니다. DNSSEC 사용을 방해하고 다른 문제가 발생할 수 있습니다.

또한 Server 2008R2 및 EDNS 관련 문제에 대한 게시물을 보았지만 동일한 게시물에 따르면 Server 2012에서 문제가 해결되었으므로 제대로 작동해야합니다.

또한 DNS에 디버그 로그를 활성화하려고 시도했습니다. 예상 한 패킷을 볼 수 있지만 SERVFAIL을 반환하는 이유에 대한 많은 통찰력을 제공하지는 않습니다. 다음은 DNS 서버 디버그 로그의 관련 부분입니다.

첫 번째 패킷-클라이언트에서 내 DNS 서버로의 쿼리

2015 년 10 월 16 일 9:42:29 오전 0974 패킷 000000EFF1BF01A0 UDP Rcv 172.16.0.254 a61e Q [2001 D NOERROR] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0)
000000EFF1BF01A0의 UDP 질문 정보
  소켓 = 508
  원격 주소 172.16.0.254, 포트 50764
  시간 쿼리 = 4556080, 대기 = 0, 만료 = 0
  Buf 길이 = 0x0fa0 (4000)
  메시지 길이 = 0x002e (46)
  메시지:
    XID 0xa61e
    플래그 0x0120
      QR 0 (질문)
      OPCODE 0 (QUERY)
      AA 0
      TC 0
      RD 1
      RA 0
      Z 0
      CD 0
      광고 1
      RCODE 0 (NOERROR)
    1 회
    0 개
    NSCOUNT 0
    1 개
    질문 섹션 :
    오프셋 = 0x000c, RR 카운트 = 0
    이름 "(7) smtpgw1 (3) gov (2) on (2) ca (0)"
      QTYPE AAAA (28)
      QCLASS 1
    답변 섹션 :
      빈
    권위 섹션 :
      빈
    추가 섹션 :
    오프셋 = 0x0023, RR 카운트 = 0
    이름 "(0)"
      타입 옵트 (41)
      클래스 4096
      TTL 0
      DLEN 0
      데이터   
        버퍼 크기 = 4096
        Rcode Ext = 0
        전체 코드 = 0
        버전 = 0
        플래그 = 0

두 번째 패킷-DNS 서버에서 DNS 서버로의 쿼리

2015 년 10 월 16 일 9:42:29 오전 0974 패킷 000000EFF0A22160 UDP Snd 204.41.8.237 3e6c Q [0000 오류 없음] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0)
000000EFF0A22160의 UDP 질문 정보
  소켓 = 9812
  원격 주소 204.41.8.237, 포트 53
  시간 쿼리 = 0, 대기 = 0, 만료 = 0
  Buf 길이 = 0x0fa0 (4000)
  메시지 길이 = 0x0023 (35)
  메시지:
    XID 0x3e6c
    플래그 0x0000
      QR 0 (질문)
      OPCODE 0 (QUERY)
      AA 0
      TC 0
      RD 0
      RA 0
      Z 0
      CD 0
      광고 0
      RCODE 0 (NOERROR)
    1 회
    0 개
    NSCOUNT 0
    ARCOUNT 0
    질문 섹션 :
    오프셋 = 0x000c, RR 카운트 = 0
    이름 "(7) smtpgw1 (3) gov (2) on (2) ca (0)"
      QTYPE AAAA (28)
      QCLASS 1
    답변 섹션 :
      빈
    권위 섹션 :
      빈
    추가 섹션 :
      빈

세 번째 패킷-DNS 서버의 응답 (NOERROR)

2015 년 10 월 16 일 오전 9:42:29 오전 0974 패킷 000000EFF2188100 UDP Rcv 204.41.8.237 3e6c RQ 오류 없음 AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0)
000000EFF2188100의 UDP 응답 정보
  소켓 = 9812
  원격 주소 204.41.8.237, 포트 53
  시간 쿼리 = 4556080, 대기 = 0, 만료 = 0
  Buf 길이 = 0x0fa0 (4000)
  메시지 길이 = 0x0023 (35)
  메시지:
    XID 0x3e6c
    플래그 0x8400
      QR 1 (응답)
      OPCODE 0 (QUERY)
      금주 모임 1
      TC 0
      RD 0
      RA 0
      Z 0
      CD 0
      광고 0
      RCODE 0 (NOERROR)
    1 회
    0 개
    NSCOUNT 0
    ARCOUNT 0
    질문 섹션 :
    오프셋 = 0x000c, RR 카운트 = 0
    이름 "(7) smtpgw1 (3) gov (2) on (2) ca (0)"
      QTYPE AAAA (28)
      QCLASS 1
    답변 섹션 :
      빈
    권위 섹션 :
      빈
    추가 섹션 :
      빈

네 번째 패킷-DNS 서버에서 클라이언트로의 응답 (SERVFAIL)

2015 년 10 월 16 일 9:42:29 오전 0974 패킷 000000EFF1BF01A0 UDP Snd 172.16.0.254 a61e RQ [8281 DR SERVFAIL] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0)
000000EFF1BF01A0의 UDP 응답 정보
  소켓 = 508
  원격 주소 172.16.0.254, 포트 50764
  시간 쿼리 = 4556080, 대기 = 4556080, 만료 = 4556083
  Buf 길이 = 0x0fa0 (4000)
  메시지 길이 = 0x002e (46)
  메시지:
    XID 0xa61e
    플래그 0x8182
      QR 1 (응답)
      OPCODE 0 (QUERY)
      AA 0
      TC 0
      RD 1
      RA 1
      Z 0
      CD 0
      광고 0
      코드 2 (SERVFAIL)
    1 회
    0 개
    NSCOUNT 0
    1 개
    질문 섹션 :
    오프셋 = 0x000c, RR 카운트 = 0
    이름 "(7) smtpgw1 (3) gov (2) on (2) ca (0)"
      QTYPE AAAA (28)
      QCLASS 1
    답변 섹션 :
      빈
    권위 섹션 :
      빈
    추가 섹션 :
    오프셋 = 0x0023, RR 카운트 = 0
    이름 "(0)"
      타입 옵트 (41)
      클래스 4000
      TTL 0
      DLEN 0
      데이터   
        버퍼 크기 = 4000
        Rcode Ext = 0
        전체 코드 = 2
        버전 = 0
        플래그 = 0

다른주의 사항 :

  • 네트워크 중 하나에는 기본 IPv6 인터넷 액세스 권한이 있고 다른 네트워크에는 기본 액세스 권한이없는 서버에서 IPv6 스택이 활성화되어 있습니다. IPv6 네트워크 문제가 아닌 것 같습니다
  • 모든 도메인에 영향을 미치지는 않습니다. 예를 들어 dig @192.168.5.5 -t AAAA serverfault.comNOERROR 를 반환하고 결과는 없습니다. 대한 똑같은 google.com반환이 제대로의 IPv6 주소를 구글.
  • KB3014171의 핫픽스 설치를 시도 했지만 아무런 차이가 없었습니다.
  • KB3004539 의 업데이트 가 이미 설치되어 있습니다.

2015 년 11 월 7 일 수정

도메인에 가입하지 않은 다른 Server 2012R2 컴퓨터를 설정하고 DNS 서버 역할을 설치하고 명령으로 테스트했습니다 nslookup -type=aaaa smtpgw1.gov.on.ca localhost. 동일한 문제가 없습니다.

두 VM 모두 동일한 호스트 및 동일한 네트워크에 있으므로 모든 네트워크 / 방화벽 문제를 제거합니다. 이제 패치 수준이나 도메인 구성원 / 도메인 컨트롤러로 변화했습니다.

2015 년 11 월 8 일 수정

모든 업데이트를 적용했지만 아무런 차이가 없었습니다. 새 테스트 서버와 도메인 컨트롤러의 DNS 설정간에 구성 차이가 있는지 확인하고 도메인 컨트롤러에 전달자가 설정되어 있는지 다시 확인했습니다.

이제는 초기 테스트에서 전달자와 함께 시도했지만 digLinux 시스템 에서만 사용하려고 시도했습니다 . Windows 시스템에서 nslookup을 사용할 때 전달자 설정 (Google, OpenDNS, 4.2.2.1 및 ISP DNS 서버로 시도)과 함께 약간의 결과가 나타납니다.

전달자가 설정되면을 얻습니다 Server failed.

전달자가 없으면 (루트 DNS 서버를 사용)을 얻습니다 No IPv6 address (AAAA) records available for smtpgw1.gov.on.ca.

그러나 IPv6 레코드가없는 다른 도메인에서 얻는 것과 여전히 다릅니다 .Windows의 nslookup은 다른 도메인에 대한 결과를 반환하지 않습니다.

전달자를 포함하거나 포함하지 않고 Windows DNS 서버를 쿼리 할 때 해당 이름이 dig계속 표시 SERVFAIL됩니다.

Windows DNS 서버를 사용하지 않는 경우에도 문제 도메인과 관련이있는 도메인 간에는 약간의 차이가 있습니다.

dig -t aaaa @8.8.8.8 smtpgw1.gov.on.ca 답변이 없으며 권한 섹션이 없습니다.

dig -t aaaa @8.8.8.8 serverfault.com응답은 없지만 권한 섹션이 있습니다. 어떤 리졸버를 사용하든 다른 도메인도 시도해보십시오.

그렇다면 해당 권한 섹션이없는 이유는 무엇이며 다른 DNS 서버가없는 경우 Windows DNS 서버가이를 실패로 처리하는 이유는 무엇입니까?


Exchange 서버에서 이러한 테스트를 수행하고 있습니까? 그렇지 않은 경우 Exchange의 관점에서 볼 수 있도록 그렇게하는 것이 좋습니다. Exchange 서버에서 SMTPDiag를 실행하려고 할 수도 있습니다. 네트워크 / DNS 활동에 대한 세부 정보를 볼 수 있도록 Exchange 서버에서 네트워크 캡처를 수행하는 동안이를 실행하는 것이 좋습니다. SMTPDiag는 오래된 도구이지만 설치가 필요없는 명령 줄 도구이므로 모든 버전의 Exchange에서 작동해야한다고 생각합니다. - microsoft.com/en-us/download/details.aspx?id=11393
joeqwerty

일부 네트워크 장치는 EDNS 패킷을 인식하지 못하고 거부합니다. 네트워크 팀이 최근에 새로운 장치 / 설정을 도입 했습니까? 이 가능성을 없애려면 google.com의 AAAA 레코드를 해결하려고 시도하면 IPv6 주소가 반환되어야합니다.
strongline

@strongline EDNS 패킷은 문제가 없습니다. IPv6을 실행하는 다른 사이트와 마찬가지로 Google의 AAAA 레코드가 작동합니다. 최근에 만들어진 마지막 기회는 마지막 Server 2008R2 DC / DNS 서버를 제거하고 2012R2로 교체 한 것입니다.
Grant

환경에서 IPv6가 비활성화되어 있습니까?
Jim B

@JimB는 실제로 활성화 또는 비활성화되지 않습니다 ... IPv6 스택은 기본 구성에 관계없이 기본적으로 켜져 있기 때문에 서버에서 실행됩니다. 게이트웨이와 인터넷 연결에는 IPv6이 없습니다.
Grant

답변:


3

나는 네트워크 테이크를 좀 더 살펴보고 약간의 독서를했습니다. 존재하지 않을 경우 AAAA 레코드에 대한 요청은 SOA를 반환합니다. SOA가 요청한 것과 다른 도메인을위한 것으로 나타났습니다. 이것이 Windows가 응답을 거부하는 이유입니다. mx.atomwide.com에 AAAA를 요청하십시오. lgfl.org.uk에 대한 응답 SOA. 우리가이 정보를 가지고 발전 할 수 있는지 살펴 보겠습니다. 편집 : 나중에 참조 할 수 있도록 "공해에 대한 안전한 캐시"를 일시적으로 해제하면 쿼리가 성공할 수 있습니다. 이상적이지는 않지만 문제가 복잡한 DNS 레코드에 있다는 것을 증명합니다. RFC4074는 소개 및 섹션으로도 사용됩니다.


나는 오늘 내 환경에서 이것을 테스트하려고 노력할 것이지만, 당신이 무언가에있을 것이라고 생각합니다!
Grant

또한 귀하의 링크를 편집했습니다. 서명 및 주 제외 링크는 여기에서 허용되지 않으며 귀하의 탁월한 답변이 삭제되는 것을보고 싶지 않습니다.
Grant

0

에 따르면 KB832223

원인

이 문제는 Windows Server DNS에서 지원되는 DNS 용 확장 메커니즘 (EDNS0) 기능으로 인해 발생합니다.

EDNS0은 더 큰 UDP (User Datagram Protocol) 패킷 크기를 허용합니다. 그러나 일부 방화벽 프로그램은 512 바이트보다 큰 UDP 패킷을 허용하지 않을 수 있습니다. 따라서 이러한 DNS 패킷은 방화벽에 의해 차단 될 수 있습니다.

Microsoft의 해상도는 다음과 같습니다.

해결

이 문제를 해결하려면 512 바이트보다 큰 UDP 패킷을 인식하고 허용하도록 방화벽 프로그램을 업데이트하십시오. 이렇게하는 방법에 대한 자세한 내용은 방화벽 프로그램 제조업체에 문의하십시오.

Microsoft는이 문제를 해결하기 위해 다음과 같은 제안을합니다.

해결 방법

이 문제를 해결하려면 Windows 기반 DNS 서버에서 EDNS0 기능을 해제하십시오. 이렇게하려면 다음 작업을 수행하십시오.

명령 프롬프트에서 다음 명령을 입력 한 후 Enter를 누르십시오.

dnscmd /config /enableednsprobes 0

참고이 명령에서 "enableednsprobes"뒤에 "O"문자가 아닌 0을 입력하십시오.


나는이 기사를 보았습니다. 내가 테스트 한 방화벽은 리눅스에서 완벽하게 작동한다는 증거로 문제없이 패킷을 전달합니다. edns를 비활성화하면 DNSSEC를 사용할 수 없으므로 문제가 해결되지만 좋은 해결책은 아닙니다.
Grant

죄송하지만 Microsoft의 지침이 Linux에도 적용된다는 것을 몰랐습니다. 호기심으로 방화벽을 통해 작동 하는 Microsoft OS가 있습니까?
Tim Penner
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.