Web ブラウザは HTTPS または SVCB DNS リソース レコード (RR) をどのように使用しますか?

Web ブラウザは HTTPS または SVCB DNS リソース レコード (RR) をどのように使用しますか?

背景

RFC 9460 参照HTTPS への接続をアップグレードするために使用できる DNS リソース レコード (RR)を定義しSVCB、サポートされるアプリケーション層プロトコル (ALPN) も指定します。HTTPS

2021年9月7日にFirefox 92がリリースされ、HTTPS RRのサポートを追加しました:

Firefox は、使用可能な HTTPS RR が利用可能になると、HTTP リクエストを HTTPS に自動的にアップグレードします。また、HTTPS RR で提供される情報を使用して、HTTPS 接続を確立するプロセスを最適化します。これは概念的には Alt-Svc ヘッダーを使用するのと似ています。(Firefox バグ 1721132)。

テスト

これを でテストしてみますwww.google.com

まず、RR があるかどうかを確認してみましたHTTPS

$ dig 8.8.8.8 www.google.com HTTPS

...

;; ANSWER SECTION:
www.google.com.     3358    IN  HTTPS   1 . alpn="h2,h3"

ここで、RR が存在することがわかり、パラメータの値HTTPSによって示されるサポートされているプロトコルが HTTP/3 であることがわかります。h3alpn

次に、オペレーティング システムの DNS キャッシュをクリアしてみました。たとえば、Windows では、 を実行しましたipconfig /flushdns。また、テストに使用したシステムの 1 つで、Firefox と Chrome (またはその他のプロセス) が google.com に頻繁にアクセスしようとしているように見えるため、アドレス バーで Enter キーを押す直前にこれを実行しました。

Firefox v120 を開いて、次のサイトにアクセスしようとしました: www.google.com

問題

Firefox v120 は、v92 リリースでアップグレードと最適化に HTTPS RR を使用すると述べられていますが、それを要求していないようです。

Wireshark ではA、 とAAAARR のみがクエリされていることが示されています。

ワイヤーシャーク

また、次のヘッダーにより、Firefox は最初に HTTP/2 接続を開いてから HTTP/3 に切り替えていることがわかりますAlt-Svc

ファイアフォックス

実際のところ、複数の Web サイトのどのデスクトップ アプリケーション (Chrome、IceCat、Edge など) も RR を要求していないようです。WireSharkでまたは をHTTPSフィルターしてもヒットしないからです。 を介して明示的に検索を実行した場合にのみヒットします。dns.qry.type == "HTTPS"dns.qry.type == 65dig

質問

RR が照会されないように見えるのはなぜですかHTTPS?

問題を理解するために、根本的な原因を見つけるのに役立つかもしれない次のような誘導的な質問もしています。

  • これはデフォルトで無効になっている機能ですか?
  • これはホストの設定(RR の設定以外HTTPS)に依存しますか? 私が読んだリソースでは、追加の手順が必要であるとは示されていません。
  • RRを要求するのは誰の責任ですかHTTPS? ブラウザですか、それともオペレーティング システムですか? これまでのところ、Guix System 1.4、Windows 10、Windows 11 の更新バージョンと、上記のすべてのブラウザで試しました。
  • これはハードウェアに依存しますか?

答え1

これは Windows 関連の問題だと思います。nslookup は HTTPS ルックアップをサポートしておらず、win32 で内部的に使用されているからです。ブラウザは win32 関数に依存していると思います。iPhone の Safari Chrome または Firefox でテストすると、完璧に動作します。

関連情報