0

我有个问题。我在互联网上阅读了各种 RFC 和许多信息。我读到通过 UDP 的 DNS 有 512 字节的限制。我想编写一个 python 程序,使用这个最大限制来创建一个生成良好的 DNS 请求。使用 UDP 而不是 TCP DNS 实现非常重要。我曾尝试使用公共库,但他们没有使用 RFC 所说的可以使用的 512 字节。

使用 ~ 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消息的,不是专门针对请求的,限制只对responses有效,response可以包含Resource Records。

对于请求,您仅限于域名的 253 个字节。

您也许可以手动创建一个包含资源记录的查询,但它可能会被您的本地 dns 服务器删除。

于 2012-08-23T08:44:14.470 回答