C'deki bir DNS sorgu uygulaması üzerinde çalışıyorum ve tek bir sorgu paketinde hem A hem de AAAA (IPv4 ve IPv6) kayıtları istemekle ilgileniyorum, ancak ben iki sorguyu bir pakette bu şekilde bir araya getirdiğimde, nameserver'dan gelen yanıtlar. Sorguyu, şanssız olarak birkaç farklı ad sunucusuna (hem yerel hem de 8.8.8.8) göndermeyi denedim. Bu çalışmayan bir şey mi, yoksa sorgu paketim hatalı mı?Tek bir DNS sorgusunda A ve AAAA kayıtları isteme
AAAA sorgusunu (varolan bir A isteği paketine) eklemek için temel algoritmam, paket üstbilgisinde QDCOUNT alanını arttırmaktır, sonra da, ana makine adına işaretçi olarak AAAA ve NAME olarak ayarlanmış TYPE ile bir RR sorgusu eklemelidir. varolan bir sorgu (paketin başlangıcından 12 baytlık bir ofset için bayt 0xC0 0x0C). Bu doğru mu?
FYI, her şey paketdeki A sorgusuyla iyi çalışıyor.
Düzenleme: Anlaşılan benim sorguları (ı cevapları aksine sorgular TTL ve RDLENGTH/rdata alanlarını yok farkında değildi) tüm biraz kötü biçimlendirilmiş. Bunu düzeltdikten sonra, 2 sorgunun varlığını kabul eden RCODE = 1 biçim hatası yanıtlarını alıyorum. Bu, paket başına birden çok sorgunun desteklenmediği anlamına mı geliyor?
Düzenleme 2: Burada www.google.com
için arama bir HexDump var:
d8 32 01 00 00 02 00 00 00 00 00 00 03 77 77 77 06 67 6f 6f 67 6c 65 03 63 6f 6d 00 00 01 00 01 c0 0c 00 1c 00 01
Ben yanlış bir şey görmüyorum.
Wireshark, genelde doğru bir şekilde okuduğunuzda iyi bir işarettir. – SimonJ