4. Applicabilité
Les opérations DNS avec état sont applicables à plusieurs cas d'utilisation connus et ne sont applicables que sur les transports capables de prendre en charge une session DSO.
4.1. Cas d'utilisation
Plusieurs cas d'utilisation des opérations DNS avec état sont décrits ci-dessous.
4.1.1. Gestion de session
Dans un cas d'utilisation, l'établissement de paramètres de session tels que les délais d'attente définis par le serveur est d'une grande utilité dans la gestion générale des connexions persistantes. Par exemple, l'utilisation de sessions DSO pour le DNS-over-TLS stub-to-recursive [RFC7858] est plus flexible pour le client et le serveur que de tenter de gérer les sessions en utilisant uniquement l'option edns-tcp-keepalive EDNS(0) [RFC7828]. L'ensemble simple de TLV défini dans ce document est suffisant pour améliorer considérablement la gestion des connexions pour ce cas d'utilisation.
4.1.2. Abonnements de longue durée
Dans un autre cas d'utilisation, la découverte de services basée sur le DNS (DNS-SD) [RFC6763] a évolué vers un mécanisme naturellement basé sur la session où, par exemple, les abonnements de longue durée se prêtent à des mécanismes de « push » par opposition à l'interrogation (polling). Les connexions avec état de longue durée et les messages initiés par le serveur s'alignent sur ce cas d'utilisation [Push].
Un cas d'utilisation général est que le trafic DNS est souvent en rafale, mais l'établissement de session peut être coûteux. Un défi avec les connexions de longue durée est de maintenir un trafic suffisant pour maintenir l'état du NAT et du pare-feu. Pour atténuer ce problème, ce document introduit un nouveau concept pour le DNS -- le trafic "keepalive" DSO. Ce trafic ne transporte aucune donnée DNS et n'est pas considéré comme une « activité » au sens DNS classique, mais il sert à maintenir l'état dans les intermédiaires et à assurer au client et au serveur qu'ils ont toujours une connectivité l'un avec l'autre.
4.2. Transports applicables
Les opérations DNS avec état sont applicables dans les cas où il est utile de maintenir une session ouverte entre un client DNS et un serveur, où le transport permet de maintenir une telle session, et où le transport garantit la livraison dans l'ordre des messages dont dépend le DSO. Deux transports spécifiques qui répondent aux exigences pour prendre en charge les opérations DNS avec état sont DNS-over-TCP [RFC1035] [RFC7766] et DNS-over-TLS [RFC7858].
Notez que dans le cas de DNS-over-TLS, il n'y a aucun mécanisme pour passer de DNS-over-TCP à DNS-over-TLS en cours de connexion (voir la section 7 de la spécification DNS-over-TLS [RFC7858]). Une connexion est soit DNS-over-TCP dès le début, soit DNS-over-TLS dès le début.
Les opérations DNS avec état ne sont pas applicables aux transports qui ne peuvent pas prendre en charge une sémantique de session propre ou qui ne garantissent pas la livraison dans l'ordre. Bien qu'en principe un tel transport puisse être construit sur UDP, la spécification actuelle de DNS-over-UDP [RFC1035] ne fournit pas de livraison dans l'ordre ou de sémantique de session et ne peut donc pas être utilisée. De même, DNS-over-HTTP [RFC8484] ne peut pas être utilisé car HTTP a son propre mécanisme de gestion des sessions, qui est incompatible avec le mécanisme spécifié ici.
Seuls DNS-over-TCP et DNS-over-TLS sont actuellement définis pour être utilisés avec les opérations DNS avec état. D'autres transports pourront être ajoutés à l'avenir s'ils répondent aux exigences énoncées dans le premier paragraphe de cette section.