制作512 UDP字节的DNS请求

时间:2012-08-23 01:37:56

标签: python dns size

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

使用~512字节在单个请求中发送如此多的数据也非常重要。

感谢您的帮助!

让它成真!! ;)

2 个答案:

答案 0 :(得分:0)

您不应该在DNS请求上强制强制使用512字节限制或UDP传输。关于传输的RFC 1035确切说明(第4.2节)是datagrams are preferred for queries due to their lower overhead and better performance

也就是说,UDP是 preffered ,因为它适用于更轻量级的传输,这主要取决于请求大小。经验法则是用于通过UDP传输少于512字节长的请求,以及在TCP上传输超过512字节的请求。 (但也有例外,例如4.2节中提到的zone refresh activities。)

最流行的Python DNS库(如dnspython)在使用高级查询时可以正确处理。无需重新发明轮子。

答案 1 :(得分:-1)

512字节限制适用于dns 消息,不是专门针对请求,限制仅适用于响应,可以包含资源记录。

对于请求,您只能使用域名的253个字节。

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