dnspython 的 dns.zone.from_xfr 报错


在 bind9 的 named.conf 配置文件中配置了allow-transfer 这个选项的话,使用dnspython 的 dns.zone.from_xfr 查询 zone 的记录,就会报错,报错如下


 zone = dns.zone.from_xfr(dns.query.xfr(hostname, zone_name, keyring=keyring))
  File "/usr/local/lib/python2.7/site-packages/dns/zone.py", line 1001, in from_xfr
    for r in xfr:
  File "/usr/local/lib/python2.7/site-packages/dns/query.py", line 446, in xfr
    raise dns.exception.FormError("No answer or RRset not for qname")
dns.exception.FormError: No answer or RRset not for qname

dns bind9 zone dnspython

wp666 11 years, 6 months ago

这个问题已经解决,allow-transfer 这个功能是允许域数据传输,当时我是配置的程序的所在服务器的物理IP,比如我运行的 dnspython 程序的所在服务器为 192.168.0.1 ,然后我填写的是


 allow-transfer{ 192.168.0.1;};

这样的话,它只会允许 192.168.0.1这个IP的程序来获取 zone 的数据,

但是我配置成


 allow-transfer{ 127.0.0.1;};

或者是


 allow-transfer{ any;};

就可以了

不过我 127.0.0.1 和 192.168.0.1是同一台服务器,没有识别,设计的有点二。

叛逆的草莓 answered 11 years, 6 months ago

Your Answer