DNSパフォーマンスと信頼性の分析
公共DNSリゾルバがパフォーマンスと信頼性をどう扱うかについての研究。
― 1 分で読む
ドメインネームシステム(DNS)は、www.example.comみたいなウェブサイトの名前をコンピュータが通信に使うIPアドレスに変換するのに大事な役割を果たしてるんだ。1987年に導入されて以来、DNSはインターネットの機能に欠かせない存在になったよ。DNSはTCP(トランスミッションコントロールプロトコル)とUDP(ユーザーデータグラムプロトコル)の両方で動作できるけど、UDPが一番一般的で、速くてオーバーヘッドが少ないからね。
新しいタイプのレコードを含むデータがどんどんDNSレスポンスに追加されるにつれて、これらのレスポンスのサイズは大幅に増加してる。この成長は、UDPで大きなレスポンスが送られるときに問題を引き起こすことがあって、パケットの切り捨てやIPのフラグメンテーションにつながるんだ。これらの問題は、DNSサービスの信頼性を低下させ、サービス拒否攻撃のようなサイバー攻撃に対して脆弱にすることがある。
この記事では、異なるパブリックDNSリゾルバーがパフォーマンスと信頼性をどれだけうまく処理できるかを、DNS-over-UDP(DoUDP)とDNS-over-TCP(DoTCP)の2つの方法に焦点を当てて調べたよ。世界中の2527のプローブから取得した1400万回以上の測定データを分析したんだ。研究は、ユーザーからのリクエストに応じるときと、実際のIPアドレス情報を提供する権威あるネームサーバーとやり取りするときのDNSリゾルバーの動作を見ているよ。
DNSの弾力性と応答性
DNSの弾力性は、DNSサービスが問題にどれだけ耐えて効果的に機能し続けることができるかを指してる。応答性は、DNSリゾルバーがリクエストされた情報をどれだけ早く提供できるかに関連してる。私たちは、パフォーマンスと信頼性を評価するために、さまざまなパブリックDNSリゾルバーでDoTCPとDoUDPの両方をテストしたよ。
結果は、ほとんどのDNSリゾルバーがDoTCPかDoUDPかに関係なく、弾力性の面では似たようなパフォーマンスを示したことを示してる。ただし、いくつかのリゾルバーは推奨されているよりも大きなバッファサイズを報告していて、これがフラグメンテーションの原因になりかねないんだ。フラグメンテーションは、パケットが大きすぎて処理できないときに起こって、失われる可能性が高くなるんだよ。
私たちのテストでは、多くのリゾルバーが権威あるサーバーからの大きなレスポンスに直面したときにDoTCPに切り替えないことがわかった。このフォールバックの欠如は、特にDNSメッセージのサイズが引き続き増加すると予想される中で問題を引き起こす可能性があるんだ。
測定方法
私たちは、世界中にあるRIPE Atlasプローブを使って広範囲に測定を行ったよ。これらのプローブは、ユーザーリクエストを直接処理するエッジリゾルバーと、権威あるネームサーバーとやり取りするコアリゾルバーの両方にDNSリクエストを送るのを可能にした。この二重アプローチのおかげで、DNSのパフォーマンスについて包括的なビューが得られたんだ。
エッジの測定では、よくキャッシュされたドメイン名のリクエストを送ったよ。この選択によって、キャッシュされていないクエリの複雑さに対処せずに、応答時間を正確に評価することができた。コアの測定では、カスタムドメインを使って、レスポンスがどこにもキャッシュされていないことを確認し、負荷が増えたときのリゾルバーの動作を直接評価できたんだ。
詳細な観察
ネットワークのエッジから見ると、DoTCPリクエストはIPv4に対してDoUDPリクエストよりも失敗することが少ない傾向があったよ。でも、両方のトランスポートプロトコルで、IPv6リクエストの失敗率は高かった。応答時間の分析では、DoTCPリクエストは通常DoUDPリクエストの約2倍の時間がかかることが分かった。これはTCP接続を確立するための追加のオーバーヘッドに一致してるね。
コアの部分を見ると、DoTCPリクエストの全体的な失敗率は以前の研究で報告されたものよりも高かった。リゾルバーと権威あるサーバーの間の通信は、しばしば小さなEDNS(DNS拡張メカニズム)バッファサイズに依存していて、これもフラグメンテーションの問題に寄与することがあるんだ。
バッファサイズとEDNS
私たちが調べた重要な要素の一つは、DNSリゾルバーが宣伝するバッファサイズだった。EDNSはより大きなDNSメッセージを送ることを可能にするけど、バッファサイズが高すぎるとフラグメンテーションが起きる可能性があるんだ。私たちの分析では、多くのパブリックDNSリゾルバーが依然として大きなバッファサイズを宣伝していて、DNS通信の整合性を損なう可能性があることがわかったよ。
DNSフラッグデー2020からの推奨バッファサイズは1232バイトなんだけど、このガイダンスにもかかわらず、多くのリゾルバーがまだ大きなサイズを使っていると報告している。この不一致は、全体的なDNSパフォーマンスとセキュリティを改善するために、推奨される基準のさらなる採用が必要であることを示してるね。
DoTCPとDoUDPのパフォーマンス
DoTCPとDoUDPのパフォーマンス分析では、信頼性とスピードの違いが地理的地域によって大きく異なることが分かったよ。例えば、アフリカや南アメリカからのDNSクエリは、応答時間が最も長かった。CloudflareやGoogleのようなパブリックリゾルバーは最も安定した応答時間を示したけど、それでも特定の地域では苦労していたんだ。
大きなレスポンスを処理する上でDoTCPの利点があるにも関わらず、多くのリゾルバーは大きなレスポンスに直面したときに一貫してDoUDPから切り替えなかった。この行動は、レスポンスサイズが増えるにつれてリスクをもたらし、フラグメンテーションされたパケットがユーザー体験に悪影響を及ぼす可能性があるよ。
失敗率と観察
私たちの分析では、DoTCPでのDNSクエリの失敗率が過去の測定が示唆していたよりも高い場合があった。この失敗率の増加は、特に大きなレスポンスが期待される場合にDNS通信の課題が続いていることを示してるね。これらの失敗パターンを理解することは、DNSサービスの信頼性を向上させるために重要になるよ。
また、特定のパブリックリゾルバーが応答を届ける際に一貫した課題を示していることもわかった。例えば、OpenDNSは高い有効回答率を維持している一方で、他のリゾルバーは特に大きなクエリに直面したときに有効な応答を提供するのに苦労していることが多かったよ。
今後の考慮事項
DNSメッセージのサイズが増え続ける中で、フラグメンテーションやレスポンスの切り捨てに関連するリスクはますます重要になってくるよ。DNSリゾルバーの動作を継続的に監視して評価することが、これらの課題に対処できるようにするために欠かせないんだ。今後の研究では、UDPで見られるフラグメンテーションの問題なしにメッセージ処理を改善できるかもしれない、暗号化されたDNSプロトコルの導入も考慮するべきだね。
まとめると、私たちの調査結果は、DNSリゾルバーが設定されたバッファサイズの推奨に従う必要性を強調してる。DNSサービスの信頼できる機能はインターネットの健康にとって重要で、フラグメンテーションの問題に対処することが、データ要求が増える中でもこの安定性を維持する鍵になるんだ。
タイトル: Evaluating DNS Resiliency and Responsiveness with Truncation, Fragmentation & DoTCP Fallback
概要: Since its introduction in 1987, the DNS has become one of the core components of the Internet. While it was designed to work with both TCP and UDP, DNS-over-UDP (DoUDP) has become the default option due to its low overhead. As new Resource Records were introduced, the sizes of DNS responses increased considerably. This expansion of message body has led to truncation and IP fragmentation more often in recent years where large UDP responses make DNS an easy vector for amplifying denial-of-service attacks which can reduce the resiliency of DNS services. This paper investigates the resiliency, responsiveness, and usage of DoTCP and DoUDP over IPv4 and IPv6 for 10 widely used public DNS resolvers. In these experiments, these aspects are investigated from the edge and from the core of the Internet to represent the communication of the resolvers with DNS clients and authoritative name servers. Overall, more than 14M individual measurements from 2527 RIPE Atlas Probes have been analyzed, highlighting that most resolvers show similar resiliency for both DoTCP and DoUDP. While DNS Flag Day 2020 recommended 1232 bytes of buffer sizes yet we find out that 3 out of 10 resolvers mainly announce very large EDNS(0) buffer sizes both from the edge as well as from the core, which potentially causes fragmentation. In reaction to large response sizes from authoritative name servers, we find that resolvers do not fall back to the usage of DoTCP in many cases, bearing the risk of fragmented responses. As the message sizes in the DNS are expected to grow further, this problem will become more urgent in the future.
著者: Pratyush Dikshit, Mike Kosek, Nils Faulhaber, Jayasree Sengupta, Vaibhav Bajpai
最終更新: 2023-07-12 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2307.06131
ソースPDF: https://arxiv.org/pdf/2307.06131
ライセンス: https://creativecommons.org/publicdomain/zero/1.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。