Résumé

  • La RFC 8490 distingue un transport DNS connecté d’une session DSO établie : l’état persistant commence par un échange réussi, non par la seule existence d’une socket.
  • L’identifiant de message, le TLV principal unique, les deux minuteries et Retry Delay rendent la création, le maintien et la fin de l’état observables.
  • Une connexion vivante prouve la joignabilité ; elle ne prouve ni que l’opération est encore utile, ni que son autorité demeure.

Une connexion ne donne aucun mandat

Le DNS classique associe une question à une réponse. Une connexion TCP peut transporter plusieurs échanges, mais sa persistance n’autorise pas, à elle seule, un abonnement, une notification ultérieure ou la conservation d’un état applicatif. Continuité du transport et autorité de l’application ne sont pas synonymes.

Publiée en mars 2019, la RFC 8490 est cosignée par Ray Bellis, Stuart Cheshire, John Dickinson, Sara Dickinson, Ted Lemon et Tom Pusateri. Elle définit DNS Stateful Operations, DSO, sous l’OPCODE 6 et met à jour les RFC 1035 et 7766. Son apport décisif consiste à nommer une session dont les deux extrémités reconnaissent l’existence et les règles.

Le client possède d’abord une connexion. Sauf cas précisés pour les données précoces, une session DSO n’existe qu’après une requête DSO réussie et sa réponse correspondante. Si un ancien serveur garde le silence, le client ne peut pas supposer que l’état est accepté : après le délai prévu, il doit interrompre la connexion et repartir d’un état connu.

Une opération principale par message

DSO reprend l’en-tête DNS de douze octets, mais transporte ses opérations dans des structures Type-Length-Value. Chaque message possède un seul TLV principal. Celui-ci décide s’il s’agit d’une requête exigeant un accusé ou d’un message unidirectionnel auquel il est interdit de répondre.

Une requête porte un MESSAGE ID non nul et attend une réponse avec la même valeur. Un message unidirectionnel emploie zéro. Les requêtes peuvent être enchaînées et les réponses revenir dans un ordre différent, tandis que le récepteur agit dans l’ordre d’arrivée. Cette séparation empêche de confondre notification et transaction.

Un TLV principal inconnu reçoit DSOTYPENI ; un TLV additionnel inconnu est ignoré. L’extension du protocole ne dépend donc pas d’une fiction selon laquelle une signification inconnue aurait été comprise. À la différence d’un assemblage d’options EDNS, chaque opération dispose de son propre message et de son propre résultat.

Deux horloges pour deux questions

L’état durable consomme des ressources. Une connexion silencieuse peut être abandonnée ou porter un abonnement valide qui attend un changement. La RFC sépare donc le délai d’inactivité de l’intervalle de maintien en vie.

Le premier concerne l’activité utile. Une opération longue demeure active jusqu’à son annulation même si aucun paquet ne circule. Le second vérifie la joignabilité et peut entretenir l’état des NAT et pare-feu. Un keepalive est un pouls du chemin, pas la preuve que l’opération conservée reste légitime.

Cette distinction évite de détruire les abonnements calmes, mais aussi de rendre immortel un état obsolète. L’opérateur doit voir les deux valeurs et l’opération qui justifie la mémoire occupée.

Fermer sans provoquer une ruée

Retry Delay permet au serveur de terminer la session tout en indiquant combien de temps attendre avant une nouvelle connexion. Les codes peuvent différencier redémarrage ordinaire, message gravement incorrect, épuisement de ressources ou reconfiguration. Ils réduisent le risque qu’un arrêt maîtrisé produise une tempête de reconnexions.

Ces codes restent des indices bornés. SERVFAIL ne révèle pas la cause interne de la surcharge ; REFUSED ne prouve ni faute ni retrait permanent. DSO exige en outre un transport fiable et ordonné : DNS sur TCP ou TLS. UDP ne fournit pas ces propriétés, et DNS sur HTTPS possède sa propre gestion de session.

La RFC 8765 s’appuie ensuite sur DSO pour les notifications DNS Push. Un abonnement peut recevoir les changements sans interrogation répétée. Le registre IANA publie les codes DSO ; il prouve leur attribution, non leur adoption ni la qualité des déploiements.

La contribution de Ray Bellis se lit dans ces frontières. L’établissement, le silence, la joignabilité, la surcharge, la fin et la reprise deviennent des événements différents. La persistance peut alors soutenir de nouvelles fonctions sans devenir une autorité invisible.

Sources