我有一个问题。我在互联网上阅读了各种RFC和许多信息。 我读到通过UDP的DNS有512字节的限制。我想编写一个使用此最大限制创建生成良好的DNS请求的python程序。使用UDP而不是TCP DNS实现非常重要。 我尝试过使用公共库,但他们没有像RFC那样使用可以使用的512字节。
使用~512字节在单个请求中发送如此多的数据也非常重要。
感谢您的帮助!
让它成真!! ;)
答案 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服务器删除。