DNS 요청은 어떤 모습입니까?


32

HTTP 요청의 텍스트 표현이 무엇인지 보았지만 DNS 요청은 어떻게 생겼습니까? 데이터에서 찾으려고하는 URL의 위치는 어디입니까? 또한 응답의 형식은 어떻게됩니까?


3
가장 좋은 방법은 wireshark를 다운로드하고 DNS 요청이있을 때 발생하는 상황을 전체적으로 파악할 수있는 패킷을 캡처하는 것입니다.
mrdenny

1
숙제 질문처럼 보인다
Jimsmithkka

2
@mydenny-아니오, 가장 좋은 방법은 RFC1035 사본으로 처리 하는 것입니다. Wireshark는 "전체"그림을 제공하지 않으며, 본 특정 패킷의 모양 만 보여줄 수 있습니다.
Alnitak

@ Jim-It @mrdenny가 아닙니다. Wireshark를 사용했으며 원시 요청이 내가 보내는 내용으로 어떻게 변환되는지 모릅니다.
AMWJ

답변:


40

이것은 DNS 쿼리의 Wireshark에서 가져온 원시 덤프입니다.

DNS 부분은 24 1a로 시작합니다.

0000  00 00 00 00 00 00 00 00  00 00 00 00 08 00 45 00   ........ ......E.
0010  00 3c 51 e3 40 00 40 11  ea cb 7f 00 00 01 7f 00   .<Q.@.@. ........
0020  00 01 ec ed 00 35 00 28  fe 3b 24 1a 01 00 00 01   .....5.( .;$.....
0030  00 00 00 00 00 00 03 77  77 77 06 67 6f 6f 67 6c   .......w ww.googl
0040  65 03 63 6f 6d 00 00 01  00 01                     e.com... ..      

그리고 여기 고장이 있습니다 :

Domain Name System (query)
    [Response In: 1852]
    Transaction ID: 0x241a
    Flags: 0x0100 (Standard query)
        0... .... .... .... = Response: Message is a query
        .000 0... .... .... = Opcode: Standard query (0)
        .... ..0. .... .... = Truncated: Message is not truncated
        .... ...1 .... .... = Recursion desired: Do query recursively
        .... .... .0.. .... = Z: reserved (0)
        .... .... ...0 .... = Non-authenticated data OK: Non-authenticated data is unacceptable
    Questions: 1
    Answer RRs: 0
    Authority RRs: 0
    Additional RRs: 0
    Queries
        www.google.com: type A, class IN
            Name: www.google.com
            Type: A (Host address)
            Class: IN (0x0001)

그리고 응답은 24 1a에서 다시 시작합니다.

0000  00 00 00 00 00 00 00 00  00 00 00 00 08 00 45 00   ........ ......E.
0010  00 7a 00 00 40 00 40 11  3c 71 7f 00 00 01 7f 00   .z..@.@. <q......
0020  00 01 00 35 ec ed 00 66  fe 79 24 1a 81 80 00 01   ...5...f .y$.....
0030  00 03 00 00 00 00 03 77  77 77 06 67 6f 6f 67 6c   .......w ww.googl
0040  65 03 63 6f 6d 00 00 01  00 01 c0 0c 00 05 00 01   e.com... ........
0050  00 05 28 39 00 12 03 77  77 77 01 6c 06 67 6f 6f   ..(9...w ww.l.goo
0060  67 6c 65 03 63 6f 6d 00  c0 2c 00 01 00 01 00 00   gle.com. .,......
0070  00 e3 00 04 42 f9 59 63  c0 2c 00 01 00 01 00 00   ....B.Yc .,......
0080  00 e3 00 04 42 f9 59 68                            ....B.Yh         

고장:

Domain Name System (response)
    [Request In: 1851]
    [Time: 0.000125000 seconds]
    Transaction ID: 0x241a
    Flags: 0x8180 (Standard query response, No error)
        1... .... .... .... = Response: Message is a response
        .000 0... .... .... = Opcode: Standard query (0)
        .... .0.. .... .... = Authoritative: Server is not an authority for domain
        .... ..0. .... .... = Truncated: Message is not truncated
        .... ...1 .... .... = Recursion desired: Do query recursively
        .... .... 1... .... = Recursion available: Server can do recursive queries
        .... .... .0.. .... = Z: reserved (0)
        .... .... ..0. .... = Answer authenticated: Answer/authority portion was not authenticated by the server
        .... .... .... 0000 = Reply code: No error (0)
    Questions: 1
    Answer RRs: 3
    Authority RRs: 0
    Additional RRs: 0
    Queries
        www.google.com: type A, class IN
            Name: www.google.com
            Type: A (Host address)
            Class: IN (0x0001)
    Answers
        www.google.com: type CNAME, class IN, cname www.l.google.com
            Name: www.google.com
            Type: CNAME (Canonical name for an alias)
            Class: IN (0x0001)
            Time to live: 3 days, 21 hours, 52 minutes, 57 seconds
            Data length: 18
            Primary name: www.l.google.com
        www.l.google.com: type A, class IN, addr 66.249.89.99
            Name: www.l.google.com
            Type: A (Host address)
            Class: IN (0x0001)
            Time to live: 3 minutes, 47 seconds
            Data length: 4
            Addr: 66.249.89.99
        www.l.google.com: type A, class IN, addr 66.249.89.104
            Name: www.l.google.com
            Type: A (Host address)
            Class: IN (0x0001)
            Time to live: 3 minutes, 47 seconds
            Data length: 4
            Addr: 66.249.89.104

편집하다:

실제 질문이 "DNS 서버를 어떻게 작성합니까?"인 경우 다음과 같은 두 가지 적절한 답변이 있습니다.

  • 하지 마십시오. 기존의 것을 사용하십시오 (예 : bind 또는 dnsmasq)
  • 사양을 읽으십시오

편집 (2) :

요청은 host리눅스 상자를 사용하여 전송되었습니다 .

host www.google.com

Windows를 사용하는 경우 사용할 수 있습니다 nslookup

nslookup www.google.com

2
실제 사양을 참조하지 않고 와이어 트레이스를지지하지 않습니다. 극동 문제 상호 운용성 너무 많은 DNS는 미묘한 뉘앙스가 와이어 추적에서 리버스 엔지니어링 할 수 믿음, 그리고 실종자가 발생했다. 어쨌든이 덤프는 충분하지 않습니다. 레이블과 RR이 어떻게 인코딩되는지는 보여주지 않습니다.
Alnitak

7
@Alnitak : 가능한 모든 요청이 아닌 "DNS 요청 / 응답의 예는 무엇입니까?"라는 질문을 읽었습니다. 올바르지 않은 경우 업데이트되었습니다.
ngoozeff

이 요청을 어떻게 보냈습니까?
AMWJ

1
브라우저에서 사용되는 URL 매개 변수가 전송되는지 아니면 도메인 이름입니까? 따라서이 질문 /questions/173187/what-does-a-dns-request-look-like에 대한 요청에 포함되어 있습니까?
SPRBRN

1
@SPRBRN DNS는 URL을 처리하지 않으며 도메인 이름 만 처리합니다.
Håkan Lindqvist

7

DNS 요청 데이터 레이아웃은 RFC 1035에 설명되어 있습니다. 나는 여기에 텍스트를 복사하는 것이 무의미하다고 생각합니다 ...


5

DNS 쿼리 및 응답은 프로토콜 분석기를 사용하는 것이 가장 좋습니다. Wireshark 는 요청 및 응답을 다양한 부분으로 캡처 및 해체 할 수있는 훌륭한 크로스 플랫폼 도구입니다. Firewall.cx 의 DNS 요청 및 응답 구조에 대한 좋은 소개가 여기 있습니다 .

DNS 요청에는 이름 (또는 다소 임의의 텍스트 필드)과 레코드 유형을 지정하는 질문이 포함됩니다. 응답 내용은 유형에 따라 다릅니다. 대부분의 요청은 응답으로 ip-address를 찾는 서버 이름의 간단한 직접 조회 (Type A)이지만 일부는 네임 서버 자체 (Type NS), 메일 레코드 (Type MX) 및 기타 서비스 (Type)에 대한 자세한 정보를 찾고 있습니다. 이름, 포트, 무게 및 우선 순위를 반환하는 SRV). DNS 응답에는 이러한 질문에 대한 답변이 포함되어 있으며 요청에 IP 주소 만있는 것이 아니라 둘 이상의 요청이있을 경우 둘 이상일 수 있습니다.

또 다른 설명-DNS는 URL을 확인하지 않습니다-URL과 관련된 대부분의 시나리오에서 DNS는 클라이언트 측 시스템이 URL의 서버 부분의 IP 주소를 찾을 수 있도록하는 데만 사용되며 다른 모든 프로토콜은 다른 프로토콜에 의해 처리됩니다.


3

Linux 시스템을 사용할 수있는 경우 dig 명령을 실행하여 DNS 조회를 수행 할 수 있습니다 . 이 유틸리티는 조회를 수행하고 이름 서버가 응답 한 내용을 정확하게 반환합니다. 예를 들면 다음과 같습니다.

; <<>> DiG 9.6.1-P2 <<>> serverfault.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32383
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;serverfault.com.               IN      A

;; ANSWER SECTION:
serverfault.com.        55961   IN      A       69.59.196.211

;; Query time: 21 msec
;; SERVER: 68.87.64.150#53(68.87.64.150)
;; WHEN: Sun Aug 22 09:21:35 2010
;; MSG SIZE  rcvd: 49

"HEADER"섹션으로 시작하는 모든 것은 네임 서버에서 반환되는 것입니다. 나는 이것이 실제 패킷의 형식이 아니기 때문에 텍스트 형식이라고하는 텍스트 형식이라고 가정하지만 반환되는 텍스트입니다.

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