Che aspetto ha una richiesta DNS?


32

Ho visto qual è la rappresentazione testuale di una richiesta HTTP, ma come appare una richiesta DNS? Dove si trova nei dati la posizione dell'URL che stai cercando di individuare? Inoltre, come viene formattata la risposta?


3
La soluzione migliore sarebbe quella di scaricare WireShark e acquisire i pacchetti in modo da poter avere un quadro completo di ciò che accade quando viene effettuata una richiesta DNS.
mrdenny,

1
sembra una domanda a casa
Jimsmithkka,

2
@mydenny - no, la scommessa migliore sarebbe quella di farlo con una copia di RFC1035 a portata di mano. Wireshark non ti darà il quadro "completo", ti potrà solo mostrare come appaiono i pacchetti particolari che hai visto.
Alnitak,

@ Jim-Non è @ mrdenny-Ho usato Wireshark e non so come la richiesta non elaborata si traduca in ciò che sto inviando.
AMWJ

Risposte:


40

Questo è un dump non elaborato da Wireshark di una query DNS.

La parte DNS inizia con 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... ..      

Ed ecco la ripartizione:

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)

E la risposta, sempre a partire da 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         

Abbattersi:

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

Modificare:

Nota che se la tua vera domanda è "come scrivo un server DNS?", Allora ci sono due risposte appropriate:

Edit (2):

La richiesta è stata inviata utilizzando hostun box Linux:

host www.google.com

Se sei su Windows, puoi usare nslookup

nslookup www.google.com

2
Non eseguire l'upgrade di una traccia di filo senza un riferimento alla specifica reale. Lontano troppi DNS interoperabilità problemi sono stati causati da persone che credono di poter decodificare da una traccia di filo, e mancanti sottili sfumature. In ogni caso, questo dump è insufficiente, non dimostra come sono codificate etichette e RR.
Alnitak,

7
@Alnitak: ho letto la domanda come "cos'è un esempio di richiesta / risposta DNS", piuttosto che come appaiono tutte le possibili richieste. Aggiornato nel caso in cui non sia corretto.
ngoozeff,

Come hai inviato la richiesta per ottenerlo?
AMWJ

1
Vorrei sapere se vengono inviati anche i parametri URL utilizzati nei browser o è solo il nome del dominio? Quindi, per questa domanda, è /questions/173187/what-does-a-dns-request-look-likeincluso nella richiesta?
SPRBRN,

1
@SPRBRN Il DNS non tratta gli URL, ma solo i nomi di dominio.
Håkan Lindqvist,

7

Il layout dei dati di richiesta DNS è descritto in RFC 1035 . Penso che sia un po 'inutile copiare il testo qui ...


5

Le query e le risposte DNS vengono esaminate meglio utilizzando un analizzatore di protocollo: Wireshark è un buon strumento multipiattaforma in grado di acquisire e decostruire le richieste e le risposte nelle loro varie parti. C'è una buona introduzione alla struttura delle richieste e delle risposte DNS su Firewall.cx qui .

Le richieste DNS contengono domande che specificano un nome (o forse un campo di testo in qualche modo arbitrario) e un tipo di record: il contenuto della risposta varierà a seconda del tipo. La maggior parte delle richieste sono semplici ricerche dirette di un nome server che cerca un indirizzo IP in risposta (Tipo A) ma alcuni cercheranno ulteriori informazioni sui server dei nomi stessi (Tipo NS), i record di posta (Tipo MX) e altri servizi (Tipo SRV che restituirà nomi, porte, pesi e priorità). Le risposte DNS contengono risposte a queste domande, probabilmente più di una se la richiesta lo richiede e non sono sempre solo indirizzi IP.

Un altro chiarimento - il DNS non risolve gli URL - nella maggior parte degli scenari che coinvolgono gli URL Il DNS viene utilizzato solo per consentire al sistema lato client di trovare l'indirizzo IP della parte server dell'URL, tutto il resto è gestito da altri protocolli.


3

Se riesci ad accedere a una macchina Linux, puoi eseguire il comando dig per eseguire una ricerca DNS. Questa utility esegue una ricerca e restituisce esattamente la risposta del server dei nomi. Per esempio:

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

Tutto ciò che inizia con la sezione "HEADER" è ciò che viene restituito dal server dei nomi. Suppongo che questo sia ciò a cui ti riferisci come formato di testo perché questo non è il formato del pacchetto effettivo, ma è il testo che viene restituito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.