Seperti apa tampilan permintaan DNS?

32

Saya telah melihat representasi teks dari permintaan HTTP, tetapi seperti apa tampilan permintaan DNS? Di mana dalam data adalah lokasi URL yang Anda coba temukan? Juga, bagaimana tanggapan diformat?

AMWJ
sumber
3
Taruhan terbaik Anda adalah mengunduh wireshark dan menangkap paket-paket yang Anda bisa dapatkan gambaran lengkap tentang apa yang terjadi ketika permintaan DNS dibuat.
mrdenny
1
sepertinya pertanyaan pekerjaan rumah
Jimsmithkka
2
@ mydenny - tidak, taruhan terbaik adalah melakukannya dengan salinan RFC1035 . Wireshark tidak akan memberi Anda gambar "penuh", itu hanya bisa menunjukkan kepada Anda seperti apa paket yang Anda lihat.
Alnitak
@ Jim-Ini bukan @ mrdenny-Saya telah menggunakan Wireshark dan tidak tahu bagaimana permintaan mentah diterjemahkan ke dalam apa yang saya kirim.
AMWJ

Jawaban:

40

Ini adalah dump mentah dari Wireshark dari permintaan DNS.

Bagian DNS dimulai dengan 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... ..      

Dan ini adalah rinciannya:

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)

Dan jawabannya, mulai lagi pada 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         

Kerusakan:

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

Edit:

Perhatikan bahwa jika pertanyaan Anda sebenarnya adalah "bagaimana cara menulis server DNS?", Maka ada dua jawaban yang sesuai:

Edit (2):

Permintaan dikirim menggunakan hostpada kotak linux:

host www.google.com

Jika Anda menggunakan Windows, Anda dapat menggunakannya nslookup

nslookup www.google.com
ngoozeff
sumber
2
Tidak membatalkan jejak kawat tanpa referensi ke spesifikasi sebenarnya. Jauh terlalu banyak DNS Interop masalah disebabkan oleh orang-orang percaya mereka dapat membalikkan insinyur dari jejak kawat, dan hilang nuansa halus. Bagaimanapun dump ini tidak mencukupi - tidak menunjukkan bagaimana label dan RR dikodekan.
Alnitak
7
@Alnitak: Saya membaca pertanyaan sebagai "apa contoh permintaan / respons DNS", dan bukannya seperti apa semua permintaan yang mungkin terlihat. Diperbarui jika hal itu salah.
ngoozeff
Bagaimana Anda mengirim permintaan untuk mendapatkan ini?
AMWJ
1
Saya ingin tahu apakah parameter URL seperti yang digunakan di browser juga dikirimkan, atau apakah itu hanya nama domain? Jadi untuk pertanyaan ini, apakah /questions/173187/what-does-a-dns-request-look-liketermasuk dalam permintaan?
SPRBRN
1
@SPRBRN DNS tidak berurusan dengan URL, hanya nama domain.
Håkan Lindqvist
7

Tata letak data permintaan DNS dijelaskan dalam RFC 1035 . Saya pikir itu agak sia-sia untuk menyalin teks di sini ...

plaes
sumber
5

Pertanyaan dan tanggapan DNS paling baik dilihat menggunakan penganalisa protokol - Wireshark adalah alat lintas platform yang baik yang dapat menangkap dan mendekonstruksi permintaan dan tanggapan ke dalam berbagai bagian mereka. Ada pengantar yang bagus untuk struktur Permintaan dan Tanggapan DNS di Firewall.cx di sini .

Permintaan DNS berisi pertanyaan yang menentukan nama (atau mungkin bidang teks yang agak arbitrer) dan tipe catatan - konten respons akan bervariasi tergantung pada jenisnya. Sebagian besar permintaan adalah pencarian langsung sederhana dari nama server yang mencari alamat ip sebagai respons (Tipe A) tetapi beberapa akan mencari informasi lebih lanjut tentang server nama itu sendiri (Tipe NS), catatan surat (Tipe MX) dan layanan lainnya (Tipe SRV yang akan mengembalikan nama, port, bobot dan prioritas). Respons DNS berisi jawaban atas pertanyaan-pertanyaan ini, mungkin lebih dari satu jika permintaan mengharuskan dan tidak selalu hanya alamat-ip.

Satu klarifikasi lain - DNS tidak menyelesaikan URL - dalam sebagian besar skenario yang melibatkan URL, DNS hanya digunakan untuk mengaktifkan sistem sisi klien untuk menemukan alamat ip bagian server dari URL, semuanya ditangani oleh protokol lain.

Helvick
sumber
3

Jika Anda bisa masuk ke mesin Linux, Anda dapat menjalankan perintah menggali untuk melakukan pencarian DNS. Utilitas ini melakukan pencarian dan mengembalikan apa yang ditanggapi oleh server nama. Sebagai contoh:

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

Semuanya dimulai dengan bagian "HEADER" adalah apa yang dikembalikan dari server nama. Saya berasumsi ini adalah apa yang Anda sebut sebagai format teks karena ini bukan format paket yang sebenarnya, tetapi teks yang akan dikembalikan.

Paul Kroon
sumber