Note préliminaireEst-ce que les noms DNS remplissent les noms des tampons avec un nombre pair d'octets?
Oui, je suis au courant de l'existence des bibliothèques DNS et les serveurs DNS faciles à utiliser. Je le fais uniquement à des fins académiques et pour comprendre le fonctionnement des requêtes DNS.
La question
Je regardais RFC 1035 pour avoir une idée de la façon dont fonctionnent les messages DNS. Je pense que j'ai plus ou moins tout compris dans ce mémo. Cependant, il y a une chose que je ne peux pas interpréter de façon autonome. Si vous regardez la section 4.1.3, voici comment le format d'enregistrement de ressource est décrite:
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| |
/ /
/ NAME /
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TYPE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| CLASS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TTL |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| RDLENGTH |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
/ RDATA /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Dans ce schéma, NAME
se termine à la fin d'un bloc de deux octets. Cela signifie-t-il que sa longueur en octets devrait toujours être un multiple de deux? Le format des noms est décrit plus haut dans la RFC sous la forme d'une séquence d'étiquettes, terminée par une étiquette de longueur nulle. Cela signifie que, selon le nom, sa longueur peut être arbitrairement pair ou impair. Est-ce que NAME
a besoin de remplissage à un nombre pair d'octets? Et si oui, comment devrais-je tamponner?
J'aurais ignoré le problème et supposé qu'aucun rembourrage n'est requis, si ce n'était que dans la section 4.1.1, il spécifie que QNAME
n'a pas besoin de remplissage. Comme ils n'ont pas spécifié la même chose pour NAME
dans les réponses RR, je me demandais si je devrais supposer qu'il y a une différence.
Merci! C'est ce que j'espérais! :) –