4. 適用性
DNS ステートフル操作は、いくつかの既知のユースケースに適用可能であり、DSO セッションをサポートできるトランスポートでのみ適用可能です。
4.1. ユースケース
DNS ステートフル操作のいくつかのユースケースを以下に説明します。
4.1.1. セッション管理
あるユースケースでは、サーバー定義のタイムアウトなどのセッションパラメータを確立することは、永続的な接続の一般的な管理において非常に有用です。例えば、スタブから再帰への DNS-over-TLS [RFC7858] に DSO セッションを使用することは、edns-tcp-keepalive EDNS(0) オプション [RFC7828] のみを使用してセッションを管理しようとするよりも、クライアントとサーバーの両方にとってより柔軟です。本文書で定義されているシンプルな TLV セットは、このユースケースの接続管理を大幅に強化するのに十分です。
4.1.2. 長寿命のサブスクリプション
別のユースケースでは、DNS ベースのサービス検出 (DNS-SD) [RFC6763] が自然にセッションベースのメカニズムに進化しており、例えば、長寿命のサブスクリプションはポーリングではなく「プッシュ」メカニズムに適しています。長寿命のステートフル接続とサーバー主導のメッセージは、このユースケース [Push] と一致しています。
一般的なユースケースとして、DNS トラフィックはしばしばバースト的ですが、セッションの確立にはコストがかかる場合があります。長寿命の接続における課題の1つは、NAT とファイアウォールの状態を維持するのに十分なトラフィックを持続させることです。この問題を軽減するために、本文書は DNS の新しい概念、DSO「キープアライブトラフィック」を導入します。このトラフィックは DNS データを運ばず、従来の DNS の意味での「アクティビティ」とは見なされませんが、ミドルボックスの状態を維持し、クライアントとサーバーが互いにまだ接続性を持っていることを保証するのに役立ちます。
4.2. 適用可能なトランスポート
DNS ステートフル操作は、DNS クライアントとサーバーの間で開いたセッションを維持することが有用であり、トランスポートがそのようなセッションの維持を許可し、トランスポートが DSO が依存するメッセージの順序通りの配信を保証する場合に適用可能です。DNS ステートフル操作をサポートするための要件を満たす2つの特定のトランスポートは、DNS-over-TCP [RFC1035] [RFC7766] と DNS-over-TLS [RFC7858] です。
DNS-over-TLS の場合、接続の途中で DNS-over-TCP から DNS-over-TLS にアップグレードするメカニズムはないことに注意してください(DNS-over-TLS 仕様 [RFC7858] のセクション 7 を参照)。接続は最初から DNS-over-TCP か、最初から DNS-over-TLS のいずれかです。
DNS ステートフル操作は、クリーンなセッションセマンティクスをサポートできない、または順序通りの配信を保証しないトランスポートには適用できません。原則としてそのようなトランスポートを UDP 上に構築することは可能ですが、現在の DNS-over-UDP 仕様 [RFC1035] は順序通りの配信やセッションセマンティクスを提供しないため、使用できません。同様に、DNS-over-HTTP [RFC8484] は使用できません。HTTP にはセッションを管理するための独自のメカニズムがあり、これはここで指定されたメカニズムと互換性がないためです。
現在、DNS ステートフル操作での使用には DNS-over-TCP と DNS-over-TLS のみが定義されています。本セクションの最初の段落に記載されている要件を満たす場合、将来的に他のトランスポートが追加される可能性があります。