<2octets><2octets><2octets><2octets><2octets><2octets><--Qoctets-><-Roctets-><-Soctets-><-Ioctets-> +--------+--------+--------+--------+--------+--------+- - - - - -+- - - - --+- - - - --+- - - - --+ | Ident | Flags | NbQuest| NbRep | NbSAut | NbInfo | Questions | Réponses | Serv.Aut.| Info.Add.| +--------+--------+--------+--------+--------+--------+- - - - - -+- - - - --+- - - - --+- - - - --+ * Ident. = Identificateur d'échange * Flags = Indicateurs de divers paramètres DNS (ne pas détailler) * NbQuest = Nombre de questions * NbRep = Nombre de champs réponses * NbSAut = Nombre de champs désignant les serveurs DNS ayant autorité sur les réponses * NbInfo = Nombre de champs d'informations additionnelles Une question: <----N-octets----><2octets><2octets> +--- - - - - - ---+--------+--------+ | Nom | Type | Classe | +--- - - - - - ---+--------+--------+ Un champ réponse/authorité/information: <---M-octets---><2octets><2octets><--4octets--><2octets><----D-octets----> +--- - - - - ---+--------+--------+------------+--------+--- - - - - - ---+ | Nom | Type | Classe | T.T.L. | Taille | Données | +--- - - - - ---+--------+--------+------------+--------+--- - - - - - ---+ * Nom : chaque nom de label est précédé par un octet indicant le nombre de caracteres ASCII le composant. (si cet octet est < 63) sinon la valeur 0xC0 indique un renvoi de la valeur de l'octet suivant par rapport au début du message. Termine par 0x00. * Quelques type : 1 = A (adresse IPv4) 2 = NS (nom de serveur DNS) 5 = CNAME (alias) 6 = SOA (zone DNS gérée) 12 = PTR (pointeur de nom) 13 = HINFO (info sur l équipement) 15 = MX (serveur de messagerie) 28 = AAAA (adresse IPv6) 255 = * (tous les types) * Classe : 1 = Internet * T.T.L. : validité en secondes * Taille : longueur des données en octets * Données : Nom (chaine de caractère codée comme pour une question) pour NS et CNAME Priorité (2 octets) puis nom (chaine de caractère codée comme pour une question) pour MX Adresses (valeur numérique) pour les types A (4 octets), AAAA (16 octets)...