4.2. Recursive Resolvers (再帰リゾルバ)
再帰リゾルバが SVCB を認識しているかどうかにかかわらず, 未知の RR タイプ [RFC3597] に使用される通常の応答構築プロセスは応答の Answer セクションを生成します。SVCB を認識している再帰リゾルバは, 次のように応答の Additional セクションに追加の有用な情報を組み込むことで, クライアントがセクション 3 の手順を最小限の全体的な遅延で実行できるよう支援すべきです (SHOULD):
-
SVCB 解決の結果を組み込みます。再帰リゾルバのローカルチェーン長制限 (クライアントの制限とは異なる場合があります) に達した場合は終了します。
-
解決された SVCB レコードのいずれかが AliasMode である場合, それらの1つをランダムに選択し, その TargetName の SVCB, A, および AAAA レコードを解決します。
-
SVCB レコードが解決された場合, ステップ 1 に進みます。
-
それ以外の場合, A および AAAA 解決の結果を組み込み, 終了します。
-
-
解決されたすべての SVCB レコードが ServiceMode です。各 TargetName (または TargetName が "." の場合は所有者名) に対して A および AAAA クエリを解決し, すべての結果を組み込み, 終了します。
この手順では, "resolve (解決)" はリゾルバの通常の再帰解決手順を意味し, その RRset のクエリを処理しているかのように動作します。これには, リゾルバが通常従う任意のエイリアス (例: CNAME, DNAME [DNAME]) に従うことが含まれます。追加レコードの取得におけるエラーまたは異常はこのプロセスを終了させてもかまいません (MAY) が, それ自体がリゾルバに失敗応答を送信させてはなりません (MUST NOT)。
ループを軽減するために再帰リゾルバが実装すべき追加の保護措置については, セクション 2.4.2 を参照してください。
この手順の可能な最適化については, セクション 5.2 を参照してください。