DNS-over-QUIC、標準化が進む
私たちは、非常に有望なプロトコルであるDNS-over-QUICの標準化が、「標準化への提唱」(Proposed standard)段階に進んだことを発表できて嬉しいです。
どういうことかというと、世界中で実装されるのに十分な程度のコミュニティレビューを受けて認められたという意味です。
DNS-over-QUICは、他の一般的なプロトコル(DNS-over-HTTPS、DNS-over-TLS)よりも優れており、暗号化されていない旧DNSプロトコルを完全に置き換えるポテンシャルを持っていると考えています。
しかし、まずはその歴史を説明したいと思います。
DNS-over-QUICの歴史
DNS-over-QUIC(略称:DoQ)は、DNSクエリを送信するための比較的新しいプロトコルで、標準になったのはつい2022年5月のことです。
ちなみに、DNS-over-TLSは2016年、DNScryptは2011年に標準化されています。
約1年半前、AdGuard DNSは新しいDoQプロトコルをサポートする最初のパブリックDNSリゾルバとなりました。
当時、DoQ規格はまだ草案の段階でした。実験的なもので、どこでも使えるというものではありませんでした。
そして、今年の5月中旬にようやく状況が変わりました。
DNS-over-QUICはRFC(Request for Comments:インターネットに適用できるオンラインプロトコル、方法、プログラム、または研究を記述した文書)として公開され、9250という番号が割り当てられ、それ以降は「標準化への提唱」という段階の規格として扱われなければならなくなったのです。
このRFCがインターネット標準になるまでにはまだ長い道のりがありますが、すでに現在、DNS-over-QUICは十分に安定していることが分かっており、世界中で実装されるのに十分なコミュニティレビューを獲得しています。
しかし、その前に、DNS-over-QUICとは何か、なぜ他のバージョンより優れているのかについて説明します。
DNS-over-QUICのメリットは?
DNS-over QUICが何であるかについては少し前に書きました。
もし、詳しく飛び込みたいのであれば、まずその記事を読んでみてください。
簡単に言うと、DNS-over-QUICは、DNSリクエストを送信するためにQUICトランスポートレイヤープロトコルを使用するDNSプロトコルです。
TCPデータパケット転送の仕組み
QUICデータパケット転送の仕組み
もう一つの非常に一般的なプロトコルであるTCPと比較すると、QUICはより速く、より信頼性が高く、より多くの暗号化オプションを提供します。
そして、DNS-over-QUICはQUICの利点をすべて受け継いでいます。
DNS-over-QUICの主なメリットは以下のとおりです。
- DNSトラフィックを暗号化することができます。あなたが訪問するウェブサイトをあなた以外の誰も見ることができません。
- QUICは、「head-of-line-blocking」の問題を解決するために設計されています。つまり、パケットロス率の高いネットワーク(エレベーターや地下鉄などでのモバイル接続がいい例)でより効果的に動作します。
- QUIC規格は、いわゆる「コネクションマイグレーション」をサポートしています。家を出て、携帯電話がWi-Fiからモバイルネットワークに切り替わるとき、QUIC接続は他の接続と違って落ちません。ただし、これは残念ながらまだ実装されていませんが、早く状況が変わることを願っています。
- QUICを使うと、ネットワーク接続の確立が格段に速くなります。「コネクションマイグレーション」と同様に、特にモバイル接続のときに効果的です。DNS-over-QUICを実装した場合、DNS-over-TLSの2倍の速度で接続を確立することができます。
ドラフト段階と比較して、今QUICはどのように変化したのか?
DNS-over-QUIC は 再帰DNSサーバー(recursive DNS servers) (AdGuard DNS など) だけでなく、権威DNSサーバー(authoritative DNS servers)にも使用できるようになりました。
長い目で見て、クライアント(あなたのコンピュータやスマホ)から再帰サーバへのトラフィックだけでなく、DNSトラフィック全般を暗号化することが可能になります。
つまり、DNS-over-HTTPSと異なり、これまで暗号化されていないプロトコルしか使えない状況もDoQが完全にカバーできるようになり、より包括的なプロトコルになるということです。
AdGuardにとって何が変わったのか?
以前から多くのAdGuard製品がDoQをサポートしていますが、いくつかの点を概説したいと思います。
- AdGuard DNSは、現在、DNS-over-QUICを完全にサポートしています。「ドラフト」版も引き続きサポートします。
- AdGuard Homeは、既にDNS-over-QUICを採用済みでございます!
- 弊社アプリも全てDNS-over-QUICに移行し、ようやくインターフェースから「実験的」マークが消えます。将来のアプリバージョンでは、DoQをデフォルトのプロトコルとして実装する予定です(現在デフォルトであるDNS-over-HTTPSの代わりに)。
AdGuardのDoQ関連の開発は、ほぼすべて公開されています。
それらを常に維持し、定期的に更新しています。以下がその一部です。
- dnslookup は、DNSリクエストを実行するためのベーシックユーティリティです。一般的な現代プロトコルをすべてサポートしています(DoH、DoT、DNSCrypt、そしてもちろん、DoQも)。
- AdGuard Homeを使用すると、自分のDoQサーバーをセットアップすることができます。AdGuard Homeを公開サーバーとして運用する場合は、暗号化を設定できます。
- dnsproxy は DoH、DoT、DoQ、 DNSCrypt をサポートするシンプルなDNSプロキシサーバです。
- DnsLibs は、私たちのAdGuard製品で使用しているC++ライブラリです。DoQを自分のアプリに取り入れるために、自由に使ってください。
また、近い将来に、新しいAdGuard DNSのコードも公開される予定です。
DNS-over-QUICを標準化された規格として実装することに大きな期待を寄せています。より高速な接続、より優れた暗号化、パケットロス率の低減、「コネクションマイグレーション」など、多くのことが可能になり、そのすべてを存分に活用できることを楽しみにしています。
その間、AdGuard for iOSとAdGuard for AndroidでDoQを設定する方法を確認したり、QUICプロトコルを使用するパブリックAdGuard DNSサーバーを設定したりすることができます(「私たちのサーバーアドレス」セクションにアドレスが記載されています)。
さらに、独自のプライベートAdGuard DNSサーバーを作成し、好きなプロトコル(DoQなど)を選択して、すべてのDNSリクエストを詳しく管理することもできます。