Yêu cầu DNS trông như thế nào?


32

Tôi đã thấy biểu diễn văn bản của yêu cầu HTTP là gì, nhưng yêu cầu DNS trông như thế nào? Vị trí của URL bạn đang cố định vị trí ở đâu trong dữ liệu? Ngoài ra, phản ứng được định dạng như thế nào?


3
Đặt cược tốt nhất của bạn sẽ là tải xuống wireshark và chụp các gói bạn có thể có được một bức tranh đầy đủ về những gì xảy ra khi yêu cầu DNS được thực hiện.
mrdenny

1
có vẻ như một câu hỏi bài tập về nhà
Jimsmithkka

2
@mydenny - không, đặt cược tốt nhất sẽ là làm điều đó với một bản sao RFC1035 để trao. Wireshark sẽ không cung cấp cho bạn hình ảnh "đầy đủ", nó chỉ có thể cho bạn thấy các gói cụ thể mà bạn đã thấy trông như thế nào.
Alnitak

@ Jim - Không phải @ mrdenny - Tôi đã sử dụng Wireshark và không biết yêu cầu thô chuyển thành những gì tôi đang gửi.
AMWJ

Câu trả lời:


40

Đây là kết xuất thô từ Wireshark của truy vấn DNS.

Phần DNS bắt đầu bằng 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... ..      

Và đây là sự cố:

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)

Và câu trả lời, một lần nữa bắt đầu từ 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         

Phá vỡ:

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

Chỉnh sửa:

Lưu ý rằng nếu câu hỏi thực sự của bạn là "làm thế nào để tôi viết một máy chủ DNS?", Thì có hai câu trả lời thích hợp:

Chỉnh sửa (2):

Yêu cầu đã được gửi bằng hosthộp linux:

host www.google.com

Nếu bạn đang dùng Windows, bạn có thể sử dụng nslookup

nslookup www.google.com

2
Không nâng cao dấu vết dây mà không tham chiếu đến đặc điểm kỹ thuật thực sự. Viễn quá nhiều DNS interop vấn đề đã được gây ra bởi những người tin rằng họ có thể đảo ngược kỹ sư từ một dây dấu vết, và thiếu sắc thái tinh tế. Trong mọi trường hợp, kết xuất này là không đủ - nó không thể hiện cách nhãn và RR được mã hóa.
Alnitak

7
@Alnitak: Tôi đọc câu hỏi là "ví dụ về yêu cầu / phản hồi DNS", thay vì tất cả các yêu cầu có thể trông như thế nào. Cập nhật trong trường hợp không chính xác.
ngoozeff

Làm thế nào bạn gửi yêu cầu để có được điều này?
AMWJ

1
Tôi muốn biết liệu các tham số URL được sử dụng trong trình duyệt cũng được gửi qua hay đó chỉ là tên miền? Vì vậy, cho câu hỏi này, được /questions/173187/what-does-a-dns-request-look-likebao gồm trong yêu cầu?
XUÂN

1
@SPRBRN DNS không xử lý URL, chỉ tên miền.
Håkan Lindqvist

7

Bố cục dữ liệu yêu cầu DNS được mô tả trong RFC 1035 . Tôi nghĩ rằng việc sao chép văn bản ở đây là vô nghĩa ...


5

Các truy vấn và phản hồi DNS được xem xét tốt nhất bằng cách sử dụng bộ phân tích giao thức - Wireshark là một công cụ đa nền tảng tốt có thể nắm bắt và giải mã các yêu cầu và phản hồi thành các phần khác nhau của chúng. Có một giới thiệu hay về cấu trúc của Yêu cầu và Phản hồi DNS tại Firewall.cx tại đây .

Yêu cầu DNS chứa các câu hỏi chỉ định tên (hoặc có thể là trường văn bản hơi độc đoán) và loại bản ghi - nội dung của phản hồi sẽ thay đổi tùy theo loại. Hầu hết các yêu cầu là tìm kiếm trực tiếp đơn giản tên máy chủ đang tìm kiếm địa chỉ IP để phản hồi (Loại A) nhưng một số sẽ tìm kiếm thêm thông tin về chính máy chủ tên (Loại NS), bản ghi thư (Loại MX) và các dịch vụ khác (Loại SRV sẽ trả về tên, cổng, trọng lượng và mức độ ưu tiên). Các câu trả lời DNS chứa câu trả lời cho những câu hỏi này, có thể nhiều hơn một nếu yêu cầu yêu cầu và không phải lúc nào cũng chỉ là địa chỉ IP.

Một cách làm rõ khác - DNS không giải quyết URL - trong hầu hết các trường hợp liên quan đến URL DNS chỉ được sử dụng để cho phép hệ thống phía máy khách tìm địa chỉ IP của phần máy chủ của URL, mọi thứ khác được xử lý bởi các giao thức khác.


3

Nếu bạn có thể truy cập vào máy Linux, bạn có thể chạy lệnh đào để thực hiện tra cứu DNS. Tiện ích này thực hiện tra cứu và trả về chính xác những gì máy chủ tên phản hồi. Ví dụ:

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

Mọi thứ bắt đầu với phần "ĐẦU" là những gì được trả về từ máy chủ tên. Tôi giả sử đây là những gì bạn đang đề cập đến như định dạng văn bản bởi vì đây không phải là định dạng của gói thực tế, nhưng nó là văn bản được trả lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.