2.4.2. AliasMode
2.4.2. AliasMode
AliasMode では, SVCB レコードはサービスを TargetName にエイリアスします。SVCB RRset は AliasMode の RR を 1 つだけ持つべきである。複数の AliasMode RR が存在する場合, クライアントまたは再帰リゾルバはランダムに 1 つを選択すべきである。
AliasMode の主な目的は, CNAME が許可されていないゾーンの頂点 (zone apex) でエイリアスを可能にすることです (たとえば, [RFC1912], 第 2.4 節を参照)。AliasMode では, TargetName は SVCB, AAAA, および/または A レコードに解決されるドメインの名前になります。(SVCB 互換 RR タイプのエイリアスについては, 第 6 節を参照してください。) CNAME とは異なり, AliasMode レコードは他の RR タイプの解決に影響を与えず, ドメイン名全体ではなく特定のサービスにのみ適用されます。
AliasMode TargetName は所有者名と等しくないようにすべきである。これはループを引き起こすためです。AliasMode では, 受信者は存在するすべての SvcParams を無視しなければなりません。AliasMode レコードに SvcParams がある場合, ゾーンファイルパーサーは警告を発してもよい。AliasMode レコードでの SvcParams の使用は現在定義されていませんが, 将来の仕様では AliasMode レコードを拡張して SvcParams を含めることができます。
たとえば, "foo://example.com:8080" のオペレーターは, 次を公開することで "foosvc.example.net" で動作するサービスにリクエストを指定できます:
_8080._foo.example.com. 3600 IN SVCB 0 foosvc.example.net.
AliasMode を使用すると, 関心事の分離が維持されます: "foosvc.example.net" の所有者は, "example.com" への対応する変更を必要とせずに ServiceMode SVCB レコードを追加または削除できます。"foosvc.example.net" が常に SVCB レコードを公開することを約束する場合, この AliasMode レコードは同じ所有者名の CNAME で置き換えることができることに注意してください。
AliasMode は, HTTPS RR タイプなど, アンダースコアプレフィックスを必要としない SVCB 互換 RR タイプに特に役立ちます。たとえば, "https://example.com" のオペレーターは, ゾーンの頂点に次のレコードを公開することで, "svc.example.net" のサーバーにリクエストを指定できます:
example.com. 3600 IN HTTPS 0 svc.example.net.
SVCB レコードの所有者名は CNAME レコードの正規名であってもよく, TargetName は CNAME レコードの所有者であってもよいことに注意してください。クライアントと再帰リゾルバは通常どおり CNAME に従わなければなりません。
無限のエイリアスチェーンを回避するために, クライアントと再帰リゾルバは, 各解決リクエストに対して追跡する SVCB エイリアスの総数に制限を課さなければなりません。この制限はゼロであってはならない。つまり, 実装は少なくとも 1 つの AliasMode レコードに従うことができなければなりません。この制限の正確な値は実装に任されています。
複数の AliasMode レコードに従う必要があるゾーンは, 互換性とパフォーマンスの問題に遭遇する可能性があります。
レガシークライアントはこのレコードを使用することを知らないため, サービスオペレーターはこの SVCB レコードと並んでフォールバック AAAA および A レコードを保持する必要がある可能性があります。ただし, 一般的なケースでは, SVCB レコードのターゲットがより良いパフォーマンスを提供する可能性があるため, この仕様を実装するクライアントが使用することが望ましいでしょう。
AliasMode レコードは特定の RR タイプのクエリにのみ適用されます。たとえば, SVCB レコードは HTTPS レコードにエイリアスできず, その逆も同様です。