0

質問があります。私はさまざまなRFCとインターネット上の非常に多くの情報を読みました。UDP 経由の DNS には 512 バイトの制限があると読みました。この最大制限を使用して適切に生成された DNS 要求を作成する Python プログラムを作成したいと考えています。TCP DNS 実装ではなく、UDP を使用することが非常に重要です。パブリック ライブラリを使用してみましたが、RFC のように使用できる 512 バイトを使用していませんでした。

1 回のリクエストで非常に多くのデータを送信するために 512 バイトを使用することも非常に重要です。

ご協力ありがとうございました!

実現させましょう!! ;)

4

2 に答える 2

0

DNS 要求で 512 バイトの制限や UDP トランスポートを厳密に強制するべきではありません。RFC 1035がトランスポートについて正確に述べていること(セクション 4.2) は、datagrams are preferred for queries due to their lower overhead and better performance.

つまり、UDP は、適用可能な場合はいつでも、より軽量なトランスポートとして優先されます。これは主に要求サイズの問題です経験則では、UDP 経由で転送されるリクエストの長さは 512 バイト未満であり、TCP 経由では長さが 512 バイトを超える場合です。zone refresh activities(ただし、セクション 4.2 で述べたように、例外もあります。)

最も一般的な Python DNS ライブラリ ( dnspython など) は、高レベルのクエリを使用するときにこれを正しく処理します。車輪を再発明する必要はありません。

于 2012-08-23T05:40:11.097 に答える
-1

512 バイトの制限は dnsメッセージ用であり、特にリクエスト用ではありません。この制限は、リソース レコードを含めることができるレスポンス に対してのみ有効です。

リクエストの場合、ドメイン名は 253 バイトに制限されています。

リソース レコードを含むクエリを手動で作成できる場合もありますが、ローカル DNS サーバーによって削除される可能性があります。

于 2012-08-23T08:44:14.470 に答える