Demandant des enregistrements A et AAAA dans la requête DNS

Je suis en train de travailler sur une requête DNS mise en œuvre en C et souhaitez faire une demande à la fois A et AAAA (IPv4 et IPv6) les dossiers dans un seul paquet de requête, mais je ne reçois pas les réponses du serveur de noms quand j'ai mis les deux requêtes dans un paquet comme ça. J'ai essayé d'envoyer la requête à plusieurs serveurs de noms (à la fois locale et 8.8.8.8) avec pas de chance. Est-ce quelque chose qui ne fonctionne pas, ou est-il probable que mon paquet de requête est mal formé?

Mon algorithme de base pour l'ajout de la AAAA requête (à un existant, Un paquet de demande) est l'augmentation de la QDCOUNT champ dans l'en-tête de paquet, puis ajouter un RR de requête avec jeu de TYPE AAAA et le NOM comme un pointeur vers le nom d'hôte dans l'existant d'Une requête (octets 0xC0 0x0C pour un décalage de 12 octets à partir du début du paquet). Cela vous parait-il correct?

Pour info, tout fonctionne très bien avec juste Une requête dans le paquet.

Edit: Apparemment mes requêtes ont tous été légèrement mal formé (je n'étais pas au courant que les requêtes à la différence de réponses n'ont pas de TTL et RDLENGTH/RDATA champs). Lors de la fixation de ce, je suis de retour RCODE=1 erreur de format de réponses qui reconnaissent la présence des 2 requêtes. Est-ce à dire plusieurs requêtes par paquet sont tout simplement pas pris en charge?

Edit 2: Voici un hexdump de recherche pour www.google.com:

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

Je ne vois rien de mal à cela.

  • Ni ne Wireshark, qui est généralement un bon signe que vous avez lu la spec correctement.
InformationsquelleAutor R.. | 2010-11-02