web-dev-qa-db-ja.com

クライアントを強制的にDNSクエリにUDPの代わりにTCP=を使用することは可能ですか?

DNSサーバーとクライアント間のファイアウォールを管理していると仮定します。クライアントがUDPではなくTCPを使用するように強制する方法はありますか?これにより、DNSスプーフィングタイプのDDoS攻撃を防ぐことができますか?

4
ibrahim

Geoff Hustonによる(= /// =)A Question of DNS Protocols を読んでください。これは、このアイデアに対する実際の調査であり、統計とすべてが含まれています。

DNSがこれらのUDPベースのリフレクション攻撃を通じてインターネットにこのような重大な脆弱性を表す場合、TCPは潜在的な緩和策を表しますか?ENDS0のユビキタスな使用から離れ、 UDPで大規模なDNS応答を使用し、代わりに、UDP応答の最大サイズを制限するDNSネームサーバーを使用して、TCPに応答を大きくしますか?

私はあなたの質問に対処するその論文の重要なポイントは次のとおりだと思います:

  • サーバーが「切り捨てられた」ビットが設定された部分的なUDP応答で応答する場合、クライアントは代わりにTCP
  • すべてのクライアントがそうできるわけではありません。クライアントの2%とリゾルバーの17%がTCP(... 2013現在)に切り替わらない

個人的に、あなたは RFC 1123 の精神に違反していると思います:

(ゾーン転送ではない)クエリを送信するために、DNSリゾルバーと再帰サーバーはUDPをサポートする必要があり、TCPをサポートする必要があります(SHOULD)。

TCP= UDPをサポートしていると見なすためだけにUDPを偽造しているとは確信していません。とはいえ、RFCと現実の間には常にギャップがあります...

2
gowenfawr