Alternative ServicesをDNSで通知できるように、ALTSVCレコードを定義する「Finding HTTP Alternative Services via the Domain Name Service」という仕様が出ています。
DNSレコードタイプの議論ですが、HTTPbis WGから議論が始まっています。
HTTP Alternative Services
Alternative Servicesは、オリジンを別のエンドポイント、別のプロトコルで提供できることをクライアントに通知する仕組みです。
例えば、現在もQUICの通信を始める際はHTTPレスポンスヘッダで自身のサービスはQUICでも提供できることを通知しています。
googleにアクセスすると、下記のようにalt-svcヘッダを付けてきます
alt-svc:hq=":443"; ma=2592000; quic=51303431; quic=51303339; quic=51303338; quic=51303337; quic=51303335,quic=":443"; ma=2592000; v="41,39,38,37,35"
現在alt-svcを通知する方法は 「RFC7838 HTTP Alternative Services」で定義されているとおり
- alt-svcレスポンスヘッダを用いる
- HTTP/2でALTSVC frameを使用する
これらは、HTTPの通信が始まってから切り替えを行う流れになります。
より早いタイミングで、Alternative Servicesを通知するためにDNSレコードを使う方法が出てきたというわけです。
DNS ALTSVCレコード
Alternative Servicesを通知するALTSVCレコーとタイプを新しく定義します。
例えば、このようなalt-svcレスポンスヘッダは
Alt-Svc: h2=":8000"; ma=60
このようなDNSレコーとなります
_https._443.www.example.com. 60S IN ALTSVC "h2=\":8000\""
クライアントは、A/AAAAレコードを取得する際にALTSVCレコードも問い合わせ、Alternative Servicesを確認することでより早く代替エンドポイント・プロトコルで接続することが出来ます。