DNS isteği neye benziyor?


32

Bir HTTP isteğinin metin temsilinin ne olduğunu gördüm, ancak bir DNS isteği nasıl görünüyor? Veride, bulmaya çalıştığınız URL'nin yeri nerede? Ayrıca, cevap nasıl formatlanır?


3
En iyi seçeneğiniz, wireshark indirmek ve bir DNS isteği yapıldığında ne olduğunu tam olarak görebileceğiniz paketleri yakalamak olacaktır.
mrdenny

1
bir ev ödevi sorusu gibi görünüyor
Jimsmithkka

2
@ mydenny - hayır, en iyi bahis bunu RFC1035'in bir kopyasıyla yapmak olacaktır . Wireshark size "tam" resmi vermez, yalnızca gördüğünüz paketlerin nasıl göründüğünü gösterir.
Alnitak

@ Jim-Bu @ mrdenny-Wireshark kullandım ve ham isteğin gönderdiğim şeye nasıl çevrildiğini bilmiyorum.
AMWJ

Yanıtlar:


40

Bu bir DNS sorgusunun Wireshark'ından alınan ham bir dökümdür.

DNS kısmı 24 1a ile başlar:

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

Ve işte arıza:

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)

Ve cevap, yine 24 1a'da başlıyor:

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         

Yıkmak:

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

Düzenle:

Asıl sorunuz "bir DNS sunucusunu nasıl yazarım?" İse, iki uygun cevap olduğunu unutmayın:

Düzenleme (2):

İstek hostbir linux kutusundan kullanılarak gönderildi :

host www.google.com

Windows kullanıyorsanız, nslookup

nslookup www.google.com

2
Gerçek şartnameye atıfta bulunmadan bir kablo izini bozmamak. Çok fazla sayıda DNS birlikte çalışma sorunu, mühendisleri tel izlemeden geri çevirebileceklerine inanan ve ince nüansları kaybeden insanlardan kaynaklanmaktadır. Her durumda, bu döküm yetersiz - etiketlerin ve RR'lerin nasıl kodlandığını göstermez.
Alnitak

7
@Alnitak: Olası tüm isteklerin neye benzediğini değil, "DNS isteği / yanıtının bir örneği nedir" sorusunu okudum. Yanlış olması durumunda güncellenir.
ngoozeff

Bunu alma isteğini nasıl gönderdin?
AMWJ

1
Tarayıcılarda kullanılan URL parametrelerinin de gönderilip gönderilmediğini bilmek istiyorum, yoksa yalnızca alan adı mı? Yani bu soru için, /questions/173187/what-does-a-dns-request-look-likeistek dahil mi?
SPRBRN

1
@SPRBRN DNS, URL'lerle ilgilenmez, yalnızca etki alanı adlarını kullanır.
Håkan Lindqvist,

7

DNS isteği veri düzeni RFC 1035'te açıklanmaktadır . Bence metni buraya kopyalamak biraz anlamsız ...


5

DNS sorguları ve yanıtları, en iyi şekilde bir protokol analizörü kullanılarak incelenir - Wireshark , isteklerini ve yanıtlarını çeşitli kısımlarına kaydedebilen ve yapıştırabilen iyi bir çapraz platform aracıdır. Firewall.cx adresindeki DNS İstek ve Cevaplarının yapısına güzel bir giriş yapılır .

DNS İstekleri bir ad (veya biraz da keyfi bir metin alanı) ve bir kayıt türü belirten sorular içerir - yanıtın içeriği türe bağlı olarak değişecektir. Çoğu istek, yanıt olarak ip adresi arayan bir sunucu adının basit doğrudan aramalarıdır (Tip A), ancak bazıları isim sunucuları (Tip NS), posta kayıtları (Tip MX) ve diğer hizmetler (Tip NS) hakkında daha fazla bilgi arayacaktır. İsimleri, portları, ağırlıkları ve öncelikleri döndürecek SRV). DNS yanıtları bu soruların cevaplarını içerir, eğer talep isterse ve her zaman sadece ip adresleri değilse, muhtemelen birden fazla cevap verir.

Başka bir açıklama - DNS URL'leri çözmez - URL'lerin kullanıldığı çoğu senaryoda, DNS yalnızca istemci tarafı sisteminin URL'nin sunucu bölümünün ip adresini bulmasını sağlamak için kullanılır, diğer her şey diğer protokoller tarafından yönetilir.


3

Bir Linux makinesine girebilirseniz, DNS araması yapmak için dig komutunu çalıştırabilirsiniz . Bu yardımcı program bir arama yapar ve ad sunucusunun tam olarak ne yanıt verdiğini verir. Örneğin:

; <<>> 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" bölümüyle başlayan her şey, ad sunucusundan döndürülen şeydir. Bunun metin formatı olarak adlandırdığınız şey olduğunu farz ediyorum çünkü bu asıl paketin formatı değil, fakat geri dönen metin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.