캐시 서버(8.8.8.8로 전달)로 사용되는 BIND9가 포함된 Ubuntu 12.04가 있습니다.
예를 들어, 다음을 사용하면 dig +norecurse @l.root-servers.net www.uniroma1.it
다음과 같은 결과가 나타납니다.
; <<>> DiG 9.8.1-P1 <<>> +norecurse @l.root-servers.net www.uniroma1.it
;(1개 서버 발견)
;;전역 옵션: +cmd
;;연결 시간이 초과되었습니다. 서버에 액세스할 수 없습니다.
Wireshark를 사용하면 나가는 쿼리가 정확하지만 들어오는 답변이 없다는 것을 알 수 있습니다. 왜?
dig www.uniroma1.it
PS 정답을 얻으려면 저를 이용하세요 .
답변1
귀하의 명령은 여기서 잘 작동합니다. 내 생각엔 해당 지역이나 ISP의 방화벽이 DNS 요청이나 응답을 차단하고 있는 것 같습니다. dig www.uniroma1.it
방화벽이 ISP에서 제공하는 것과 같은 특정 서버에 대한 요청을 허용하기 때문에 일반적인 시나리오가 작동할 수 있습니다 8.8.8.8
.
답변2
루트 서버는 권한이 없는 도메인에 대한 쿼리에 응답하지 않습니다. +norecurse 매개변수 없이 명령을 실행하면 .it 도메인에 대한 참조 목록이 반환되어야 합니다. 루트 서버로부터 A 레코드 응답을 받을 수 없습니다.
답변3
dig @nameserver domain.example.com
특정 네임서버에서만 작동하지 않고 대부분의 경우 작동한다면 특정 소스의 트래픽을 차단하는 네임서버에 문제가 있을 수도 있습니다 . 그들은 아마도 다른 네임서버(?)에만 응답하고 싶어할 것입니다. 분명히 이는 DNS 문제 디버깅을 더욱 어렵게 만들기 때문에 나쁜 동작입니다.
질문에 게시된 루트 서버 예제에서는 작동하지 않습니다. 그러나 이 동작은 DNS 호스트 DomainDiscount24의 이름 서버와 일치합니다. 예를 들면 다음과 같습니다.
dig @ns1.domaindiscount.net example.com
; <<>> DiG 9.11.5-P4-5.1ubuntu2.2-Ubuntu <<>> @ns1.domaindiscount.net example.com
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached
(사용은 example.com
예이지만 이 경우에도 example.com
도메인에 대한 올바른 네임서버를 가리키는 답변이 생성되어야 합니다. 그러나 실제로 DomainDiscount24에서 호스팅되는 도메인을 사용할 때 위에 표시된 동작은 동일합니다.)