支持edns的Python dnslib.server

时间:2018-03-05 19:12:10

标签: python dns

当使用python dnslib.server示例并尝试从bind9服务器进行make查询时,python dns服务器会出现以下错误:

Mar  5 20:07:23 mx1 named[1868]: success resolving '85.31.199.1.domain.example/A' (in 'domain.example'?) after disabling EDNS
Mar  5 20:41:29 mx1 named[1868]: success resolving '141.36.123.190.domain.example/A' (in 'domain.example'?) after reducing the advertised EDNS UDP packet size to 512 octets

使用python dnslib.server库可以解决的任何提示或解决方案?

1 个答案:

答案 0 :(得分:0)

EDNS是DNS名称服务器的一项特定功能,尽管不是新功能。但它需要特定的支持(处理它的代码)。

你看到的是,作为客户端的bind9检测到它所说的服务器也缺乏EDNS支持,因此回退到之前的一些理智设置。

您图书馆的更改日志包含:

  
      
  • 0.7 2012-10-20添加初始EDNS0支持(未经测试)
  •   

之后什么都没有,所以看起来不太好。

代码源显示了两个有希望的类:

  • EDNS0
  • EDNSOption

它似乎在解析服务器使用的RR.parse中的记录时使用,但它可能正常工作,我们无法判断,因为您没有显示您的代码以及它如何使用该库。 / p>

因此,简而言之,要么库存在问题,要么需要改进其EDNS代码,或者在使用它的程序中存在一些问题。

相关的问题是你使用这个库的原因,它只是为了试验/学习或真正构建一个产品吗?在最后一种情况下,根据您的工作情况,缺少EDNS支持可能会给您带来问题(例如DNSSEC)。